2DFFTを使用して画像にフィルターを適用しようとしています。フィルター行列(畳み込みカーネルなど)がありますが、fftを使用する場合は、フィルターと画像行列を2乗行列に拡張する必要があります。
最初にゼロで展開し(画像とフィルターの行列は2行列の大きな累乗の左上隅になります)、この結果が得られました
次に、fftなしで畳み込みを適用するときに、画像マトリックスで行ったことを試しました。各側からフィルター次元が2のパッド付き画像マトリックスであり、単純な拡張フィルター行列を使用したパッド付きマトリックスよりも、fftとiで畳み込む2つのマトリックスの累乗です。これを得ました
これはオリジナルの写真です。
アルゴリズムについて:私は、単純な逆fftを実行した後、展開された行列とドット単位の乗算行列の両方に2dfftを適用しています。また、画像マトリックスは0〜16Mの数値です(最初の8ビットは赤、2番目の8ビットは緑、3番目の8ビットは青です)
問題は、画像とフィルター行列を2行列の2乗に拡張する方法にあると思いますが、よくわかりません。私はfft関数をテストしました(fftと逆fft、同じ画像を取得しました(ドット単位の乗算なし))
また、フィルターは
0 .2 0
.2 .2 .2
0 .2 0