我对与傅立叶变换有关的问题感到困惑。 在matlab中,我创建了一个图像:
F = [零(56,128);那些(16,128);零(56,128)];
这是一张如下图片:
然后我改编了它:
Fhat = fft2(F);
并尝试显示傅立叶光谱:
imshow(日志(1 + ABS(Fhat)),[]);
图片如下:
我想知道为什么我得到的傅里叶光谱集中在图像的边界?
有没有数学解释?
我是这方面的新手,所以请尽可能详细解释我!
谢谢!
答案 0 :(得分:1)
与您的预期不同,matlab会将低频成分放在图像的边缘。
就频率而言,fft值将为[+ low f - > +高f - > -high f - > -low f]。我不知道为什么matlab会这样做。
正如@Kamtal评论的那样,您可以使用fftshift来重新排列fft矩阵,使零频率成分位于中心。
鉴于这些知识,您实现的转变符合预期。输入图像中的x方向没有变化,因此只有最低x频率分量具有非零值,并且这些值位于图像的边缘。