関数 > 変換とフィルタ > 例: 画像のフィルタ
例: 画像のフィルタ
逆 DFT を使用して 2 次元画像をウィンドウでコンボリューションすることで、2 次元のフーリエ変換領域でフィルタを行います。フィルタとして四角い絞りのローパスフィルタを使用します。
1. 画像行列の次元と要素を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. scale 関数を使用して画像を尺度化します。
クリックしてこの式をコピー
3. WRITEBMP関数を使用して、画像を外部ファイルに書き込みます。
クリックしてこの式をコピー
4. 書き込んだファイルをブラウズし、画像を挿入します。
(cross.bmp)
5. 絞りの寸法を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
6. scale 関数を使用して絞りを尺度化し、画像を外部ファイルに書き込みます。
クリックしてこの式をコピー
クリックしてこの式をコピー
7. 書き込んだファイルをブラウズし、絞りの画像を挿入します。
(aperture.bmp)
2D ボックスカーはその周波数情報のほとんどが低周波である 2D 正弦関数に変換されるので、適切なローパスフィルタになります。
8. 絞りを画像でコンボリューションするには、dft関数を使用して両方を変換し、ベクトル化演算子を使用して変換結果を成分ごとに乗算してから、idft 関数を使用して逆変換を行います。
クリックしてこの式をコピー
9. center関数を使用して、画像の DC 成分が中心にくるようにします。
クリックしてこの式をコピー
10. 行列の要素を実数にします。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
11. scale関数を使用して画像を尺度化します。
クリックしてこの式をコピー
12. invertimage関数を使用して画像を反転します。
クリックしてこの式をコピー
13. WRITEBMP 関数を使用して、画像を外部ファイルに書き込みます。
クリックしてこの式をコピー
14. 書き込んだファイルをブラウズし、十字の画像を挿入します。
(cross_aperture.bmp)
新しい画像からは高周波情報、つまり鋭いエッジが取り除かれています。
15. デコンボリューションによってこのプロセスを逆に行います。これには、画像変換を成分ごとに絞り変換で除算します (0 割りが発生しないように、絞りの各成分に小さな値が加算されています)。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
16. 書き込んだファイルをブラウズし、十字の画像を挿入します。
(reversed.bmp)
新しい画像は高周波情報、つまり鋭いエッジを取り戻しています。
これは役に立ちましたか?