2016-02-12 118 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

謝謝!我只是想看看數學背後,所以懷疑 –