唐義杰,胡超,張倚瑋,董卓昊,劉津銘,劉思源
(1.西南大學(xué),重慶,400715;2.重慶大學(xué),重慶,400044;3.廣西大學(xué),廣西南寧,530004)
圖像在制作、傳輸、獲取和處理的過程中可能會受到一些干擾,從而產(chǎn)生圖像噪聲。這些噪聲嚴(yán)重擾亂了圖像信息,降低了圖像畫質(zhì),損毀了一些細(xì)節(jié)特征,給圖像的使用和分析帶來了很大的困難,所以如何濾除這些圖像噪聲,盡可能的還原圖像特征,這是一個非常具有現(xiàn)實意義的問題。
圖像中最常見的幾種噪聲分別為脈沖噪聲、高斯噪聲、泊松噪聲、伽馬噪聲和瑞利噪聲等。本文研究的是脈沖噪聲,又稱椒鹽噪聲,這是圖像中很常見的一種噪聲,它的特征是其灰度以等概率取最小灰度值或最大灰度值隨機(jī)出現(xiàn)在圖像中,在圖像上呈現(xiàn)出在亮的區(qū)域內(nèi)有黑色像素點(diǎn)(胡椒點(diǎn))或者在暗的區(qū)域內(nèi)有白色像素點(diǎn)(鹽點(diǎn))產(chǎn)生。椒鹽噪聲產(chǎn)生的原因有很多,最常見的是由于圖像切割所引起的干擾,也可能是因為影像訊號突然受到強(qiáng)烈的電磁干擾,或者傳感器內(nèi)部出現(xiàn)時序錯誤等,這是對圖像造成干擾嚴(yán)重最嚴(yán)重的噪聲之一[1]。
去除椒鹽噪聲的常規(guī)方法是使用傳統(tǒng)的中值濾波算法,這是一種基于排序統(tǒng)計的濾波算法,其將像素點(diǎn)的灰度值用其鄰域內(nèi)所有像素點(diǎn)灰度值的中值來替代,算法原理簡單,運(yùn)行速度快,易于實際使用。這種算法的濾波性能主要取決于它的濾波窗口大小,然而矛盾的是濾波窗口過小時無法有效地濾除噪聲,而濾波窗口過大時又會使圖像變得模糊。在椒鹽噪聲密度不大的情況下,傳統(tǒng)的中值濾波算法對椒鹽噪聲的濾波效果不錯,但伴隨椒鹽噪聲密度的增加,其濾波性能會快速下降。
許多學(xué)者在傳統(tǒng)中值濾波算法的基礎(chǔ)上做了改進(jìn),提出了一些可以高效濾除椒鹽噪聲的改進(jìn)算法,例如:迭代中值濾波算法[2],二次中值濾波算法[3],對稱中值濾波算法[4],高速自適應(yīng)中值濾波算法[5],非線性濾波算法[6]等。這些算法的濾波性能相對于傳統(tǒng)的中值濾波算法有了大幅提升,對被椒鹽噪聲干擾的圖像有很好的還原效果,但當(dāng)椒鹽噪聲的密度過大時,還是難以保全圖像細(xì)節(jié),產(chǎn)生毛邊導(dǎo)致圖像模糊。對此又有學(xué)者提出了針對高強(qiáng)度椒鹽噪聲的濾波算法[7],其在高密度椒鹽噪聲環(huán)境下的濾波性能有了顯著提升,但這種方法結(jié)構(gòu)復(fù)雜,實行難度高,運(yùn)算速度慢。
本文基于傳統(tǒng)中值濾波算法做出改進(jìn),結(jié)合了圖像模糊邊緣檢測的方法,提出了一種適用于強(qiáng)椒鹽噪聲環(huán)境下的模糊邊緣自適應(yīng)中值濾波算法,這種算法可以很好地濾除高強(qiáng)度椒鹽噪聲,還原被椒鹽噪聲干擾的圖像,濾波還原效果要優(yōu)于文獻(xiàn)[7],并且該算法具有自適應(yīng)的特點(diǎn),通用性強(qiáng),結(jié)構(gòu)簡單,運(yùn)行速度快。
本文算法的實現(xiàn)主要分為三個過程,第一個過程是對圖像進(jìn)行噪聲點(diǎn)檢測[8],將具有最小灰度值或最大灰度值的像素點(diǎn)全部標(biāo)記為疑似噪聲點(diǎn),其他像素點(diǎn)列為信號點(diǎn),通過這一過程可檢索出疑似噪聲點(diǎn),再將疑似噪聲點(diǎn)和信號點(diǎn)區(qū)分開然后分別進(jìn)行處理。第二個過程是對噪聲點(diǎn)進(jìn)行自適應(yīng)濾波處理[9],找到每個像素點(diǎn)所對應(yīng)的最佳濾波窗口大小且分別對其進(jìn)行濾波處理,保留所有信號點(diǎn)的灰度值。第三個過程是對濾波處理后的圖像進(jìn)行模糊邊緣檢測,通過比對所有像素點(diǎn)之間的灰度值差異,找出模糊邊緣像素點(diǎn),并對這些像素點(diǎn)進(jìn)行二次自適應(yīng)中值濾波處理,像素點(diǎn)進(jìn)行第二次中值濾波時采用與第一次中值濾波相對應(yīng)的濾波窗口大小。
本文用S(i,j)來表示圖像中位于第i行第j列的像素點(diǎn)灰度值,用Smax和Smin表示圖像中所有像素點(diǎn)的最大灰度值和最小灰度值,本文選取的八位灰度圖中Smax和Smin的值分別為255和0。對圖像中所有像素點(diǎn)的灰度值逐個檢索比對,將灰度值與Smax或Smin相同的點(diǎn)標(biāo)記為疑似椒鹽噪聲點(diǎn),其他像素點(diǎn)標(biāo)記為信號點(diǎn),用N(i,j)表示疑似椒鹽噪聲點(diǎn)矩陣。

