1
画像データのFFT:境界効果を回避するための「ミラーリング」
Matlabに米の画像を読み込んで表示します。 g = imread('rice.png'); imshow(g); この画像のFFTを取り、シフトします。 G = fft2(g); imshow(log(abs(fftshift(G)) + 1), []); 画像の中心を介してax軸とy軸を配置すると、画像が対称であることがわかりましたg(-x、-y)= g(x、y)。1D信号の場合、実信号のFFTには対称の実部と非対称の虚部があることがわかります。これが2次元で表示されているものでしょうか。 元の画像は上部より下部の方が暗いため、周期的な境界で強い水平方向の不連続性があり、FFTの垂直線が発生しています。 この境界効果を解消したい。これに対する一般的なアプローチは、ウィンドウ処理のようです。 しかし、私はこの問題を「ミラーリング」と呼ばれる論文で見つけた手法で解決したいと思っています。論文はあまり具体的ではなかったので、このアプローチを理解するには、あなたの助けが必要です:-)。 最初に、元の画像から対称的な「タイル」を作成します。 tile=[flipdim(g,2) g; flipdim(flipdim(g,1),2) flipdim(g,1)]; imshow(tile); 次に、この「タイル」のFFTを使用します。 Tile=fft2(tile); imshow(log(abs(fftshift(Tile)) + 1), []) 縦線は(ほとんど)なくなっているようです。ただし、ミラーリングにより対称性が高まったようです。 正しい結果は何ですか?元の画像のFFTまたは「ミラーリングされた」画像のFFT? 境界効果をなくし、純粋に本物のFFTを取得できるように、「ミラーリング」できる方法はありますか? どんな答えも事前にありがとう!