实现图像的傅里叶变换,显示其幅度谱的图像(要求其 0 频在显示图像的中间位置)
众所周知,二维图像的傅里叶变换公式为:
当原图像f(x,y)乘以(-1)^(x+y)之后,其傅氏变换将会将频谱中的直流成分移至中心。因为:
在matlab中,可以直接调用函数fft2实现傅氏变化,然后求其幅度值进行显示。代码如下:
a=imread('aft.jpg');
a=rgb2gray(a);
subplot(1,3,1)
imshow(a)
title('原图');
b=fft2(double(a));
c=log(1+abs(b));%通过abs求幅度值,加对数以便于显示图像
subplot(1,3,2)
imshow(c,[])
title('fft');
b=fftshift(b);%将零频率成分移到频谱中心
c=log(1+abs(b));%通过abs求幅度值,加对数以便于显示图像
subplot(1,3,3)
imshow(c,[])
title('平移的fft');
结果图为