苗龍?jiān)? 于正林
摘 要:針對(duì)圖像中外形復(fù)雜的孔洞填充問(wèn)題,提出一種基于Snake模型與輪廓跟蹤的區(qū)域填充算法對(duì)復(fù)雜孔洞進(jìn)行填充。首先,對(duì)二值圖像進(jìn)行檢測(cè)求出內(nèi)部邊界的像素點(diǎn),并對(duì)其坐標(biāo)進(jìn)行保存。其次,通過(guò)輪廓跟蹤法求取每個(gè)輪廓邊界的所包含的像素位置。再次,通過(guò)將這些邊界作為Snake模型的初始曲線(xiàn),在其內(nèi)力和外力的指導(dǎo)下,填充內(nèi)部孔洞。最后,利用Snake模型與輪廓跟蹤刪除邊界外存在的多余部分。通過(guò)MATLAB實(shí)驗(yàn)本文提出的算法,證明可以填充外形復(fù)雜的多孔區(qū)域,提高了填充精度。
關(guān)鍵詞:區(qū)域填充 Snake模型 輪廓跟蹤
中圖分類(lèi)號(hào):TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2018)04(b)-0002-02
區(qū)域填充作為計(jì)算機(jī)圖形學(xué)中的一項(xiàng)重研究?jī)?nèi)容[1],被廣泛運(yùn)用于數(shù)字圖像處理中[2-4]。隨著科技的發(fā)展,數(shù)字圖像處理在各個(gè)領(lǐng)域占有越來(lái)越重要的地位。在數(shù)字圖像處理過(guò)程中,經(jīng)常會(huì)出現(xiàn)由于圖像采集過(guò)程中存在的光線(xiàn)干擾、背景選用等問(wèn)題,導(dǎo)致所要提取的目標(biāo)圖形在經(jīng)過(guò)二值化等運(yùn)算后存在缺失。為保證圖像處理的最終效果,減少圖像后續(xù)處理的難度,提高圖像的處理效率,就必須對(duì)丟失區(qū)域進(jìn)行填充。
Snake模型最早由Kass等[5]在1987年提出的,其最初目的是通過(guò)曲線(xiàn)能量最小化使曲線(xiàn)逐漸向目標(biāo)邊界演化完成對(duì)邊界的分割。Snake是一條閉合的參數(shù)曲線(xiàn),在Snake模型內(nèi)力和外力的共同作用下能使輪廓曲線(xiàn)在運(yùn)動(dòng)的同時(shí)保持其連續(xù)性和平滑性,因此可用于圖像填充。本文將Snake模型運(yùn)用到區(qū)域填充中,提出基于Snake模型與輪廓跟蹤的區(qū)域填充算法。通過(guò)輪廓跟蹤獲取Snake模型的初始曲線(xiàn),并增加曲線(xiàn)法線(xiàn)方向的力作為外驅(qū)動(dòng)力,使曲線(xiàn)按照固定的步伐移動(dòng),對(duì)掃過(guò)的部分進(jìn)行填充,從而完成對(duì)區(qū)域填充。
1 邊界輪廓的獲取方法
區(qū)域填充的目的是填充圖像中閉合區(qū)域內(nèi)的部分,要想做到精準(zhǔn)填充就必須掌握其邊界輪廓。鑒于輪廓跟蹤法可以準(zhǔn)確獲取圖像的邊界輪廓,同時(shí)按照一定的順序記錄邊界輪廓各點(diǎn)的坐標(biāo)。本文采用輪廓跟蹤法提取邊界輪廓,為后續(xù)的區(qū)域填充提供演化曲線(xiàn)。輪廓跟蹤的步驟有以下幾個(gè)方面。
(1)對(duì)圖像進(jìn)行二值化處理,并記錄圖像中像素點(diǎn)值為255的點(diǎn)的坐標(biāo)。
(2)采用4鄰域(如圖1(a))以C點(diǎn)(記錄點(diǎn))為中心點(diǎn),按照逆時(shí)針從0~3的順序進(jìn)行判斷,只要其中任意一點(diǎn)像素點(diǎn)的值為0,則判定C點(diǎn)為邊界點(diǎn)。
(3)例遍所有記錄點(diǎn),記錄所求的邊界點(diǎn)的坐標(biāo),并對(duì)邊界進(jìn)行顏色標(biāo)記。
(4)最后采用8鄰域(如圖1(b))輪廓跟蹤法對(duì)邊界點(diǎn)跟蹤,從0開(kāi)始按照逆時(shí)針進(jìn)行跟蹤,當(dāng)遇到像素點(diǎn)的值為255時(shí),提取其坐標(biāo)并以此點(diǎn)為中心點(diǎn)繼續(xù)尋找下一邊界點(diǎn),直到首尾(S點(diǎn))相接,邊界提取如圖1(c)所示。
2 基于Snake模型的區(qū)域填充
2.1 Snake模型簡(jiǎn)介
Snake模型對(duì)初始曲線(xiàn)的位置敏感,容易陷入局部極值,容易造成無(wú)法收斂。經(jīng)過(guò)幾十年的發(fā)展,一些改進(jìn)的Snake模型應(yīng)運(yùn)而生。其中Cohen等[6]于1993年在Snake模型的基礎(chǔ)上提出了Balloon snake模型,其原理是在Snake模型的基礎(chǔ)上增加一個(gè)外力項(xiàng)(法線(xiàn)方向),使曲線(xiàn)可以膨脹或收縮,更為適合處理復(fù)雜的輪廓。
Snake是一條由有限點(diǎn)組成的閉合的參數(shù)曲線(xiàn)c(s)=[x(s),y(s)],0≤s≤l,l表示是曲線(xiàn)的總長(zhǎng)度,x(s)和y(s)表示組成閉合曲線(xiàn)各點(diǎn)的坐標(biāo)。Snake在圖像域中,向著使能量泛函(式1)最小化的方向運(yùn)動(dòng)。
(5)計(jì)算兩點(diǎn)之間經(jīng)過(guò)的像素點(diǎn),并記錄下其坐標(biāo)。
(6)對(duì)記錄下的坐標(biāo)點(diǎn)進(jìn)行填充。
(7)利用輪廓跟蹤刪除與邊界相連的多余點(diǎn),保證多余填充的部分完全孤立(執(zhí)行一次)。
(7) 繼續(xù)檢測(cè)是否含有未填充的區(qū)域如果有轉(zhuǎn)到步驟1。
(8)利用以上步驟對(duì)填充多余的部分進(jìn)行刪除,得到最后的填充結(jié)果。
3 實(shí)驗(yàn)結(jié)果對(duì)比
MATLAB作為當(dāng)今國(guó)際上最著名的數(shù)學(xué)工具,由于MATLAB具有編程簡(jiǎn)單、良好的交互環(huán)境和自帶大量圖像處理庫(kù)函數(shù)等特點(diǎn),可以為使用者節(jié)省大量的開(kāi)發(fā)時(shí)間。為實(shí)現(xiàn)本文提出的算法并與其他算法進(jìn)行比較,本文選擇采用MATLAB R2010b作為實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)所本文提出的算法,如圖2所示。
4 結(jié)語(yǔ)
根據(jù)Snake模型在運(yùn)動(dòng)過(guò)程中能夠保持輪廓曲線(xiàn)的平滑性、連續(xù)性等特點(diǎn),本文在Snake模型和Balloon Snake模型的基礎(chǔ)上提出了基于Snake模型與輪廓跟蹤的區(qū)域填充算法。經(jīng)試驗(yàn)證明,本文提出的算法對(duì)復(fù)雜的圖形能做到精準(zhǔn)填充。
參考文獻(xiàn)
[1] 秦曉薇.區(qū)域填充算法的研究[J].赤峰學(xué)院學(xué)報(bào):自然科學(xué)版,2011,27(6):47-49.
[2] 張志龍,李吉成,沈振康.一種新的快速?gòu)?fù)雜連通區(qū)域掃描線(xiàn)填充算法[J].計(jì)算機(jī)工程與應(yīng)用,2004,40(31):6-8.
[3] 巨志勇,陳優(yōu)廣.一種新的基于鏈碼的填充算法[J].計(jì)算機(jī)工程,2007,33(17):211-215.
[4] 彭金虎.非洪泛的基于區(qū)域標(biāo)記的圖像分割與填充算法[J].科學(xué)技術(shù)與工程,2013,13(5):1359-1361.
[5] Kass M,Witkin A,Terzopoulos D.Snake:active con-tour models[J].International Journal of Computer Vis-ion,1987,1(4):321-331.
[6] Cohen LD,Cohen I.Finite-element methods for active contour models and balloons for 2-D and 3-D images[J].IEEE Trans Pattern Anal Machine Intell,1993,15(11):1131-1147.