耿春明,方 菲
(北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,北京 100191)
圖像分割在許多自動(dòng)圖像模式識(shí)別和場(chǎng)景分析問(wèn)題中是一個(gè)基本的預(yù)備性步驟。為實(shí)現(xiàn)復(fù)雜背景中運(yùn)動(dòng)目標(biāo)的檢測(cè)與識(shí)別,應(yīng)首先考慮如何利用圖像分割方法分割出有效的檢測(cè)區(qū)域,這一直是人們關(guān)注的難點(diǎn)問(wèn)題。目前常用的分割算法主要有閾值法、區(qū)域生長(zhǎng)法兩大類[1]。這兩類方法各有優(yōu)勢(shì),卻也有局限性。例如閾值法選取的閾值不精確;區(qū)域生長(zhǎng)法由于生長(zhǎng)準(zhǔn)則或目標(biāo)區(qū)域灰度分布不均勻等原因造成欠分割或者過(guò)分割等[2-3]。分析這兩類分割方法的優(yōu)缺點(diǎn),結(jié)合本文實(shí)際采集圖像的特點(diǎn),提出了一種基于區(qū)域生長(zhǎng)和霍夫(Hough)變換相結(jié)合的分割方法,最終準(zhǔn)確地劃分出有效檢測(cè)區(qū)域。
設(shè)計(jì)的算法主要應(yīng)用于由內(nèi)窺鏡采集到的不透明容器內(nèi)部物質(zhì)的圖像。內(nèi)窺鏡放置在容器口處,所以在圖像中呈現(xiàn)的是容器內(nèi)所有物質(zhì)由上而下的俯視平面圖。圖像采集是在外界為全黑的環(huán)境下進(jìn)行,保證采集圖像時(shí)不受到外界光源的影響,采集圖像的光源由內(nèi)窺鏡自帶的LED白光源提供。該條件下采集的圖像具有特點(diǎn)是圖像中含有強(qiáng)光干擾與光圈等。觀察實(shí)驗(yàn)中采集的圖像(如圖1所示),強(qiáng)光干擾區(qū)域(圖1中C區(qū)域)即圖中高亮度的光線區(qū)域,它主要是由內(nèi)窺鏡LED白光源過(guò)于集中引起的;光圈(圖中B區(qū)域)主要是由于光線在容器壁與容器內(nèi)液體表面這兩種不同介質(zhì)上的折射、反射等不一樣造成的,由此可知,光圈外側(cè)是容器壁,光圈內(nèi)側(cè)是容器內(nèi)的液體,即光圈內(nèi)的區(qū)域?yàn)橛行z測(cè)區(qū)域。為最終檢測(cè)出目標(biāo)(如圖中的雜質(zhì)目標(biāo)A),應(yīng)首先分割出有效檢測(cè)區(qū)域。結(jié)合這些圖像的顯著特點(diǎn)以及上述兩類分割方法的優(yōu)缺點(diǎn),提出了基于區(qū)域生長(zhǎng)和霍夫變換相結(jié)合的分割方法。
圖1 實(shí)際內(nèi)窺圖像Fig.1 Actual endoscopic images
此算法的基本思想:首先根據(jù)強(qiáng)光干擾區(qū)域灰度值高于背景區(qū)域灰度值的特點(diǎn),利用基于區(qū)域灰度差的區(qū)域生長(zhǎng)法[4]作為基礎(chǔ)分割算法,可將強(qiáng)光干擾區(qū)域及光圈區(qū)域大致分割出來(lái);由于區(qū)域生長(zhǎng)法可能造成欠分割或過(guò)分割,因此再根據(jù)光圈具有規(guī)則圓形狀的特點(diǎn),采用霍夫變換檢測(cè)[5]作為輔助算法更為準(zhǔn)確地檢測(cè)出光圈的位置,從而可彌補(bǔ)區(qū)域生長(zhǎng)的不足之處,更準(zhǔn)確地劃分出有效檢測(cè)區(qū)域。
為進(jìn)一步提高精確性,針對(duì)算法中2個(gè)基本模塊——區(qū)域生長(zhǎng)和霍夫變換分別做出改進(jìn)。第一點(diǎn)改進(jìn):在選擇合適的生長(zhǎng)點(diǎn)和生長(zhǎng)規(guī)則進(jìn)行區(qū)域生長(zhǎng)之后運(yùn)用形態(tài)學(xué)的膨脹和腐蝕運(yùn)算處理[6]。這主要是為了填充區(qū)域生長(zhǎng)后圖像物體內(nèi)部的細(xì)小孔洞以及連接臨近的物體,可以在不明顯改變物體面積和形狀的情況下起到平滑其邊界的作用[7]。第二點(diǎn)改進(jìn):在霍夫變換檢測(cè)圓之前先做Canny邊緣檢測(cè)[8-9]。通過(guò)邊緣檢測(cè)可提取出感興趣區(qū)域(主要是光圈)的邊緣,依據(jù)此邊緣進(jìn)行Hough變換檢測(cè)圓,可減少虛假圓檢測(cè)及漏檢圓的情況,更精確地判定出圓的位置,從而提高了有效檢測(cè)區(qū)域的劃分準(zhǔn)確性。算法的基本流程圖如圖2所示。
圖2 算法流程圖Fig.2 Flow chart of algorithm
1.2.1 區(qū)域生長(zhǎng)和填充
區(qū)域生長(zhǎng)基本思想[10]是將具有相似性質(zhì)的像素集合起來(lái)構(gòu)成區(qū)域。選擇合適的生長(zhǎng)點(diǎn),根據(jù)生長(zhǎng)準(zhǔn)則將生長(zhǎng)點(diǎn)周圍與其相同或相似的像素合并到生長(zhǎng)點(diǎn)所在區(qū)域。再將這些新像素當(dāng)作新生長(zhǎng)點(diǎn)繼續(xù)進(jìn)行生長(zhǎng),直到所有滿足條件的像素都被包括在內(nèi),則完成生長(zhǎng)。從以上描述可知:預(yù)分割的區(qū)域(強(qiáng)光干擾和光圈區(qū)域)灰度值高于背景區(qū)域,故選擇圖像中灰度值大于最亮區(qū)域灰度均值的像素點(diǎn)作為生長(zhǎng)點(diǎn),并且選擇基于區(qū)域灰度差的生長(zhǎng)準(zhǔn)則,主要程序流程如圖3所示。
圖3 區(qū)域生長(zhǎng)程序流程圖Fig.3 Flow chart of region growing
區(qū)域生長(zhǎng)結(jié)束后,為填充圖像內(nèi)部的細(xì)小孔洞等,算法改進(jìn)在其后運(yùn)用二值形態(tài)學(xué)處理作為區(qū)域填充算法,主要運(yùn)用膨脹和腐蝕運(yùn)算處理:先進(jìn)行膨脹運(yùn)算,后進(jìn)行腐蝕運(yùn)算。圖4是區(qū)域填充的程序?qū)崿F(xiàn)過(guò)程。
圖4 區(qū)域填充程序流程圖Fig.4 Flow chart of area filling
1.2.2 改進(jìn)的Hough變換
Hough變換(circle Hough transform, CHT)及相應(yīng)改進(jìn)算法[11]是常用的檢測(cè)圓算法之一,在本文的主要任務(wù)是精確定位有效檢測(cè)區(qū)域的位置。它的主要計(jì)算方法[12]是圖像中所有點(diǎn)做三維空間參數(shù)轉(zhuǎn)換,通過(guò)求三維累加陣列的峰值,獲得所需的圓參數(shù)。這種變換消耗大量時(shí)間和存儲(chǔ)資源[13],為此算法做出改進(jìn)。首先利用邊緣檢測(cè)提取出感興趣區(qū)域的邊緣,只對(duì)邊緣點(diǎn)做三維變換。Canny算子能較好平衡噪聲抑制和邊緣檢測(cè)[14],是對(duì)定位乘積與信噪比的最優(yōu)化算法[15],故選擇Canny邊緣檢測(cè)提取圖像邊緣。通過(guò)設(shè)計(jì)合理的高通濾波器對(duì)圖像進(jìn)行濾波,可提取出二維信號(hào)的高頻成分即邊緣信息。算法中進(jìn)行高斯濾波,利用一階偏導(dǎo)的有限差分計(jì)算梯度幅值和方向,通過(guò)對(duì)梯度幅值進(jìn)行非極大值抑制來(lái)確定該點(diǎn)是否為邊緣點(diǎn),最后采用雙閾值法檢測(cè)和連接邊緣。其次通過(guò)降低參數(shù)空間的維數(shù)來(lái)減少開銷。實(shí)驗(yàn)中的圖像半徑r大約在180像素~260像素之間變化,因此累加該范圍內(nèi)對(duì)應(yīng)邊緣點(diǎn)的變換點(diǎn)即可。算法軟件實(shí)現(xiàn)流程如下:
第1步,按Canny邊緣檢測(cè)法搜索出邊緣點(diǎn)。
首先根據(jù)高斯核公式(1)生成二維高斯濾波系數(shù)k,用該系數(shù)對(duì)圖像進(jìn)行濾波處理,濾波后的圖像數(shù)據(jù)保存在*lpNewDIBBits。
(1)
式中:(x,y)表示圖像中當(dāng)前像素點(diǎn)的坐標(biāo)位置;σ表示高斯函數(shù)的標(biāo)準(zhǔn)偏差,本文選取0.4。
其次根據(jù)(2)式~(5)式計(jì)算x、y向偏導(dǎo)數(shù)、梯度幅值及梯度方向P[i,j]、Q[i,j]、M[i,j]及θ[i,j]:
P[i,j]= (f[i,j+1]-f[i,j]+f[i+1,j+
1]-f[i+1,j])/2
(2)
Q[i,j]= (f[i,j]-f[i+1,j]+f[i,j+1]-
f[i+1,j+1])/2
(3)
(4)
θ[i,j]=arctan(Q[i,j]/P[i,j])
(5)
其中f[i,j] 表示像素點(diǎn)[i,j]的灰度值。
接著進(jìn)行非極大值抑制。循環(huán)遍歷所有梯度幅值點(diǎn),判斷這些點(diǎn)的灰度值在其8鄰域內(nèi)是否為局部最大。若是則保留該值不變;反之則可排除該點(diǎn)在邊緣上,置其值為0。
最后按雙閾值法連接邊緣。先按高閾值ThrHigh尋找邊緣,以找到的點(diǎn)為中心尋找鄰域內(nèi)滿足低閾值ThrLow的點(diǎn),形成閉合輪廓。按經(jīng)驗(yàn)公式選取高、低閾值,即:
ThrHigh=nHist[0.79×nEdgeNum]
(6)
ThrLow=0.5×ThrHigh
(7)
式中:nEdgeNum表示邊緣點(diǎn)總個(gè)數(shù);nHist[i]表示灰度值從低到高有序數(shù)組。
第二步,只對(duì)邊緣點(diǎn)進(jìn)行Hough變換,并只累加半徑范圍在180像素~260像素內(nèi)的變換點(diǎn)即可。
首先設(shè)置角度、半徑步長(zhǎng)step_angle、step_r和半徑變化范圍r_min~r_max,按(8)式、(9)式計(jì)算半徑、旋轉(zhuǎn)一周角度變換次數(shù)size_r、size_angle;按圖像大小建立變換后參數(shù)空間hough_space[Height*Width][size_r],初始條件下所有元素均置0。
size_r=(r_max-r_min)/step_r
(8)
size_angle=2π/step_angle
(9)
其次循環(huán)遍歷所有像素點(diǎn),判斷當(dāng)前點(diǎn)(i,j)是否是邊緣點(diǎn)。如果是,則按(10)式、(11)式對(duì)(i,j)做Hough變換,其中r在0~size_r、k在0~size_angle間循環(huán)變化,(temp_a,temp_b)是變換后的點(diǎn)。
temp_a=i-(r_min+r×step_r)×
cos(step_angle×(k+1))
(10)
temp_b=j-(r_min+r×step_r)×
sin(step_angle×(k+1))
(11)
判斷(temp_a,temp_b)是否超出圖像的范圍,沒(méi)超出則將(temp_a,temp_b,r)相應(yīng)的累加器hough_space加1,即
hough_space[temps_a×Width+
temp_b][r]+=1
(12)
最后搜索hough_space數(shù)組中超過(guò)閾值的聚焦點(diǎn),其中閾值取hough_space中最大值的0.7倍。在找到的所有聚焦點(diǎn)中求出半徑最小的圓,此圓內(nèi)即為有效檢測(cè)區(qū)域。
該分割算法主要針對(duì)由內(nèi)窺鏡采集到的不透明容器內(nèi)的液體圖像,圖像的大小為480像素×640像素,灰度級(jí)為256。實(shí)驗(yàn)的硬件環(huán)境為,CPU:Intel( R) Core(TM)i3 3.07 GHz;內(nèi)存:1.80 GB;采集圖像設(shè)備:USB接口的內(nèi)窺鏡,分辨率為30萬(wàn)像素。實(shí)驗(yàn)中算法在Windows XP、Microsoft Visual C++6.0平臺(tái)上實(shí)現(xiàn)。
首先,區(qū)域生長(zhǎng)法可大致分割出強(qiáng)光干擾區(qū)域及光圈區(qū)域,在區(qū)域生長(zhǎng)后使用形態(tài)學(xué)處理來(lái)填充圖像生長(zhǎng)引起的細(xì)小孔洞以及連接臨近的物體。為了驗(yàn)證這個(gè)方法對(duì)實(shí)際圖像的分割效果是否有效,對(duì)由內(nèi)窺鏡采集的不透明容器內(nèi)液體的圖像進(jìn)行實(shí)驗(yàn),圖5為一組仿真結(jié)果。
觀察圖5(a)源圖像和圖5(b)區(qū)域生長(zhǎng)圖像可知,按照上文所述方法選擇的生長(zhǎng)點(diǎn)和生長(zhǎng)準(zhǔn)則進(jìn)行區(qū)域生長(zhǎng)后,能夠大致提取出亮度較高的強(qiáng)光干擾區(qū)域和光圈區(qū)域,即區(qū)域生長(zhǎng)可以大致提取出干擾區(qū)域。此外,對(duì)比圖5(b)區(qū)域生長(zhǎng)圖像與圖5(c)區(qū)域生長(zhǎng)后進(jìn)行區(qū)域填充的圖像,經(jīng)過(guò)形態(tài)學(xué)處理的區(qū)域填充后可以將由區(qū)域生長(zhǎng)造成圖像中的一些孔洞填補(bǔ),也可以連接相距很近的一些區(qū)域,即改進(jìn)后具有區(qū)域填充的區(qū)域生長(zhǎng)法能夠使圖像生長(zhǎng)得更加完整。
其次,在利用區(qū)域生長(zhǎng)大致分割出干擾區(qū)域的基礎(chǔ)上,進(jìn)一步采用Hough變換圓檢測(cè)算法精確地分割出有效檢測(cè)區(qū)域。為了驗(yàn)證這個(gè)算法的分割效果優(yōu)于單獨(dú)基于區(qū)域生長(zhǎng)的分割效果,在VC++6.0環(huán)境下實(shí)現(xiàn)了區(qū)域生長(zhǎng)與Hough變換檢測(cè)相結(jié)合的算法,將實(shí)驗(yàn)結(jié)果與上文中只基于區(qū)域生長(zhǎng)法的實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比,仿真結(jié)果如圖6所示。
圖5 仿真結(jié)果Fig.5 Simulation results
圖6 仿真結(jié)果Fig.6 Simulation results
從實(shí)驗(yàn)結(jié)果可以看出,區(qū)域生長(zhǎng)與Hough變換檢測(cè)相結(jié)合的分割算法在分割效果上要優(yōu)于單獨(dú)基于區(qū)域生長(zhǎng)的分割算法。對(duì)比圖6(b)只基于區(qū)域生長(zhǎng)的分割圖像和圖6(c)區(qū)域生長(zhǎng)與Hough變換檢測(cè)結(jié)合的分割圖像可以看出,圖6(b)在圖像中心位置附近有強(qiáng)光干擾未分割出,此外圖像也沒(méi)有準(zhǔn)確地分割出有效檢測(cè)區(qū)域,也就是說(shuō)單獨(dú)基于區(qū)域生長(zhǎng)分割出的圖像不僅會(huì)產(chǎn)生漏檢邊緣,不能完全分割出強(qiáng)光干擾,而且也不能確定哪些區(qū)域是需要檢測(cè)區(qū)域、哪些區(qū)域是不需要檢測(cè)區(qū)域;然而觀察圖6(c),在圖像中心位置附近的強(qiáng)光干擾幾乎被全部分割出,并且確定了有效檢測(cè)區(qū)域(圓內(nèi)區(qū)域,將不關(guān)心的區(qū)域賦為全黑區(qū)域),即區(qū)域生長(zhǎng)法與Hough變換檢測(cè)相結(jié)合可以有效地抑制漏檢邊緣或虛假邊緣的產(chǎn)生,同時(shí)也劃分出有效檢測(cè)區(qū)域,能取得對(duì)感興趣區(qū)域的良好分割效果。
結(jié)合上述的實(shí)例,另外再利用內(nèi)窺鏡采集90組不透明容器內(nèi)的液體圖像進(jìn)行實(shí)驗(yàn)。將此90組均有強(qiáng)光圈干擾這個(gè)特點(diǎn)的內(nèi)窺圖像依照文中提出的算法進(jìn)行處理,處理結(jié)果顯示,有88組內(nèi)窺圖像能夠精確的分割強(qiáng)光干擾,且劃分出有效檢測(cè)區(qū)域;僅有2組圖像分割出的強(qiáng)光干擾及劃分出的有效檢測(cè)區(qū)域不夠準(zhǔn)確。據(jù)此統(tǒng)計(jì),針對(duì)有強(qiáng)光圈干擾的內(nèi)窺圖像,此算法能較精確地分割出強(qiáng)光干擾且劃分出有效檢測(cè)區(qū)域的概率約可達(dá)到97.8%。由此可知:本文算法對(duì)帶有強(qiáng)光圈干擾的內(nèi)窺圖像能取得良好的有效區(qū)域分割效果。
區(qū)域生長(zhǎng)是傳統(tǒng)的圖像分割方法,Hough變換是傳統(tǒng)的檢測(cè)圓算法。區(qū)域分割能夠檢測(cè)特征的相似性與均勻性,而Hough變換能夠檢測(cè)出比較規(guī)則的圓。文中提出的基于這兩種方法的圖像有效檢測(cè)區(qū)域的分割算法,結(jié)合了兩者的特點(diǎn),首先通過(guò)區(qū)域生長(zhǎng)法大致分割出比較規(guī)則的光圈所組成的圓,再通過(guò)Hough變換準(zhǔn)確地劃分出有效檢測(cè)區(qū)域。因此,避免了單獨(dú)使用區(qū)域生長(zhǎng)進(jìn)行圖像分割時(shí),造成的漏檢邊緣或分割出虛假邊緣的錯(cuò)誤;也避免了單獨(dú)使用Hough變換檢測(cè)圓時(shí),造成的誤檢虛假圓或由于光圈不明顯而不能準(zhǔn)確檢測(cè)到圓的錯(cuò)誤。從上述的實(shí)例分析以及采用此算法對(duì)90組內(nèi)窺圖像進(jìn)行實(shí)驗(yàn)得到的實(shí)驗(yàn)結(jié)果和數(shù)據(jù)可知,結(jié)合這兩種算法作為分割方法,對(duì)含有強(qiáng)光圈的內(nèi)窺圖像具有很好的分割效果,分割出的有效檢測(cè)區(qū)域位置更精確。
[1] Guo Suoli, Xin Dong, Liu Yanfei. Survey of modern image segmentation method[J]. Journal of Sichuan Ordnance, 2012,33(7):93-96.
郭鎖利,辛棟,劉延飛.近代圖像分割方法綜述[J].四川兵工學(xué)報(bào),2012,33(7):93-96.
[2] Zhang Ling, Guo Leimin, He Wei,et al. An image segmentation algorithm based on maximal variance between-class and region growing[J]. Information and Electronic Engineering, 2005,3(2):91-93,96.
張玲,郭磊民,何偉,等.一種基于最大類間方差和區(qū)域生長(zhǎng)的圖像分割法[J].信息與電子工程,2005,3(2):91-93,96.
[3] Luo Wencun. A new image segmentation approach by integration of thresholding and region growing[J]. Modern Computer, 2001,115:43-46.
羅文村.基于閾值法與區(qū)域生長(zhǎng)法綜合集成的圖像分割法[J].現(xiàn)代計(jì)算機(jī),2001,115:43-46.
[4] Yu Dianhong. Image detecting and processing technology[M]. Xi’an: Xi’an University of Electronic Science and Technology Press, 2006:155-159.
于殿泓.圖像檢測(cè)與處理技術(shù)[M].西安:西安電子科技大學(xué)出版社,2006:155-159.
[5] Ye Fudong. An graphic detection algorithm based on Hough transform[J]. Journal of Hubei Vocational College of Ecological Engineering, 2011,9(3):45-49.
葉富東.基于霍夫變換的圖形檢測(cè)算法[J].湖北生態(tài)工程職業(yè)技術(shù)學(xué)院學(xué)報(bào),2011,9(3):45-49.
[6] Yu Zhaohui, Pang Yechi, Yu Tao. The engineering application and digital image processing of visual C++[M]. Beijing: China Railway Publishing House, 2012:335-353.
俞朝暉,龐也馳,于濤.Visual C++數(shù)字圖像處理與工程應(yīng)用實(shí)踐[M].北京:中國(guó)鐵道出版社,2012:335-353.
[7] He Dong,Yang Fengbo,Lin Suzhen,et al. Colour transfer for grayscale images based on morphology transformation and FFCM cluster[J]. Journal of Applied Optics, 2012, 33(2):300-304.
賀棟,楊風(fēng)暴,藺素珍,等.基于形態(tài)學(xué)變換和FFCM聚類的灰度圖像顏色遷移算法[J].應(yīng)用光學(xué),2012, 33(2):300-304.
[8] Miao Yu, Wang Yanchun, Guo Naizhu,et al. Region growth algorithm based on edge detection ending condition[J]. Journal of Changchun University of Science and Technology, 2009,32(4):680-682,556.
苗語(yǔ),王艷春,郭乃珠,等.基于邊緣檢測(cè)終止條件的區(qū)域生長(zhǎng)算法[J].長(zhǎng)春理工大學(xué)學(xué)報(bào),2009,32(4):680-682,556.
[9] Trucco E,Verri A. Introductory techniques for 3-D computer vision [M]. Englewood Cliffs:Pretice Hall, 1998:71-79.
[10] Tao Tangfei, Han Chongzhao, Dai Xuefeng, et al. An infrared image segmentation method based on edge detection and region growing[J]. Opto-Electronic Engineering, 2004,31(10):50-52,68.
陶唐飛,韓崇昭,代雪峰,等.綜合邊緣檢測(cè)和區(qū)域生長(zhǎng)的紅外圖像分割方法[J].光電工程,2004,31(10):50-52,68.
[11] Illingworth J,Kittler J. A survey of the Hough transform[J]. Computer Vision Graphics and Image Process,1988,44(1): 87-116.
[12] Wang Xuewei,Wang Shili,Li Ke. Characteristic of ship target IR image[J]. Journal of Applied Optics, 2012, 33(5):837-840.
王學(xué)偉,王世立,李珂.船艦?zāi)繕?biāo)紅外圖像特性研究[J].應(yīng)用光學(xué),2012,33(5):837-840.
[13] Zhao Xiaochuan, He Hao, Miu Yuancheng. Digital image processing of MATLAB[M]. Beijing: China Machine Press, 2013:97-101.
趙小川,何灝,繆遠(yuǎn)誠(chéng).MATLAB數(shù)字圖像處理實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2013:97-101.
[14] Jia Yonghong. Digital image processing[M]. Wuhan: Wuhan University Press, 2003:133-145.
賈永紅.數(shù)字圖像處理[M].武漢:武漢大學(xué)出版社,2003:133-145.
[15] Chen Yanyan, Wang Yuanqing. Quantitative comparison of common edge detection algorithms[J]. Computer Engineering, 2008, 34(17): 202-204.
陳彥燕,王元慶.常用邊緣檢測(cè)算法的定量比較[J].計(jì)算機(jī)工程,2008,34(17): 202-204.