http://blog.sina.com.cn/s/blog_6f57a7150100o7ik.html
對於一維函數:未平移前,FT的一個周期是沿原點對稱分布的。討論DFT,假設頻率范圍為[0,1,……,M-1,M],則DFT的頻譜分布在原點0的兩側,左:[M/2,M/2-1,……,0],右側[0,……,M/2-1,M/2]
同樣,將上述道理用於理解二維函數(比如圖像數據):FT的中心位於頻率矩形的中點——假設u,v為頻率自變量,則在u方向的FT和沿v方向的FT是沿原點對稱分布的,而原始圖像的原點在左上角(故FT圖像的原點也在左上角),這就導致一幅圖像的FT圖像由相鄰的四個FT周期的1/4組成,如下圖所示:
頻譜平移使用fftshift來重排數據,相當於把FT圖像的原點移到了頻率矩形的原點(左上角),如下圖所示:
//關於頻率矩形:設u方向的頻率范圍為[0,M],v方向的頻率范圍為[0,N],則矩形[(0,0)(M,0)(M,N)(0,N)]即頻率矩形。
示例:
圖像生成:
>> I=zeros(255,255);
>> I(100:155,100:155)=1;
>> imshow(I)
>> F=fft2(I);
>> S=abs(F);figure
>> imshow(S,[])
圖上,四個角的亮點是由於FT的周期性導致的結果(分析見上文)。
經過頻譜平移後的圖像為:
>> Fc=fftshift(F);figure,imshow(abs(Fc),[])
亮度區域不明顯,不方便觀察——因為頻譜的動態范圍太大了,與8比特顯示(此時中心處的明亮值佔支配地位)相比要大得多。
可以知道
>> max(max(abs(F)))
ans =
為此,可以使用對數變換來壓縮動態范圍。
>> S2=log(1+abs(Fc));imshow(S2,[])
ans =
可以看到,動態范圍已降至13.5920,更方便觀察與處理。
摘錄一段:「 對數變換的一項主要應用是壓縮動態范圍,例如,傅立葉頻譜的范圍為[0,10^6]或更高,當FT頻譜顯示於已線性放至8比特的監視器上時,高值部分佔優,從而導致頻譜中低亮度值的可視細節丟失。通過計算對數,10^6左右的動態范圍會降至14 。」——Gonzalez《數學圖像處理》