1. 程式人生 > >《OpenCV3程式設計入門》——5.5 離散傅立葉變換原理

《OpenCV3程式設計入門》——5.5 離散傅立葉變換原理

離散傅立葉變換(Discrete Fourier Transform,縮寫為DFT)指傅立葉變換在時域和頻域上都呈現離散的形式,將時域訊號的取樣變換為在離散時間傅立葉變換(DTFT)頻域的取樣。

形式上,變換兩端(時域和頻域)的序列是有限長的,而實際上這兩組序列都應該被認為是離散週期訊號的主值序列。即使對有限長的離散訊號做DFT,也應當對其經過週期延拓成為週期訊號再進行變換。實際應用中,通常採用快速傅立葉變換來高效計算DFT。

簡單來說,對一張影象使用傅立葉變換就是將它分解成正弦和餘弦兩部分,也就是將影象從空間域(spatial domain)轉換到頻域(frequency domain)。

此轉換的理論基礎為:任一函式都可以表示成無數個正弦和餘弦函式的和的形式

二維影象的傅立葉變換可以用下邊數學公式表達:

                                                          F(k,l)=\sum_{i=0}^{N-1}\sum_{j=0}^{N-1}f(i,j)e^{-i2\pi (\frac{ki}{N}+\frac{lj}{N})}e^{ix}=cosx+isinx

其中,f是空間域(spatial domain)值,F是頻域(frequency domain)值,是複數。所以顯示傅立葉變換後的結果需要使用實數影象(real image)加虛數影象(complex image),或者幅度影象(magnitude image)加相點陣圖像(phase image)的形式。

 

實際應用中,僅僅使用了幅度影象,因為幅度影象包含了原影象的幾乎所有我們需要的幾何資訊。

如果想通過修改幅度影象或者相點陣圖像的方法來間接修改原空間影象,需要使用逆傅立葉變換得到修改後的空間影象,就必須同時保留幅度影象和相點陣圖像。

在頻域裡,對於一幅影象,高頻部分代表了影象的細節、紋理資訊低頻部分代表了影象的輪廓資訊。如果對一幅精細的影象使用低通濾波器,那麼濾波後的結果就只剩下輪廓了。如果影象收到的噪聲敲好位於某個特定的“頻率”範圍內,則可以通過濾波器來回復原來的影象。

傅立葉變換在影象處理中可以得到影象增強與影象去噪、影象分割與邊緣檢測、影象特徵提取、影象壓縮

等。