聶真真
(長江水利委員會漢江水文資源勘測局,湖北丹江口442700)
圖像在形成、傳輸、接收和處理過程中,存在一些噪聲干擾使圖像質(zhì)量下降,為減少噪聲的影響,可采取各種濾波方法對圖像進行去噪處理。從本質(zhì)上來說,經(jīng)典的圖像去噪方法是低通濾波的方法,其中中值濾波法得到了廣泛的應(yīng)用。由于該方法對去除脈沖噪聲具有較好的性能,因此最早被用于去除脈沖噪聲[1]。然而,在標(biāo)準(zhǔn)中值濾波中,噪聲的去除是以圖像分辨率的降低為代價的,因而得到的圖像都比較模糊。近年來,出現(xiàn)了多種基于中值濾波的改進型算法,如自適應(yīng)中值濾波[2-4]、加權(quán)中值濾波算法等[5],這些算法在改善中值濾波器的性能方面做了有益的探索,但都有其局限性,主要表現(xiàn)在對所有像素進行統(tǒng)一處理,在濾除噪聲的同時也改變了非噪聲點像素的灰度值,從而造成圖像模糊。顯然,理想的濾波算法應(yīng)該區(qū)別對待噪聲點和信號點,只對噪聲污染像素進行中值代替,而保持信號像素的灰度值不變。
基于此,筆者提出一種帶有噪聲檢測步驟的中值濾波改進算法,通過設(shè)定閾值標(biāo)記出可能的噪聲點,再根據(jù)相鄰像素的相關(guān)信息對可能的噪聲點進一步判斷,精確確定噪聲點。最后只對噪聲點進行中值濾波,而對信號點不進行處理。這樣就可以減少圖像模糊,提高圖像質(zhì)量。實驗結(jié)果表明,該算法能較好地去除噪聲,同時可保留圖像的細節(jié),是一種有效的圖像噪聲濾波算法。
傳統(tǒng)中值濾波算法的具體步驟[6]如下:
(1)將模板在圖像中漫游,并將模板中心與圖像中心某個像素的位置重合;
(2)讀取模板下各對應(yīng)像素的灰度值;
(3)將這些灰度值從小到大排成一列;
(4)找出排在中間的一個值;
(5)將這個中間值賦給對應(yīng)模板中心位置的像素。
中值濾波的輸出像素是由模板上的各像素點的中間值決定的[7],因而中值濾波對圖像有較好的平滑作用,可以有效消除一些孤立的脈沖點。對圖像逐點進行一次性的中值替代,在噪聲密度較低時,該算法的效果很好,但是隨著噪聲密度逐漸增大,圖像將越來越模糊。因此,可通過邏輯判斷的方法對噪聲點進行標(biāo)識,僅對被標(biāo)識的噪聲點進行修復(fù)。
脈沖噪聲點的檢測在整個中值濾波算法中是十分重要的一環(huán),它關(guān)系到圖像中像素的正確分類,將脈沖噪聲從圖像中準(zhǔn)確無誤地檢測出來才有利于中值濾波后圖像的質(zhì)量。
脈沖噪聲是由于某些原因在圖像中產(chǎn)生的一些灰度值很小(接近黑色)或灰度值很大(接近白色)的污染點,也就是集中在極值0或極值255附近的點[8],值一般遠遠大于或遠遠小于鄰近像素的灰度值,因此,可以將圖像像素點分為可疑噪聲點和信號點。設(shè)脈沖噪聲的灰度范圍為[0,?]和[255-?,255],若圖像某一像素點灰度值在這兩個范圍內(nèi),則該像素為可疑噪聲點,反之為信號點。但并不是所有的可疑噪聲點都是脈沖噪聲點,可疑噪聲點可能是噪聲點也可能是圖像窄的邊緣、細線和部分平坦灰度區(qū)域,因此這只是初步判定,僅靠簡單地根據(jù)脈沖噪聲點的一些特性來判斷還無法顯示像素的真正性質(zhì)。
為了標(biāo)識脈沖噪聲點的位置,建立與含噪圖像維數(shù)大小相同的布爾矩陣,稱之為噪聲標(biāo)識矩陣,表示為C,矩陣中每個元素都與待處理的含噪圖像中每個像素相對應(yīng),用C(i,j)表示,即:
其中,M和N分別為以像素點數(shù)表示的圖像長度及寬度,C(i,j)為0表示該元素所對應(yīng)的圖像像素為脈沖噪聲,為1表示原圖像像素。C初始化為全1矩陣,在進行噪聲檢測的過程中,根據(jù)初步脈沖噪聲檢測的結(jié)果將矩陣中的元素賦值為0或保持原值1。這里先將可疑噪聲點的位置標(biāo)識為0,信號點仍保持原值。
圖像相鄰像素點之間存在很大的相關(guān)性,某一點灰度值與其周圍點灰度值很接近。為了區(qū)分脈沖噪聲點和圖像窄的邊緣、細線和部分平坦灰度區(qū)域,可利用鄰域信息來檢測脈沖噪聲點,方法是將5×5窗口中的25個像素點劃分成8組不同方向的窗口來進行檢測,它們分別是沿水平、垂直和與水平方向成 22.5°,45.0°,67.5°,112.5°,135.0°及 157.5°的一維窗口,每個窗口都是將可疑噪聲點的灰度值乘以窗口內(nèi)其他像素點的個數(shù),再將其與窗口內(nèi)其他像素點的灰度值做差分,這樣得到了8組分別代表8個窗口的差分灰度值,然后進一步對差分灰度值進行分析,來準(zhǔn)確無誤、沒有遺漏地定位脈沖噪聲點。
以可疑的噪聲點xi,j為中心的5×5窗口的24鄰域像素點標(biāo)記如圖1所示。
圖1 5×5窗口像素點標(biāo)記圖
令 β 為 λ1、λ2、λ3、λ4、λ5、λ6、λ7、λ8絕對值的最小值,接著根據(jù)β的值來分析判斷像素點xi,j是否為脈沖噪聲點。如果當(dāng)前中心像素點為平坦區(qū)域像素點,則8個窗口像素點灰度值絕大部分與它很接近,β值很小;如果當(dāng)前中心像素點為圖像邊緣點,則8個窗口中至少有一個窗口像素點灰度值絕大部分與它很接近,β值也很小;如果當(dāng)前中心像素點為噪聲點,那么它周圍的絕大多數(shù)像素灰度值與它差距很大,因此8個窗口的β值都很大,β值也會很大??梢栽O(shè)定一個閾值T,若β>T,該中心像素點為噪聲點,若β<T,該中心像素點為信號點。閾值T的選擇是在實驗中經(jīng)過比較而確定的最恰當(dāng)?shù)闹怠.?dāng)確定某點是噪聲點后,噪聲標(biāo)志矩陣C相對應(yīng)該元素的點則會置為0,其他像素點均置為1,即:
Ci,j取1或0代表原圖像當(dāng)前像素點是否為脈沖噪聲點。
基于噪聲特點和鄰域信息的噪聲檢測中值濾波方法,首先根據(jù)脈沖噪聲的特點,將圖像像素點粗略地劃分為可疑噪聲點和信號點,對于可疑噪聲點,進一步進行判別,根據(jù)鄰域信息將可疑噪聲點劃分為噪聲點和信號點,對噪聲點采用中值濾波法進行濾波,對信號點不進行處理。噪聲點進行中值濾波后,就在其相應(yīng)的噪聲標(biāo)識矩陣中將其值由0變成1,一直進行到噪聲標(biāo)識矩陣全為1,表示全部噪聲點都已濾除,濾波完成。與傳統(tǒng)的中值濾波相比,該方法對圖像的像素點進行兩級判別,避免錯判和漏判,并且僅對噪聲點進行處理,因此具有較好的去噪和保留細節(jié)的能力。該中值濾波方法在保護圖像細節(jié)與去除脈沖噪聲之間可以找到一個良好的平衡點。
為了驗證濾波算法的效果,對512×512的Lena圖像添加不同密度的脈沖噪聲,分別通過3×3、5×5、7×7的中值濾波和筆者的算法進行濾波比較,筆者的算法采用5×5的濾波窗口,在經(jīng)過反復(fù)的實驗比較后,當(dāng)兩個閾值?取10,T選擇15時,濾波效果最好。仿真軟件采用VC++6.0[9-10]開發(fā)。
為了定量地衡量算法結(jié)果的好壞,以輸出圖像的峰值信噪比(peak signal to noise ratio,PSNR)為標(biāo)準(zhǔn)來評價濾波算法的性能,PSNR的定義為:
式中:x(i,j),x'(i,j)分別為含噪圖像、去噪后的輸出圖像的中點(i,j)的灰度值;M和N分別為以像素點數(shù)表示的圖像的長度及寬度;L為數(shù)字圖像的灰度級數(shù)。PSNR越大,去噪圖像的質(zhì)量越好。
圖2 不同算法用Lena含脈沖噪聲圖像的去噪效果圖
圖2 為不同算法用于Lena圖像含脈沖噪聲30%的去噪效果圖,從圖2中可以看出,無論3×3、5×5還是7×7的中值濾波,都存在圖像視覺模糊、邊緣細節(jié)丟失、噪聲點仍然存在且有不少的情況。而筆者所采用的基于鄰域信息的噪聲點檢測的中值濾波算法對圖像濾波的效果明顯增強,邊緣變得清晰,較好地保留了細節(jié),圖像上也沒有明顯的噪聲點。
表1為各種算法用于含不同強度脈沖噪聲的Lena圖像去噪的實驗結(jié)果,由表1可看出,當(dāng)輸入圖像的信噪比較高時,3×3的濾波窗口效果較好,濾波后的圖像信噪比較高。隨著輸入圖像信噪比的降低,濾波窗口為5×5的濾波器濾波效果超過了濾波窗口為3×3的濾波器,濾波后圖像信噪比較高,這是因為對中值濾波而言,濾波窗口越大,去噪效果越好,而對圖像造成的模糊也越強。而筆者采用的算法由于只處理噪聲點,保持信號點不變,且選擇5×5的濾波窗口適中,因此無論輸入圖像的信噪比是高還是低,處理后的信噪比都是最高的,圖像最清晰,噪聲點誤判、漏檢極少,表現(xiàn)出了極佳的濾波性能。
表1 各種算法用于含不同強度脈沖噪聲的Lena圖像去噪的實驗結(jié)果(PSNR)
在分析了中值濾波算法及噪聲特點的基礎(chǔ)上,給出了一種基于鄰域信息的脈沖噪聲點檢測的中值濾波算法,通過對不同強度噪聲污染圖像的實驗結(jié)果表明:筆者提出的算法在噪聲去除和邊緣保持上都優(yōu)于傳統(tǒng)的不同窗口大小的中值濾波算法,客觀實驗數(shù)據(jù)也驗證了該算法的優(yōu)越性,因此是一種有效的脈沖噪聲圖像濾波算法。
[1]賈永紅.數(shù)字圖像處理[M].武漢:武漢大學(xué)出版社,2003:77-79.
[2]KO S J,LEE Y H.Center weighted median filters and their applications to image enhancement[J].IEEE Transactions on Circuits and Systems,1991,38(9):984-993.
[3]JEONG B,LEE Y H.Design of weighted order statistic filter using the perception algorithm[J].IEEE Transactions on Signal Processing,1994,42(11):3264-3269.
[4]林其偉.基于剩余噪聲檢測的自適應(yīng)中值濾波算法[J].武漢理工大學(xué)學(xué)報:信息與管理工程版,2008,30(5):704-707.
[5]張宇,王希勤,彭應(yīng)寧.自適應(yīng)中心加權(quán)的改進均值濾波算法[J].清華大學(xué)學(xué)報:自然科學(xué)版,1999,39(9):76-78.
[6]章毓晉.圖像處理和分析基礎(chǔ)[M].北京:高等教育出版社,2002:1-60.
[7]閆敬文.數(shù)字圖像處理(MATLAB版)[M].北京:國防工業(yè)出版社,2007:54-112.
[8]何東健.數(shù)字圖像處理[M].西安:西安電子科技大學(xué)出版社,2003:21-78.
[9]何斌,馬天予,王運堅,等.Visual C++數(shù)字圖像處理[M].北京:人民郵電出版社,2002:1-300.
[10]求是科技.Visual C++數(shù)字圖像處理典型算法及實現(xiàn)[M].北京:人民郵電出版社,2006:1-125.