xfdxz 发表于 2006-10-24 16:16

请教matlab中对图像做Fourier变换

在matlab区发过,但是还没有解答,借该版人气再问

在matlab中对图像进行傅里叶变换,
%img为原始图像

(一)看到别人是这么做的
img1=double(img)/255;
img_mean=mean2(img1);
centered_img=img1-img_mean;
img1_fft=fft2(centered_img);
img1_fft=fftshift(img1_fft);
不明白问什么对图像作归一化,用减去图像中值后才作傅里叶变换???
(二)
自己想应该这么做
img2=double(img);
img2_fft=fft2(img2);
img2_fft=fftshift(img2_fft);

但是(一)和(二)作出的结果不一样,附图是对lena做变换后的
imshow(abs(img1_fft),[]);
imshow(abs(img2_fft),[]);
(一)的结果对吗,(二)呢,为什么?

freeant006 发表于 2007-4-16 14:51

回复 #1 xfdxz 的帖子

可能是为了平滑傅里叶谱吧...没仔细想过这个问题:@)
页: [1]
查看完整版本: 请教matlab中对图像做Fourier变换