在進(jìn)行噪聲點(diǎn)檢驗之后,保留所有信號像素點(diǎn)的灰度值不變,只對檢索出的疑似噪聲點(diǎn)進(jìn)行濾波處理,具體處理方法如下:
逐個計算出所有疑似噪聲點(diǎn)到圖像邊界的最短距離dmin,將其作為適用于該點(diǎn)進(jìn)行自適應(yīng)中值濾波時可以使用的最大濾波窗口的指標(biāo),數(shù)值上該點(diǎn)能接受最大濾波窗口的邊長為dmin的兩倍。
對所有疑似噪聲點(diǎn)逐一進(jìn)行自適應(yīng)中值濾波處理,將疑似噪聲點(diǎn)作為濾波窗口的中心點(diǎn),其灰度用濾波窗口內(nèi)所有像素點(diǎn)灰度的中值進(jìn)行替代。濾波過程應(yīng)遵守最小濾波窗口原則,每個疑似噪聲點(diǎn)的濾波窗口按[3 3][5 5][7 7]的排列方式逐步增大逐次對疑似噪聲點(diǎn)進(jìn)行中值濾波,直到該點(diǎn)的灰度與Smax或者Smin不相同時,認(rèn)為這個疑似噪聲點(diǎn)被濾除,結(jié)束對該點(diǎn)的處理,濾波窗口復(fù)位為最小邊長,繼續(xù)對下一個疑似噪聲點(diǎn)進(jìn)行中值濾波處理。該方法可以找到適用于不同疑似噪聲點(diǎn)的最佳濾波窗口大小并對其進(jìn)行濾波處理,體現(xiàn)了自適應(yīng)的濾波功能,對不同圖像具有通用性。
經(jīng)過自適應(yīng)中值濾波處理之后,圖像已經(jīng)可以達(dá)到很好的還原效果,但當(dāng)噪聲密度過大(>70%)時,圖像中的物體邊緣會產(chǎn)生毛邊使整體圖像模糊。本文算法對于這種情況下的還原圖像進(jìn)行模糊邊緣檢測,提取出模糊邊緣像素點(diǎn)并對其進(jìn)行二次自適應(yīng)中值濾波處理。模糊邊緣檢測的基本原理如下:
物體邊緣可以看作兩個均勻區(qū)域之間的邊界,我們可以通過比較鄰近像素的強(qiáng)度來檢測模糊邊緣像素點(diǎn)。如果把整個圖像看成一個二維離散函數(shù),那么圖像的梯度在數(shù)值上就是這個二維離散函數(shù)的求導(dǎo),令兩個方向上的導(dǎo)數(shù)矩陣為dx和dy,令兩個矩陣之和為G:

然后,利用梯度濾波器Gx=[-1 1]和Gy(等于Gx的轉(zhuǎn)置)與圖像S分別進(jìn)行卷積,可以獲得圖像沿水平方向和豎直方向的梯度矩陣Sx和Sy,梯度的值在[-1 1]之間變化。如果水平方向梯度(Sx)相差很小并且豎直方向梯度(Sy)相差也很小,那么該像素點(diǎn)用白色表示,如果水平方向梯度或者豎直方向梯度相差較大,用黑色表示。用黑色表示的像素點(diǎn)則被認(rèn)為是模糊邊界點(diǎn),之后對這些像素點(diǎn)進(jìn)行二次自適應(yīng)中值濾波處理,這些像素點(diǎn)進(jìn)行二次中值濾波時采用的窗口大小與其第一次中值濾波窗口大小相同。
為驗證本文算法的先進(jìn)性和實際可行性,本為了驗證本文算法的先進(jìn)性和實際可行性,本文選擇了Matlab軟件對本文算法進(jìn)行了實際仿真運(yùn)算并進(jìn)行了對比分析。以圖像“l(fā)ena”(512×512)和圖像“rice”(256×256)作為實驗對象,分別對兩張原圖像加入噪聲密度為5%~95%的椒鹽噪聲,再分別使用傳統(tǒng)的中值濾波算法,文獻(xiàn)[7]中針對強(qiáng)密度椒鹽噪聲的濾波算法以及本文算法進(jìn)行濾波處理,以峰值信噪比PSNR(Peak Signal to Noise Ratio)來作為不同算法濾波性能的客觀評價指標(biāo),對不同算法在不同密度椒鹽噪聲下的濾波性能進(jìn)行對比。
PSNR是圖像領(lǐng)域中一種常用的評價指標(biāo),其通過圖像均方差(MSE)進(jìn)行定義[10]。MSE和PSNR數(shù)值的計算公式如下:

