2016-02-12 117 views
1

我已阅读本图片:为什么fft的实部将图像转换为旋转+原始图像?

enter image description here

采取了FFT(2D),然后逆FFT得到准确的图像回:

imfft = fft2(photographer); 
im = uint8(ifft2(imfft)); 

imshow(im); %Output is same image 

但是,当我改变了傅立叶和只拿实部,

imfft = real(fft2(photographer)); 
im = uint8(ifft2(imfft)); 
imshow(im); 

我得到这样的图像(注意,尺寸的变化是无关紧要的,邻NLY由于从MATLAB图形处理器)将其保存:

enter image description here

为什么会出现这种情况?

UPDATE

至于建议,这个问题被张贴在DSP StackExchange并得到here

+0

您提供的代码没有采用2d-fft的实际部分。 – GameOfThrows

+1

是的,这是正确的期望,仅仅是因为傅立叶变换的工作原理 - 如果你需要数学背后的数学,你可以在Stack Exchange Signal Proc上发布它。 http://dsp.stackexchange.com/ – GameOfThrows

回答

1

实部仅代表对称基向量(余弦波是围绕FFT的中心对称的答案光圈)。因此,只使用实部(所有虚部== 0)的任何IFFT重构只能(重新)产生围绕中心对称的图像(例如,通过对您的示例进行扭曲)。

+0

有没有这方面的参考? –

+0

谷歌搜索FFT偶数/奇数对称会出现很多内容,例如:https://www.cs.unm.edu/~williams/cs530/symmetry.pdf和http://www.intmath.com/ fourier-series/3-fourier-even-odd-functions.php – hotpaw2

+0

谢谢!我只是想看看数学背后,所以怀疑 –