输入图片
清单-1
i = imread('Untitled.png');
i = rgb2gray(i);
F = fft2(i);
%%%F = fftshift(F);
F = abs(F);
F = log(F+1);
F = mat2gray(F);
imshow(F);
输出
清单-2
i = imread('Untitled.png');
i = rgb2gray(i);
F = fft2(i);
F = fftshift(F);
F = abs(F);
F = log(F+1);
F = mat2gray(F);
imshow(F);
输出
看到上述两个输出,你能否回答以下问题,
为什么图像的FFT产生这样的光谱,其中零频率位于图像的角落?
为什么这是一个问题(或者是那个)?
为什么换档操作会修复这种现象?
答案 0 :(得分:3)
以下是一些答案:
fft
是离散傅立叶变换(DFT)的快速实现。在1-D中,DFT定义为X [m] = \ sum_n×[n] exp(j 2 pi(m-1)(n-1)/ N)。因此,显然,变换的第一个元素对应于零频率。这在2-D中类似,其中第一行/列承载零频率。
不是,根本不是。它按预期工作。可能只是一个“问题”,我们更习惯于在中间看到零频率,因为频谱具有一些对称性,所以我们喜欢在[-Nyquist,Nyquist]而不是[0,2 * Nyquist]中查看它。虽然从技术上来说这没有什么不同,因为它无论如何是周期性的
由于将零频率移到中间会产生视觉上更令人愉悦的图像,因此可以使用这项工作的功能。它仅用于显示。 fftshift
的文档详细显示了它的工作原理,也在2-D中。