2015-06-20 21 views
0

我有這樣一行簡單的代碼讀取圖像,並使用fft2函數matlab對圖像進行傅立葉變換,然後通過fftshift將較低頻率帶到圖形的中心。
問題是,在頻域中的圖像圖中:圖像的頻域圖形中的B&W點

1)哪個黑/白點表示高頻?
2)每個黑點/白點的密度是否顯示每個頻率係數的強度?

clc; 
clear all; 
format short; 
format compact; 
im=imread('cameraman.tif'); 
figure,imshow(im); 
F=fftshift(fft2(im)); 
figure,imshow(uint8(abs(F))); 

回答

2

對於一件事,你沒有正確地想象光譜的大小。你天真地將結果投給uint8。因此,任何大於255的值都會被截斷爲255.人們通常做的一件事是在取得日誌之前取對數譜並加1,以確保沒有未定義的錯誤。

因此,這樣做:

figure; imshow(log(1 + abs(F)), []); 

你得到這幅畫來代替:

這就是頻譜的一個更好的代表性。 DC係數具有最高的強度,位於圖像的中間。高頻係數向光譜的外邊緣移動。你看到有不同方向的線條。這些實際上給了你圖像中最突出的邊緣的方向,從垂直線開始,告訴你攝影師圖像中有很多垂直線,這很有意義。

此外,你是正確的,係數的強度對應於圖像中點的強度。此圖像中的每個點都會告訴您此時經歷的水平和垂直空間頻率的強弱。

+0

不過晚了一點,非常感謝。 – Light