我现在正在尝试理解二维傅立叶移位定理。
根据我到目前为止所学到的,图像空间中的平移会导致相位上的差异,但不会导致频率空间中的幅度。
我试着用一个小例子来演示这一点,但它只适用于行中的移位,而不适用于列中的移位。这是一个小演示(我在这里只展示了震级图)
clear all
close all
Iin = zeros(128);
Iin(10:20,10:20)=1;
figure,imagesc(Iin)
Y = fft(Iin);
figure, imagesc(fftshift(log10(abs(Y))));
Iin = zeros(128);
Iin(10:20,20:30)=1;
figure,imagesc(Iin)
Y = fft(Iin);
figure, imagesc(fftshift(log10(abs(Y))));
Iin = zeros(128);
Iin(20:30,10:20)=1;
figure,imagesc(Iin)
Y = fft(Iin);
figure, imagesc(fftshift(log10(abs(Y))));在我看来,所有3个震级图都应该产生相同的结果。有人能解释一下我哪里做错了吗?
非常感谢你的帮助,
诚挚的问候,
迷你
发布于 2012-12-11 07:40:38
我认为你应该使用fft2,而不是fft。
fft2计算二维傅立叶变换,这就是你所说的你正在研究的东西。fft只计算每一行的傅里叶变换。
如果你只需要在代码中用fft2代替fft,一切都会正常工作。
https://stackoverflow.com/questions/13811083
复制相似问题