[數位影像處理]映像去噪初步(2)--非線性濾波器

來源:互聯網
上載者:User

標籤:影像處理   映像去噪   非線性處理   非線性濾波器   

1.非線性處理與線性處理的區別

    上一篇博文的內容,是關於均值濾波器的。比如說像算術均值濾波器,幾何均值濾波器。這以類型的濾波器的常常被用於剔除某些不需要的頻率成分,或者選擇需要的頻率成分,從而達到去噪的目的。這樣的濾波器,被稱為線性濾波器。

    然而,還有一些特殊濾波器,他們被稱為非線性濾波器。其代表為中央值濾波器。所謂中央值濾波器,就是將一定範圍內的資料(對於映像而言,是像素的灰階值)進行排序,選擇中央值作為濾波器的輸出。

    中央值濾波器的目的並不是頻率成分的選擇,而是求root訊號。關於root訊號的定義,[文獻1]中是這樣給出的。

------------------------    

定義:對於任意訊號,使用中央值濾波器進行有限次處理,直到所得到的限號不變為止。中央值濾波器處理前後,如果這個訊號列沒有任何變化,那麼將這個訊號列稱為這個濾波器的root訊號。

------------------------ 

    對於中央值濾波器來講,可以完美去除被椒鹽雜訊汙染的root訊號。對於root訊號,有如下的性質。對於以下定理的證明與詳細說明,請參考[文獻2][文獻3]。

=============

定理1:如果訊號列{x(i)}是單調遞增或單調遞減的,那麼對於任何尺寸的中央值濾波器,這個訊號列都是root訊號。

定理2:如果訊號列{x(i)}是在從i開始的m個訊號之間的局部單調訊號的話,那麼對於尺寸為N=2M+1(M<=m-2)的中央值濾波器,這樣的訊號為這個濾波器的root訊號。

=============

      

2.幾個典型的非線性濾波器    2.1 中央值濾波器 (Median Filter)

    正如第一節所敘述的,中央值濾波器可以有效去除椒鹽雜訊,並且不會使得映像模糊。我們將一副映像染上椒鹽雜訊,然後使用不同尺寸的中央值濾波器去進行處理。所得的結果的畫質使用SSIM去評價。

    首先,將映像染上鹽粒密度為0.15,胡椒密度為0.15的椒鹽雜訊,使用3x3,5x5,7x7和9x9四種不同尺寸的中值濾波器去處理映像。所得到的結果,如下表所示。


由所示,可以看出,所用濾波器尺寸不同,得到的結果是不同的,尺寸較大的濾波器得到了不太好的結果。隨著迴圈次數的增加,映像的SSIM逐漸層化,最後趨近於穩定。下面是迴圈次數為30時候,4種尺寸濾波器得到的結果。


     為了驗證雜訊與實驗結果的影響,將映像染上鹽粒密度為0.35,胡椒密度為0.35的椒鹽雜訊,在進行濾波實驗,可以得到如下曲線。

     實驗結果給出,尺寸較小的的中值濾波器,其收斂到root訊號較為緩慢,其次,對於高雜訊的映像,其修複結果是不太好的。

     總結上述實驗,可以得到三個有用的結論。

     1.中央值濾波器在處理過程中,不斷在尋找root訊號。反覆數回之後,其結果收斂,基本不改變。

     2.對於不同的映像,不同的雜訊,最適合本幅映像的中央值濾波器的尺寸是不同的。並不是尺寸越小越好。

     3.尺寸小的濾波器,收斂速度慢。反之,尺寸大的濾波器,收斂較快。


     2.2 自適應中央值濾波器     我們要很好的使用中央值濾波器,只有一個要點!就是找一個最適合的濾波器尺寸,使得原圖就是這個濾波器的root訊號,那麼,就可以得到一個完美的結果(當然,最適合的濾波器是不存在的)。那麼,這裡就可以有個想法了,在執行濾波器操作的時候,儘可能多的嘗試各種尺寸,選擇一個最適合的,讓原圖很接近這個尺寸的濾波器的root訊號。這樣的話,就可以得到一個不錯的結果了。

    當然,之對於椒鹽雜訊的話,還可以加入這樣一個功能,由於雜訊的灰階值是已知的(鹽粒雜訊為1,胡椒雜訊0),那麼只有當中央值不是0或者1的時候,濾波器生效,否則,擴大濾波器尺寸。

    歸納上述思想,可以得到如下的虛擬碼。

