Pythonで画像をフーリエ変換してフィルタをかけてみた

画像をフーリエ変換して何をするかといえば、やっぱりフィルタですよね。

ということで今回は画像をフーリエ変換してローパスフィルタ、ハイパスフィルタを試してみたのでそれを記事にします。

今回使用する画像は以下の画像です。


ローパスフィルタ

まず初めに単純に高周波成分をカットして低周波成分だけを通過させるローパスフィルタを試してみました。

やり方は簡単で、フーリエ変換して位相シフトした画像と同じサイズの配列を作成し低周波成分にあたる部分を1、高周波成分にあたる部分を0とします。

その配列と、フーリエ変換後の配列を掛け算することでできます。

画像が小さくてわかりずらいかもしれませんが、画像のシャープさがなくなっているのが分かります。(クリックすると拡大します。)


フィルタの1の領域をもう少し小さくしてみます。上記コードの14行目を書き換えます。

前のフィルタの1/10にしたらアイソトープのような分解能の画像になってしまいました。。。。。


広告
デル株式会社

ハイパスフィルタ

今度はハイパスフィルタをやってみます。

先ほどは、0で初期値設定した配列を作成しましたが、今度は1で初期化した配列を作成し、中心部を0で埋めた配列を作成してハイパスフィルタを作成します。

いかがでしょう!!今度は輪郭部分が強調された画像が作成されました。


広告
HP Directplus -HP公式オンラインストア-

最後に

原理は分かっていても、実際にコードを組んでやってみるとおもしろいですね。

今回は簡単なフィルタでしかも、フィルタが1というものしか試していませんが、1.5や2といったものを試してみても面白いかもしれませんね。

ぜひとも、試してみてください。

おつかれさまでした。



広告
上新電機 パソコン買取サービス
  • このエントリーをはてなブックマークに追加