郭忠峰,楊子豪,王赫瑩
(沈陽(yáng)工業(yè)大學(xué) 遼寧省智能制造與工業(yè)機(jī)器人重點(diǎn)實(shí)驗(yàn)室,遼寧 沈陽(yáng) 110870)
從圖像復(fù)原到圖形分割、從邊緣檢測(cè)到目標(biāo)識(shí)別,再?gòu)囊曈X(jué)測(cè)量到智能機(jī)器人領(lǐng)域,基于機(jī)器視覺(jué)的圖像處理技術(shù)以其在應(yīng)用中所具有的高效率、高精度、非接觸性的優(yōu)點(diǎn)而被廣泛應(yīng)用。由于在獲取圖像的過(guò)程中會(huì)因拍攝環(huán)境的干擾或拍攝設(shè)備的限制而產(chǎn)生噪聲,同時(shí)目標(biāo)對(duì)象可能受到其他物體或顏色的干擾。因此,有效去除噪聲、區(qū)分目標(biāo)與干擾成為了圖像處理中的重點(diǎn)。本文將改進(jìn)后的最小均方差濾波器與基于目標(biāo)灰度的圖像分割Canny算子[1-3]相結(jié)合并通過(guò)MATLAB編程來(lái)實(shí)現(xiàn)邊緣檢測(cè)。
為了最大程度地展示圖像中被拍攝物體在顏色、紋理、形狀等特征上的信息,去除噪聲成為了圖像處理中的重要一環(huán)。均值濾波和中值濾波[4]是圖像處理中常用的去噪方法,均值濾波是取被處理像素所在鄰域的各像素灰度值之平均值作為被處理像素的輸出灰度值;中值濾波是對(duì)以被處理像素為中心的窗口內(nèi)所有像素的灰度值排序后取中值為被處理像素的輸出灰度值。均值濾波表達(dá)式為:
(1)
其中:g(i,j)為被處理像素的輸出灰度值;(x,y)為被處理像素所在鄰域的各像素位置坐標(biāo);f(x,y)為(x,y)位置的像素灰度值;S為被處理像素所處鄰域;N為鄰域中像素?cái)?shù)量。
中值濾波表達(dá)式為:

(2)
其中:(m,n)為被處理像素所在窗口的各像素位置坐標(biāo);W為被處理像素所處窗口;[f(m,n)]為窗口中位置的像素灰度值組成的灰度序列;media為對(duì)灰度序列取中值。
由于簡(jiǎn)單的均值濾波和中值濾波使用的鄰域或窗口單一,且被處理像素對(duì)應(yīng)于其所在鄰域或窗口中的位置固定,因此在去除噪聲的過(guò)程中缺乏自適應(yīng)性,而最小均方差濾波器[5]則改善了這一缺點(diǎn)。所以,為在濾波過(guò)程中實(shí)現(xiàn)對(duì)噪聲去除、邊界保持以及自適應(yīng)性的兼顧,本文設(shè)計(jì)了最小均方差濾波器。
選取5×5鄰域(如圖1所示)的中心位置像素為被處理像素,該像素位置坐標(biāo)為(i,j)。以5×5鄰域?yàn)榛A(chǔ)建立如圖2所示的5個(gè)3×3濾波模板,各模板中的被處理像素均對(duì)應(yīng)5×5鄰域中的(i,j)位置。濾波過(guò)程計(jì)算步驟如下:
(1) 將5個(gè)3×3濾波模板中各位置所對(duì)應(yīng)的像素灰度值組成灰度值向量F。
(2) 計(jì)算灰度值向量F的方差與中值,比較5個(gè)方差的大小。
(3) 將方差最小的灰度值向量F的中值作為被處理像素(i,j)的輸出灰度值。
運(yùn)用MATLAB編程實(shí)現(xiàn)上述濾波方法,對(duì)包含噪聲的灰度圖進(jìn)行去噪,去噪前、后的灰度圖分別如圖3、圖4所示。
很多情況下,通過(guò)拍攝設(shè)備獲取的圖片不一定只包含目標(biāo)物體和單一背景,還有可能包含其他干擾物體或是干擾背景,這時(shí)就需要從圖片中有效提取出目標(biāo)區(qū)域,尤其在涉及目標(biāo)識(shí)別、邊緣檢測(cè)等領(lǐng)域提取目標(biāo)就顯得更加重要。
閾值分割法作為圖像分割中的基礎(chǔ)方法,其難點(diǎn)在于閾值的選取,日本學(xué)者大津提出了具有統(tǒng)計(jì)意義上最佳分割的最大類間方差法[6-7]。為了解決閾值分割法在復(fù)雜背景彩色圖像分割中無(wú)法達(dá)到分割要求的問(wèn)題,李震等[8]提出了一種基于顏色特征和聚類的馬氏距離分割法,但需要人工選取分類標(biāo)準(zhǔn)點(diǎn);成喜春等[9]提出了一種基于HSI模型的彩色圖像背景減法,但向HSI空間轉(zhuǎn)化的過(guò)程也增加了計(jì)算量。涉及機(jī)器學(xué)習(xí)的語(yǔ)義分割[10]雖然在多目標(biāo)分割識(shí)別中具有很大優(yōu)勢(shì),但是需要大量的標(biāo)注樣本進(jìn)行訓(xùn)練。

