我處理圖像的圖像旋轉。爲什麼當我得到傅立葉利用Matlab在Matlab變換圖像的
我做了一個形象的步驟如下:
- 我使讀取圖像。
- 我把圖像的傅里葉。
- 我拿傅立葉變換圖像的真實。
在執行上述步驟我在結果的雙旋轉的圖像。我不知道爲什麼會發生這種情況。
能有人請解釋其原因,爲什麼結果的雙旋轉的圖像產生的?
的一段代碼是在這裏:
imfftreal = real(imfft);
im = uint8(ifft2(imfftreal));
imshow(im);
Figure;
我處理圖像的圖像旋轉。爲什麼當我得到傅立葉利用Matlab在Matlab變換圖像的
我做了一個形象的步驟如下:
在執行上述步驟我在結果的雙旋轉的圖像。我不知道爲什麼會發生這種情況。
能有人請解釋其原因,爲什麼結果的雙旋轉的圖像產生的?
的一段代碼是在這裏:
imfftreal = real(imfft);
im = uint8(ifft2(imfftreal));
imshow(im);
Figure;
爲了得到你所需要的虛部也形象的權利。您只在使用逆變換時使用實部。
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);
嗨感謝的答案,但我的問題是爲什麼形象雙重旋轉背後的理論是什麼,我想知道,請解釋... – Sipa
我經歷了同樣的問題,準確,張貼在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
謝謝先生,對我真的很有幫助... – Sipa
請附上輸入圖像和由此產生的「旋轉圖像」,所以我們可以更好地理解你的問題。 – Shai
似乎是一個重複:http://dsp.stackexchange.com/questions/30770/why-real-part-of-fft-converts-image-into-rotation-original – hotpaw2