为什么傅立叶光谱集中到图像的边界(在Matlab中)?

时间:2014-11-12 15:32:46

标签: matlab fft

我对与傅立叶变换有关的问题感到困惑。 在matlab中,我创建了一个图像:

F = [零(56,128);那些(16,128);零(56,128)];

这是一张如下图片: enter image description here

然后我改编了它:

Fhat = fft2(F);

并尝试显示傅立叶光谱:

imshow(日志(1 + ABS(Fhat)),[]);

图片如下:enter image description here

我想知道为什么我得到的傅里叶光谱集中在图像的边界?

有没有数学解释?

我是这方面的新手,所以请尽可能详细解释我!

谢谢!

1 个答案:

答案 0 :(得分:1)

与您的预期不同,matlab会将低频成分放在图像的边缘。

就频率而言,fft值将为[+ low f - > +高f - > -high f - > -low f]。我不知道为什么matlab会这样做。

正如@Kamtal评论的那样,您可以使用fftshift来重新排列fft矩阵,使零频率成分位于中心。

鉴于这些知识,您实现的转变符合预期。输入图像中的x方向没有变化,因此只有最低x频率分量具有非零值,并且这些值位于图像的边缘。