基于×字形窗口的自適應(yīng)中值濾波算法
中值濾波是當(dāng)前應(yīng)用最廣泛的濾波方法之一,然而,中值濾波的去噪效果和處理速度依賴于濾波窗口的大小及參與中值計(jì)算的像素點(diǎn)數(shù)目。當(dāng)脈沖噪聲概率小于0.2時,中值濾波是很有效的方法,當(dāng)脈沖噪聲概率超過0.2時,則使用自適應(yīng)中值濾波方法。
×字形窗口的自適應(yīng)中值濾波算法是對中值濾波的一種改進(jìn)。相對于中值濾波而言,它能夠處理空間密度更大的沖激噪聲,并且在平滑非沖激噪聲時,還可保存更多的圖像細(xì)節(jié);效率方面也較一般的自適應(yīng)中值濾波有所改善。常見窗口及本文提出窗口如圖2所示。
基本原理如下:
首先,采用3×3的×字形窗口進(jìn)行計(jì)算,計(jì)算圖像的中值濾波值Zmed、最大值濾波值Zmax和最小值濾波值Zmin,并判斷噪聲敏感度,即:如果Zmec,不在Zmax和Zmin之間就自動增加×字形窗口的大小,然后重復(fù)以上的過程;對于Zmed在Zmax和Zmin之間的點(diǎn)先用原像素值與最大濾波值和最小濾波值進(jìn)行判斷,如果在其間,原值不做修改,反之就用Zmed取代原值。這一過程有如下的作用:
(1)使得未受脈沖噪聲污染的點(diǎn)不用修改,很好地保護(hù)了圖像的點(diǎn)、線等細(xì)節(jié)及邊界信息;
(2)當(dāng)檢測到的噪聲很強(qiáng)時,自動增大窗口,提高了去噪能力;
(3)當(dāng)檢測到的噪聲不是很強(qiáng)時,就不用增加窗口的大小,既體現(xiàn)出自適應(yīng)性,又減少了時間開銷,提高了速度。
其中,×字形窗口的實(shí)現(xiàn)方法如下:
(1)先得到一個對角矩陣A;
(2)將對角矩陣A從左向右翻轉(zhuǎn),得到一個矩陣B;
(3)將矩陣A與矩陣B取或運(yùn)算,得到X字形矩陣C。
3基于×字形窗口自適應(yīng)中值濾波算法的Matlab實(shí)現(xiàn)
中值濾波是數(shù)字圖像處理中一個很重要的部分,Matlab工具箱中有該函數(shù),用到中值濾波算法時可直接調(diào)用。因此,用Matlab編程具有簡單、方便、快捷等優(yōu)點(diǎn)。另外,還可以對其內(nèi)部函數(shù)進(jìn)行改進(jìn)。本文的算法就是通過另外編程修改中值濾波有關(guān)的內(nèi)部函數(shù)實(shí)現(xiàn)的。下面就是自適應(yīng)中值濾波算法的實(shí)現(xiàn)流程,添加新的庫函數(shù)――adpmedianXzi對圖像處理工具箱進(jìn)行擴(kuò)展,以實(shí)現(xiàn)數(shù)字圖像自適應(yīng)中值濾波(部分偽代碼)。
4實(shí)驗(yàn)結(jié)果及其分析
在實(shí)驗(yàn)中,選擇了大小為256×256像素、灰度為256級的Lena圖像。實(shí)驗(yàn)環(huán)境為IBM R52,Matlab7.0軟件。實(shí)驗(yàn)結(jié)果如圖3、圖4所示。
評論