image - 傅立叶移位定理matlab

标签 image matlab 2d fft shift

我目前正在尝试理解二维傅立叶移位定理。

根据我目前所了解的,图像空间中的平移会导致相位差异,但不会导致频率空间中的幅度差异。

我试着用一个小例子来证明这一点,但它只适用于行中的移位,而不适用于列中的移位。这是小演示(我在这里只展示幅度图)

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 个震级图都应该产生相同的结果。 谁能解释一下我在这里做错了什么?

非常感谢您的帮助,

最好的问候,

迷你

最佳答案

我认为你想为此使用 fft2,而不是 fft。

fft2 计算二维傅立叶变换,这就是您所说的您正在研究的内容。 fft只计算每一行的傅立叶变换。

如果您只是在代码中用 fft2 替换 fft,一切都应该有效。

关于image - 傅立叶移位定理matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811083/

相关文章:

php - 文章表上传图片后存储image_id

matlab - 在 matlab 中像 matplotlib imshow 一样在 imagesc\imshow 的像素之间进行平滑处理

matlab - 在 MATLAB 中选择标准差参数

matlab - 使用 scipy.io 加载 .mat 文件时出错(ValueError : Mat 4 mopt wrong format)

java - java中的投篮预测算法

python - 翻转图像

image - OpenCV cv::Mat 显示空的灰色图像?找不到原因

Android Listview和图片解码

java - 区域外的点最接近区域内的点?

java - 如何缩放许多形状并保持相同的比例