2016-05-15 34 views
2

我處理圖像的圖像旋轉。爲什麼當我得到傅立葉利用Matlab在Matlab變換圖像的

我做了一個形象的步驟如下:

  1. 我使讀取圖像。
  2. 我把圖像的傅里葉。
  3. 我拿傅立葉變換圖像的真實。

在執行上述步驟我在結果的雙旋轉的圖像。我不知道爲什麼會發生這種情況。

能有人請解釋其原因,爲什麼結果的雙旋轉的圖像產生的?

的一段代碼是在這裏:

imfftreal = real(imfft); 
im = uint8(ifft2(imfftreal)); 
imshow(im); 
Figure; 
+0

請附上輸入圖像和由此產生的「旋轉圖像」,所以我們可以更好地理解你的問題。 – Shai

+0

似乎是一個重複:http://dsp.stackexchange.com/questions/30770/why-real-part-of-fft-converts-image-into-rotation-original – hotpaw2

回答

0

爲了得到你所需要的虛部也形象的權利。您只在使用逆變換時使用實部。

imfftReal = real(imfft); 
imfftImag = imag(imfft); 
re_imfft=imfftReal +1i*imfftImag; 
im = uint8(ifft2(re_imfft)); 
imshow(im); 

在幅度的情況下,與相

imfftMagnitude = abs(imfft); 
imfftPhase = angle(imfft); 
re_imfft=imfftMagnitude.*exp(1i*imfftPhase); 
im = uint8(ifft2(re_imfft)); 
imshow(im); 
+0

嗨感謝的答案,但我的問題是爲什麼形象雙重旋轉背後的理論是什麼,我想知道,請解釋... – Sipa

0

我經歷了同樣的問題,準確,張貼在DSP StackExchange僅僅兩天前。

@M529給予它一個很好的和簡單的解釋:

如果你有一個數據集這純粹是真實的,它的(反)傅里葉變換將有埃爾米特對稱性:如果你發現在值z位置(x,y),那麼您將在關於原點的點反射位置(-x,-y)處找到複共軛值z *。請注意,這裏的原點將是傅立葉空間的中心。當然,如果直流分量不在FFT實現的中心,這可以重新配置。這就是你在圖像中看到的:一個點反射的版本覆蓋了真實的圖像 - 因爲你迫使一個空間被真實地估價。

在某些情況下,該屬性實際上被用於加速磁共振成像(MRI):MRI在傅立葉空間中直接採集數據 。由於理想的MR圖像只能用實際的 值來描述(所有激勵的磁化矢量都具有相位0),因此只有 必須獲取數據空間的一半,這可以爲您節省一半的成像時間。當然,MR圖像不完全實值由於 現實的limiations ......但有一些技巧,你仍然可以 使用這種技術有利。

如果你想看到它背後的數學,你可以通過@ThP那裏找到詳細的解答:https://dsp.stackexchange.com/questions/30770/why-real-part-of-fft-converts-image-into-rotation-original/30774#30774

+0

謝謝先生,對我真的很有幫助... – Sipa