??? 摘 要: 提出一種針對彩色圖像" title="彩色圖像">彩色圖像脈沖噪聲" title="脈沖噪聲">脈沖噪聲進行檢測,并根據(jù)檢測結(jié)果利用改進的自適應矢量中值濾波" title="中值濾波">中值濾波法濾除彩色圖像脈沖噪聲的方法。試驗結(jié)果表明,該方法能夠明顯地減少脈沖噪聲檢測" title="噪聲檢測">噪聲檢測過程中的噪聲漏判數(shù)量,有效地去除彩色圖像中的脈沖噪聲,濾波后不會產(chǎn)生新的顏色,并能較好地保持圖像的邊緣與細節(jié)信息。
??? 關(guān)鍵詞: 脈沖噪聲;噪聲檢測;像素值排序;彩色圖像濾波;自適應中值濾波
?
??? 彩色圖像在其采集、傳輸?shù)冗^程中,經(jīng)常會引入脈沖噪聲,這種噪聲會對圖像質(zhì)量產(chǎn)生較大的影響。因此,有效地濾除脈沖噪聲對后續(xù)的圖像分析與應用尤為重要。對于彩色圖像的濾波,傳統(tǒng)的標量方法是對圖像的三個顏色通道分量分別濾波,然后將濾波后的三個分量重新合成新的圖像。這種方法沒有充分考慮彩色圖像三個顏色分量之間的有機聯(lián)系,合成后的新圖像可能產(chǎn)生原圖像沒有的顏色。通常,矢量濾波方法" title="濾波方法">濾波方法比標量方法更適合于彩色圖像濾波[1]。矢量方法是將彩色圖像的每個像素作為一個三維矢量進行處理,通過各通道顏色分量之間的聯(lián)系來處理彩色像素,不會產(chǎn)生原圖像所沒有的顏色。在矢量濾波方法中,基于排序統(tǒng)計的矢量中值濾波[2]是一種常用的方法。然而,這種方法隨著滑動窗口的增大運算量也迅速增加,為此人們又提出了一些改進的矢量中值濾波方法[3-4]。這些方法大大降低了運算復雜度,對于彩色脈沖噪聲均有一定的濾除能力,但在處理噪聲干擾圖像時,沒有區(qū)分當前像素及其鄰域像素是否受到噪聲污染。無條件地對每個像素進行濾波處理必然會損失圖像的某些原始信息,影響最終的濾波效果。因此,對彩色圖像中的脈沖噪聲像素點進行檢測,并根據(jù)檢測結(jié)果僅對脈沖噪聲像素進行濾波,是進一步提高彩色圖像細節(jié)保持能力的關(guān)鍵。據(jù)此,人們又提出了基于脈沖噪聲檢測的圖像濾波方法[5-8],使圖像濾波的細節(jié)保持能力得到更進一步的提高。參考文獻[9]中通過分析和比較,指出這些方法存在較多的噪聲誤判和漏判現(xiàn)象,提出了一種應用多通道脈沖噪聲檢測的彩色圖像自適應中值濾波方法,并通過試驗數(shù)據(jù)表明該方法優(yōu)于參考文獻[5-8]的濾波方法。這種方法在噪聲檢測過程中采用的是將彩色圖像按R、G、B三個顏色通道分為三個子圖像。對于每個子圖像,根據(jù)子圖像中像素的灰度值與其鄰域內(nèi)像素的灰度均值的關(guān)系對該子圖像進行噪聲判定。通過三個子圖像的噪聲檢測結(jié)果得到整個彩色圖像噪聲檢測結(jié)果。這種噪聲檢測的方法雖然減少了噪聲點漏判及誤判的數(shù)量,然而,該法在噪聲檢測過程中,鄰域均值的大小決定了噪聲判定域值的選取,這導致噪聲的檢測能力受鄰域均值的影響較大,尤其是在圖像中噪聲干擾較大時表現(xiàn)得尤為明顯,存在較多的噪聲漏判現(xiàn)象。
??? 本文針對上述方法的缺陷,提出了一種基于排序差值脈沖噪聲檢測的彩色圖像濾波方法。該方法通過對濾波窗口內(nèi)像素的各顏色通道的分量值進行排序,根據(jù)排序后相鄰像素的相應分量的差值和中心像素的位置情況進行噪聲點檢測。由于噪聲的判定與鄰域均值無關(guān),故該法的噪聲檢測能力不受鄰域均值的影響。最后,采用改進的自適應矢量中值濾波方法,僅對受噪聲干擾的像素進行濾波,對未受噪聲干擾的像素保持原值。在進行脈沖噪聲濾除的同時,保持彩色圖像的原始信息不遭破壞。試驗結(jié)果表明,該方法使圖像獲得了很好的濾波效果。
1 彩色圖像脈沖噪聲檢測
??? 在RGB顏色空間中,彩色圖像顏色值是由R、G、B三通道分量值組成的。對于彩色圖像中的任意一像素,噪聲可能在一個或多個顏色通道中引入,即使是在一個通道中產(chǎn)生的,也會對該像素的顏色產(chǎn)生很大影響。故在彩色圖像中,若某像素的任意一顏色通道被噪聲污染,則該像素被認為是噪聲像素。由于彩色圖像的三個通道都有可能受到脈沖噪聲的干擾,因此可以分別對三個顏色通道進行脈沖噪聲檢測,并根據(jù)各個顏色通道脈沖噪聲檢測的結(jié)果得到整個彩色圖像的脈沖噪聲檢測結(jié)果。
1.1 噪聲特征分析
??? 設RGB顏色空間中受噪聲污染的彩色圖像中各個像素表示為:
???
式中,(i,j)代表像素的位置, L和M分別為圖像的行數(shù)和列數(shù)。把以O′(i,j)為中心、邊長為2k+1(k為非負的整數(shù))個像素大小的正方形窗口定義為像素O′(i,j)的濾波窗口?棕(O′(i,j)),并假設K的初始值為k0。
??? 在彩色圖像中,任意顏色通道C∈{R,G,B}的脈沖噪聲圖像為一灰度圖像。在一個受脈沖噪聲污染的灰度圖像中,對于任意像素O′C(i,j),將它的濾波窗口內(nèi)像素按像素值大小進行排序,每兩個相鄰像素的像素值會存在一個差值,如果某兩個相鄰像素的差值很大,并且發(fā)生在靠近排序后的最大值和最小值處,則說明窗口內(nèi)有少數(shù)像素明顯不同于其他像素,這些像素點在正常的圖像中是很少存在的,可作為候選噪聲點[10]。如果窗口中心像素位于這些候選噪聲點范圍內(nèi),即O′C(i,j)為少數(shù)突變點之一,則可判定該像素為噪聲點。
1.2 噪聲判定算法描述
??? 首先建立與各顏色通道圖像的維數(shù)大小相同的布爾矩陣和一個與彩色圖像的維數(shù)大小相同的布爾矩陣,分別用來標識各通道噪聲點的位置和整個彩色圖像噪聲點的位置,表示為NC和N,C∈{R,G,B}。矩陣NC中每個元素都與待處理的相應單通道噪聲圖像中每個像素相對應,用NC(i,j)表示為:
???
??? 矩陣N中每個元素都與待處理的彩色噪聲圖像中每個像素相對應,用N(i,j)表示為:
???
式中,(i,j)代表像素點的位置,L和M分別為圖像的行數(shù)和列數(shù)。矩陣中元素為0表示該元素所對應的圖像像素為脈沖噪聲,為1表示原圖像像素。把NC和N初始化為全1 矩陣,在進行脈沖噪聲檢測的過程中,根據(jù)噪聲檢測的結(jié)果將矩陣NC和N中的元素賦值為0或保持原值 1。下面按照從左到右、從上到下的順序?qū)D像中的每個像素進行噪聲檢測。
??? 步驟1:對于任意像素O′(i,j),順序地對它的R、G、B三通道按照步驟2~4進行單通道噪聲檢測,即順序地對O′R(i,j)、O′G(i,j)、O′B(i,j)進行噪聲檢測。只要檢測出有一個通道被噪聲污染,則認為O′(i,j)是噪聲像素。
??? 步驟2:對于O′C(i,j),C∈{R,G,B}判斷與它對應的NC(i,j)是否為1,如果為1,則轉(zhuǎn)到步驟3;否則該通道噪聲檢測結(jié)束。
??? 步驟 3:對于O′C(i,j)的濾波窗口ω(O′(i,j))內(nèi)的任意一點O′C(i+p,j+q)(其中-k≤p≤k,-k≤q≤k),如果與它對應的NC(i+p,j+q)等于1,則將它保存到O′C(i,j)的判斷向量WC(O′C(i,j))中,否則不予考慮。假設濾波窗口內(nèi)有H個適合條件的元素, 即得到長度為H的判斷向量WC(O′C(i,j)):
???
??? 將WC(O′C(i,j))按照從小到大的順序排序,得到新的向量W′C(O′C(i,j)):
???
??? 然后從左至右求W′C(O′C(i,j))中兩兩相鄰元素的差值的絕對值,得到差值向量GC(O′C(i,j)):
???
??? 接下來求出GC(O′C(i,j))中前H/2個和后H/2個向量的最大值max1、max2。假設分別為:
???
??? 步驟4:對于給定的域值T0,如果上述各值同時滿足以下三個條件:
??? ?
??? 則可以判定像素點O′C(i,j)為噪聲點, 并將NC(i,j)和N(i,j)賦值為0,否則保持NC(i,j)和N(i,j)的原值不變。
??? 步驟5:判斷O′(i,j)是否為圖像的最后一個像素點,如果不是,則將彩色圖像窗口的中心移到下一個像素點,并且轉(zhuǎn)到步驟1繼續(xù)操作;如果已經(jīng)是圖像的最后一個像素點,則判斷k是否為0,如果是,則噪聲檢測結(jié)束,否則將k減1,并且將T0減5,將窗口中心移到圖像的起始點,然后轉(zhuǎn)到步驟1繼續(xù)執(zhí)行操作。
1.3 參數(shù)選擇
??? 本文采用峰值信號噪聲比PSNR作為濾波性能的客觀評價標準,定義如下:
???
式中,O(i,j)為原始彩色圖像像素,為經(jīng)濾波處理后的彩色圖像像素。PSNR值越大,濾波效果越好。大量實驗表明,T0=25時PSNR最高。本文經(jīng)驗性地給出當噪聲小于10%時濾波窗口的初始大小k0為2,當噪聲大于或等于10%時,k0為3。
2 脈沖噪聲的自適應濾除
??? 本文采用改進的自適應矢量中值濾波法[9]對噪聲圖像進行濾波,其基本思想是只對噪聲像素進行濾波,對未受噪聲干擾的像素則保持原值,并且根據(jù)噪聲污染程度的不同,自適應地選取濾波窗口的大小。具體算法如下:
??? (1)遍歷彩色圖像各像素所對應的噪聲檢測矩陣N的元素值,如果為0,則對所對應的像素點O′(i,j)進行濾波,為1,則保持原值。對于檢測出來的噪聲點O′(i,j),如果其3×3(k=1)濾波窗口內(nèi)的非噪聲點數(shù)為0,則將k加1,直至窗口內(nèi)存在非噪聲點(從實驗結(jié)果看,5×5的濾波窗口就已經(jīng)足夠)。根據(jù)圖像中各個區(qū)域的噪聲污染程度的不同,自適應地調(diào)整濾波窗口的大小,有助于噪聲點的濾除,以達到更好的濾波效果。
??? (2)對濾波窗口ω中的矢量集合計算其平均值顏色矢量,已經(jīng)被判定為噪聲像素的顏色值不參與計算,以增加像素顏色的復原效果。
???
??? (3)對窗口ω中的所有非噪聲像素顏色矢量,計算其到平均值矢量V?棕的距離,取其中距離最?。╝rgmin)的顏色矢量作為濾波器的輸出矢量Vout,噪聲像素O′(i,j)顏色矢量被顏色矢量Vout所替換。即:
???
式中,i=1,2,…T,則Vout=Ve,Ve∈ω,T表示濾波窗口中的非噪聲像素的個數(shù)。
3 實驗結(jié)果
??? 為了驗證本文方法的有效性,對本文方法和參考文獻[9]方法進行了實驗比較,實驗用原始彩色圖像為160×154、24bit的RGB空間的、如圖1所示的女孩圖像。
?
??? 圖2(b)、圖2(c)分別給出對圖2(a)加入20%脈沖噪聲的女孩圖像去噪處理后的視覺效果比較。通過對比觀察可以看出,采用本文方法處理后,圖像中的噪聲像素被明顯地濾除,圖像清晰,視覺效果較好。
?
??? 表1給出對于受不同強度脈沖噪聲污染的女孩圖像,即本文方法的噪聲判斷效率與參考文獻[9]方法的比較結(jié)果。漏判點是指將噪聲像素點誤判為非噪聲像素點,而錯判點是指將非噪聲像素點最終誤判為噪聲像素點。通過比較可以發(fā)現(xiàn),本文方法具有較少的漏判點數(shù),噪聲判斷整體效率較高。雖然參考文獻[9]方法的錯判點數(shù)較少, 但是它的漏判點數(shù)遠多于本文方法,致使誤判總數(shù)也遠多于本文方法。因為漏判與錯判點多發(fā)生在圖像的邊緣處, 所以這將影響參考文獻[9]方法在進行圖像恢復時細節(jié)的保持能力。
?
??? 表2是本文方法與參考文獻[9]方法對女孩圖像濾波后的PSNR值比較??梢钥闯? 本文提出的方法獲得了較高的峰值信號噪聲比。
?
??? 基于噪聲檢測的濾波方法可以在濾除噪聲的同時有效地保護圖像的細節(jié)信息。本文提出了一種簡單、易于實現(xiàn)的基于脈沖噪聲檢測的彩色圖像濾波方法。該方法由于有較好的噪聲檢測能力,并結(jié)合改進的自適應矢量中值濾波法對噪聲像素進行濾波,使該方法能在有效地濾除圖像中脈沖噪聲的同時,較好地保持了圖像的邊緣細節(jié)信息,濾波過程中不會產(chǎn)生新的顏色。
參考文獻
[1] MACHUCA R,PHILLIPS K.Applications of vector fields to?image processing.IEEE Trans PAMI,1983,5:316-329.
[2] ASTOLA J,HAAVISTO P,NEUVO Y.Vector median filters[J].Proceedings of the IEEE,1990,78(4):678-689.
[3] KARAKOS D G,TRANIAS P E.Combining vector median?and vector directional filters:the directional-distance filters[A]. In:Proc of IEEE Int.Conf on Image Processing 95[C],1995:171-174.
[4] TRAHANIAS P E,PITAS I,VENETSANOPOULOS A N.Directional processing of color image:theory and experimental
?results[J].IEEE Trans. on Image Processing,1996,5(6):868-880.
[5] 蔣剛毅,郁梅,郁伯康.自適應彩色圖像濾波新方法[J].科學通報,1999,44(18):1937-1942.
[6] 郁梅,郁伯康,蔣剛毅,等.基于噪聲檢測的彩色圖像脈沖噪聲濾波[J].計算機工程與應用,2000,(3):55-57,74.
[7] 郁伯康,郁梅.彩色圖像脈沖噪聲的自適應矢量濾波[J].電子科技大學學報,2000,29(2):131-135.
[8] 王文惠,樓生強,萬建偉,等.一種彩色圖像的非線性自適應濾波算法[J].計算機工程與科學,2001,23(4):18-20.
[9] 韓曉微,晏磊,原忠虎,等.應用多通道脈沖噪聲檢測的彩色圖像自適應中值濾波方法[J].程圖學學報,2006,6
???? (6):63-68.
[10] 張大志,張衛(wèi)寧,史英,等.基于排序跳變點的脈沖噪聲檢測與濾除算法[J].計算機工程與應用,2006,(35):58-60.