2017-02-01 47 views
0

输入图像在FFT移

enter image description here

清单-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); 

输出

enter image description here

上市-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); 

输出

enter image description here

眼看着上述两个输出,你可以回答以下问题,

  1. 为什么图像的FFT会产生这样的频谱,其中零频率位于图像的角落?

  2. 为什么这是一个问题(或者是)?

  3. 为什么换档操作可以修复这种现象?

+0

这两个列表似乎是相同的? – Florian

+0

@弗洛里安,谢谢。纠正。 – anonymous

回答

3

这里有一些答案:

  1. 为什么图像的FFT产生这样的频谱,其中零个 频率是在图像的角落?

fft是离散傅立叶变换(DFT)的快速实现。在1-D中,DFT定义为X [m] = \ sum_n x [n] exp(j 2 pi(m-1)(n-1)/ N)。因此,显然,变换的第一个元素对应于频率零。这在2D中是相似的,其中第一行/列承载零频率。

  1. 为什么这是一个问题(或者是)?

这不是,根本不是。它按预期工作。这可能只是一个“问题”,我们更习惯于看到中间的零频率,因为频谱有一些对称性,所以我们喜欢用[奈奎斯特,奈奎斯特]而不是[0,2 *奈奎斯特]来观察它。虽然从技术上讲这是没有什么不同的,因为它反正是周期性的。

  1. 为什么换档操作可以修复这种现象?

由于将零频移动到中间会产生视觉上更令人愉快的图像,因此可以执行此项工作。它仅用于显示。fftshift的文档详细说明了它是如何工作的,同样也用于2D。