ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Python】FFTを使って、ガウシアンぼかしをかける。

成果物

f:id:Nekodigi:20200820120918p:plain
Computer Shaderで画像のFFTをやっている方がいたので、それを使おうと思ったのですが、失敗したので、Numpyを使って、実験してみることにしました。非常に高速で便利です。ガウシアンフィルタ以外の様々なカーネルが使えるはずなのですが、上手くいかなかったので、ひとまずガウシアンフィルタを使っています。

仕組み

対象画像と、ガウシアンカーネルフーリエ変換し、出力結果を乗算します。そして、逆フーリエ変換をかけるとぼかされた画像が得られます。
参考
numpyとopenCVを使った画像のフーリエ変換と逆変換 – Python in the box
Simple image blur by convolution with a Gaussian kernel — Scipy lecture notes

コード

gist.github.com
どんな画像でもぼかせますが、同じ画像が欲しい方はこちらからどうぞ。
github.com