START:   S_xy = read(f(x,y),[size_S_xy]); z_min = min(S_xy); z_max = max(S_xy); z_med = median(S_xy);LOOP A :  A_1 = z_med - z_min;          A_2 = z_med - z_max;                    if  ((A_1 >0) and (A_2 < 0))                 goto LOOP B;          else  size_S_xy++;                goto START;                    if  (size_S_xy <= size_max)               g(x,y) = z_med;                   goto NEXT;LOOP B :  B_1 = f(x,y) - z_min;          B_2 = f(x,y) - z_max;          if  ((B_1 >0) and (B_2 < 0))                 g(x,y) =  f(x,y) ;                   goto NEXT;          else  g(x,y) = z_med;                 goto NEXT;NEXT :    x,y移動到下一個像素點          if (x > x_max)and(y>y_max)              return;     else goto START;
     來看看這個濾波器的效果,將映像加一個很強的雜訊椒鹽雜訊。鹽粒密度為0.3,胡椒密度為0.3。同時將同樣的映像,使用5x5的中央值濾波器。兩個濾波器的不同,還是很容易看出來的。


      2.3 最大值濾波器與最小值濾波器      最大值濾波器與最小值濾波器這兩個濾波器,跟中央值濾波器有些類似。同樣是一個目的,用於尋找root訊號,只不過,最大值濾波器可以用於去除鹽粒雜訊,相反,最小值濾波器可以用於取出胡椒雜訊。同樣的,最大值與最小值濾波器不適用於去除,同時含有鹽粒雜訊與胡椒雜訊的圖片。

      由於這個很簡單,結果就不貼了。


     2.4 中點濾波器(midpoint filter)

     中點濾波器,糅合了均值濾波器和非線性排序處理。這樣的濾波器對於去除高斯雜訊與均勻雜訊有很好的效果。


我們使用這個濾波器,與平均濾波器做個比較吧。其結果顯示在。


    圖片上,縱軸表示畫質SSIM,橫軸表示雜訊的方差。綠線表示中點濾波器,紅線表示算術濾波器。可以看出,均勻雜訊上,中點濾波器的效能還是優於算術平均濾波器的。(當然,這可能跟選用的評價映像有關,但是基本是這個趨勢)。

    2.4 修正的阿爾法均值濾波器    從很小的時候開始,對唱歌節目就有這樣的一個映像,評委打分的時候,總是要去掉一個最高分,去掉一個最低分,然後求均值。這個是個什麼樣的原理呢?其實這是一個很典型的濾波器,可以更好的反應一個選手的水平。    在影像處理領域,也有一個類似的處理方法,其運算式如下。    簡單的理解一下這個濾波器,首先,我們將濾波範圍 的個資料進行排序,從大到下的順序去除個資料,從小到大的順序去除個資料。將剩下的資料計算均值。

    這樣的濾波器,很擅長去除椒鹽雜訊與其他類型雜訊一起汙染過的圖片。依然是實驗,首先將圖片染上鹽粒密度為0.1,胡椒密度為0.1的椒鹽雜訊。然後,再將這幅映像染上高斯雜訊。在將圖片進行去噪。得到的結果如下所示。


    可以出,對於複數的雜訊,這樣的濾波器的效果是最好的。

3.自適應中值濾波器的Matlab代碼     由於本次代碼都比較簡單,主要是概念上的理解,所以,代碼我也就貼個自適應濾波器的代碼就完事吧!


     下一篇博文,會說到去卷積處理。


參考文獻

[文獻1]非線形ディジタル訊號処理  ,棟安実治 ?田口亮 著,システム制禦情報學會,朝倉書店,1999年03月20日
[文獻2]Tyan, S. G. "Median filtering: Deterministic properties." Two-Dimensional Digital Signal Prcessing II. Springer Berlin Heidelberg, 1981. 197-217.
[文獻3]Gallagher Jr N C, Wise G L. A theoretical analysis of the properties of median filters[J]. Acoustics, Speech and Signal Processing, IEEE Transactions on, 1981, 29(6): 1136-1141.


原文發於部落格:http://blog.csdn.net/thnh169/ 

=============更新日誌===================

2014 - 7 - 17       修正了一些格式錯誤


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.