圖1 5×5鄰域

圖2 5個(gè)3×3濾波模板
在僅考慮單一顏色目標(biāo)的圖像分割情況下,本文提出了基于目標(biāo)灰度的圖像分割法,并運(yùn)用MATLAB編程實(shí)現(xiàn)了下述步驟:
(1) 在完成去噪過(guò)程的灰度圖片上用矩形框截取部分目標(biāo)圖像,如圖5所示。
(2) 將截取的部分目標(biāo)圖像之灰度矩陣轉(zhuǎn)化為灰度行向量后再將該向量中各數(shù)值歸一化到0至1的范圍內(nèi)。
(3) 對(duì)歸一化后的灰度行向量中各元素按照升序排列后繪制灰度歸一化曲線圖,如圖6所示。
(4) 對(duì)灰度歸一化曲線進(jìn)行多項(xiàng)式擬合后繪制擬合曲線,如圖7所示。
(5) 提取擬合曲線上近直線位置對(duì)應(yīng)的各灰度值組成新的灰度行向量。
(6) 計(jì)算新的灰度行向量的中值,并以中值的0.8倍和1.2倍作為下閾值和上閾值來(lái)實(shí)現(xiàn)對(duì)濾波后灰度圖的分割,即灰度值位于下閾值和上閾值之間的為目標(biāo)像素。分割結(jié)果如圖8所示。
在圖像處理獲取目標(biāo)輪廓的過(guò)程中常會(huì)受到非目標(biāo)輪廓的干擾(見(jiàn)圖9),由于圖中的目標(biāo)與非目標(biāo)是連接在一起的,這也就給目標(biāo)輪廓的分離帶來(lái)了難題。Canny算子具有的圖像平滑、雙閾值處理的功能,使得其在邊緣檢測(cè)中不僅具有較高的定位精度,還能夠?qū)μ摷龠吘夁M(jìn)行抑制,但利用Canny算子的邊緣檢測(cè)結(jié)果存在一些缺陷,以下是兩種結(jié)合Canny算子的邊緣檢測(cè)法的檢測(cè)過(guò)程及結(jié)果中存在的缺陷。

圖3 去噪前灰度圖 圖4 去噪后灰度圖 圖5 目標(biāo)截取
方法一:先對(duì)如圖9所示的原圖灰度化后再進(jìn)行均值濾波,然后經(jīng)單閾值分割獲得二值化圖像,最后運(yùn)用Canny算子進(jìn)行邊緣檢測(cè),邊緣檢測(cè)結(jié)果如圖10所示。
方法二:先對(duì)如圖9所示的原圖灰度化后再進(jìn)行中值濾波,然后經(jīng)單閾值分割獲得二值化圖像,最后運(yùn)用Canny算子進(jìn)行邊緣檢測(cè),邊緣檢測(cè)結(jié)果如圖11所示。
圖10、圖11所示結(jié)果表明:這兩種方法雖然能夠在一定程度上分離目標(biāo)與非目標(biāo),卻不一定能夠保證目標(biāo)的完整性,會(huì)使目標(biāo)產(chǎn)生缺損,且單一的均值濾波、中值濾波也致使目標(biāo)中存在許多干擾部分。

圖6 灰度歸一化曲線
為了解決上述難題,本文提出了基于最小均方差濾波和目標(biāo)灰度的邊緣檢測(cè)法,該方法步驟如下:
(1) 運(yùn)用改進(jìn)最小均方差濾波器對(duì)灰度圖像進(jìn)行去噪處理。
(2) 對(duì)去噪后的圖像運(yùn)用基于目標(biāo)灰度的圖像分割法進(jìn)行分割。
(3) 對(duì)分割后的圖像運(yùn)用Canny算子進(jìn)行邊緣檢測(cè)。

圖7 擬合曲線
通過(guò)MATLAB編程實(shí)現(xiàn)上述算法并應(yīng)用于圖9灰度化后所得圖像之邊緣檢測(cè),其結(jié)果如圖12所示,目標(biāo)邊緣與非目標(biāo)邊緣有效分離,干擾目標(biāo)邊緣的部分有效減少。對(duì)于圖12中存在的非目標(biāo)邊緣可以通過(guò)結(jié)合連通區(qū)域面積計(jì)算和適當(dāng)形態(tài)學(xué)處理的方法來(lái)去除,最終得到的目標(biāo)輪廓如圖13所示。
本文的算法能夠有效去除噪聲并減少目標(biāo)邊緣中的干擾部分;能夠?qū)崿F(xiàn)在目標(biāo)灰度值差異不大的圖像中對(duì)目標(biāo)和非目標(biāo)的分割;能夠得到完整性良好的目標(biāo)輪廓。

圖8 分割結(jié)果 圖9 原圖 圖10 方法一邊緣檢測(cè)結(jié)果

圖11 方法二邊緣檢測(cè)結(jié)果 圖12 本文方法的邊緣檢測(cè)結(jié)果 圖13 得到的目標(biāo)輪廓