其中m和n分別代表圖像寬度和高度,Smax表示圖像中所有像素的最大灰度值,S代表原圖,J代表濾波后的圖像。
圖1 是不同算法在不同密度的椒鹽噪聲下對“l(fā)ena”圖像的濾波性能的對比,圖2是對“rice”圖像的濾波性能的對比。從圖1和圖2中可以看出,傳統(tǒng)的中值濾波算法在椒鹽噪聲密度不大時,濾波效果不錯,還原圖像的峰值信噪比和其他兩種算法結(jié)果差距不大,但隨著椒鹽噪聲密度的增加,以椒鹽噪聲密度為30%為結(jié)點(diǎn),當(dāng)噪聲密度超過這個結(jié)點(diǎn)時,其濾波性能快速下降。文獻(xiàn)[7]提出的算法相對于傳統(tǒng)中值濾波算法的濾波性能有很大提升,但是對于強(qiáng)椒鹽噪聲,尤其是噪聲密度大于85%的的超強(qiáng)密度噪聲,這種算法的濾波性能也會快速下降。本文算法是這幾種算法中實驗結(jié)果最好的一種,雖然其濾波性能也會隨著噪聲密度的增加而下降,但相對于另外兩種算法,噪聲密度的增加對其濾波性能的影響大大降低,表現(xiàn)出了良好的濾波性能。

圖1 不同算法對“l(fā)ena”圖像的濾波性能比較

圖2 不同算法對“rice”圖像的濾波性能比較
特別地,本文對圖像“l(fā)ena”和圖像“rice”分別加入密度為95%的椒鹽噪聲,然后用不同算法對被干擾的圖像進(jìn)行濾波還原,將其作為在高密度椒鹽噪聲環(huán)境下不同算法的濾波性能的特例,進(jìn)行視覺效果對比。對兩張干擾圖像應(yīng)用不同濾波算法后分別得出還原圖像,如圖3和圖4所示,不同算法的濾波圖像對比直觀地表明了本文算法具有出良好的圖像去噪和還原效果,相對于其他兩種算法具有先進(jìn)性,很好地彌補(bǔ)了傳統(tǒng)的中值濾波算法和文獻(xiàn)[7]中濾波算法的缺陷。

圖3 95%噪聲密度下“l(fā)ena”圖像濾波效果對比

圖4 95%噪聲密度下“rice”圖像濾波效果對比
本文針對圖像中的高強(qiáng)度椒鹽噪聲難以濾除的問題,在傳統(tǒng)中值濾波算法的基礎(chǔ)上做出了改進(jìn),提出了一種模糊邊緣自適應(yīng)中值濾波算法。該算法首先進(jìn)行噪聲點(diǎn)檢測,通過逐一檢索每個像素點(diǎn)的灰度值,提取出所有的疑似噪聲點(diǎn),然后對圖像中信號點(diǎn)的灰度值進(jìn)行保留,只對疑似噪聲點(diǎn)進(jìn)行自適應(yīng)中值濾波處理,找到每個像素點(diǎn)的最佳濾波窗口大小并對其進(jìn)行濾波處理,盡可能地還原圖像原始特征,最后對處理后的還原圖像進(jìn)行模糊邊緣檢測,提取出模糊像素點(diǎn),對這些像素點(diǎn)進(jìn)行二次濾波,最終得出高質(zhì)量的還原圖像。
該算法在高密度的椒鹽噪聲環(huán)境下具有良好的濾波還原性能。因為對每個像素點(diǎn)采用不同的濾波窗口大小進(jìn)行中值濾波處理,因此具有自適應(yīng)的特點(diǎn),可對不同的圖像進(jìn)行處理,通過對提取出的所有模糊邊緣像素點(diǎn)進(jìn)行二次濾波,實現(xiàn)了圖像的細(xì)節(jié)還原。該算法結(jié)構(gòu)簡單,運(yùn)行速度快,可以很好地濾除椒鹽噪聲,保留圖像細(xì)節(jié),還原圖像信息。通過與傳統(tǒng)的中值濾波算法和文獻(xiàn)[7]中提出的改進(jìn)濾波算法進(jìn)行實驗結(jié)果對比,證明了本文算法的有效性和先進(jìn)性。