今天又复习了一遍<<Digital Image Processing>>的第四章,为了加深对频域的理解,我自己用PS画了一张图。如下:
然后做FFT,得到频谱图如下:
从左到右依次表示:图像的频谱、频谱图往横轴的投影、频谱图往纵轴的投影。原图与频谱图的关系可以从两个角度来理解:
1、从横向来看,从中间的白线切一刀下来(其余部分为全零),得到一维图像是常数。根据时域和频域的对偶性,频域的图像相当于单位脉冲。
2、从纵向来看,相当于从图像纵向切一刀下来,得到的一维图像显然是单位脉冲,而单位脉冲的频谱无限宽。
本文对应的matlab代码如下:
function two_dim_fft() f_src = imread(‘test2.bmp‘); f_fft = fft2(double(f_src)); f_shift = fftshift(f_fft); amplitude = log(1+abs(f_shift)); subplot(1,3,1),imshow(amplitude,[]),title(‘Spectrum‘); dim1 = sum(amplitude,1); subplot(1,3,2),plot(dim1),title(‘Horizontal project‘); dim2 = sum(amplitude,2); subplot(1,3,3),plot(dim2),title(‘Vertical project‘);
时间: 2024-10-03 13:33:19