天天看點

《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲

本節書摘來自異步社群《精通matlab數字圖像處理與識别》一書中的第6章,第6.7節,作者 張铮 , 倪紅霞 , 苑春苗 , 楊立紅,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

精通matlab數字圖像處理與識别

6.5~6.6節介紹了幾種典型的頻域濾波器,實作了頻域下的低通和高通濾波,它們均可在空域下采用平滑和銳化算子實作。而本節準備給出一個特别适合在頻域中完成的濾波案例,即利用頻域帶阻濾波器消除圖像中的周期噪聲。下面就來看一下這個在空域中幾乎不可能完成的任務是如何在頻域中實作的。

顧名思義,所謂“帶阻”就是阻止頻譜中某一頻帶範圍的分量通過,其他頻率成份則不受影響。常見的帶阻濾波器有理想帶阻濾波器和高斯帶阻濾波器。

1.理想帶阻濾波器

理想帶阻濾波器的表達式為

《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲

式中:d 0是阻塞頻帶中心頻率到頻率原點的距離;w是阻塞頻帶寬度;d是(u,v)點到頻率原點的距離。于是,理想帶阻濾波器的頻域特性曲面如圖6.28所示。

《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲

2.高斯帶阻濾波器

本案例中使用了高斯帶阻濾波器,下面直接給出高斯帶阻濾波器的表達式。

《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲

式中:d 0是阻塞頻帶中心頻率到頻率原點的距離;w是阻塞頻帶寬度;d是(u,v)點到頻率原點的距離。于是,二維高斯帶阻濾波器的頻域特性曲面如圖6.29所示。

《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲

3.高斯帶阻濾波器的matlab實作

帶阻濾波器常用于處理含有周期性噪聲的圖像。周期性噪聲可能由多種因素引入,例如圖像擷取系統中的電子元件等。本案例中我們人為地生成了一幅帶有周期噪聲的圖像,而後通過觀察分析其頻譜特征,選擇了合适的高斯帶阻濾波器進行頻域濾波。

1.得到周期噪聲圖像

通常可以使用正弦平面波來描繪周期性噪聲。如下程式為matlab示例圖檔pout.tif增加周期性噪聲。

添加周期性噪聲前後的差別如圖6.30所示。

2.頻譜分析

使用高斯帶阻濾波器時,首先需要對欲處理的圖像的頻譜有一個了解。下面的指令得到了兩幅圖像的頻譜。

《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲

程式的運作結果如圖6.31所示。

《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲
《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲

3.帶阻濾波

觀察圖6.31(b),發現周期性圖像的傅立葉頻譜中出現了兩對相對于坐标軸對稱的亮點,它們分别對應于圖像中水準和豎直方向的正弦噪聲。我們構造高斯帶阻濾波器的時候就需要考慮盡可能濾除具有這些亮點對應的頻率的正弦噪聲。注意到這4個點位于以頻譜原點為中心,以50為半徑的圓周上。是以,設定帶阻濾波器中心頻率為50,頻帶寬度為5,如圖6.31(c)所示,濾波後的頻域效果如圖6.31(d)所示。

相應的程式如下。

上述程式運作後得到的高斯帶阻濾波器最終濾波效果如圖6.32所示,我們看到周期噪聲被很好地消除,這樣的效果在空域中是很難實作的。

《精通Matlab數字圖像處理與識别》一6.7 Matlab綜合案例——利用頻域濾波消除周期噪聲

繼續閱讀