摘要:該文根據(jù)骨架定義及優(yōu)秀骨架的性質(zhì),提出一種圖像處理方法。該方法對圖像的物體像素點進行檢測,評測每個像素點成為骨架點的可能性大小,然后以一個閾值對像素點進行分類,以便確定后續(xù)進行骨架提取的像素點,并通過選取適當?shù)拈撝担瑏慝@取視覺主骨架。實驗表明:該方法與傳統(tǒng)骨架提取方法相結(jié)合,所獲取骨架較好地保存了目標的主要拓撲結(jié)構(gòu),在骨架的拐角更加圓滑、自然,能夠有效減少骨架毛刺,并且處理所需時間有效減少。
關(guān)鍵詞:圖像處理;骨架;視覺主骨架;毛刺;拓撲結(jié)構(gòu)
中圖分類號:TP751 文獻標識碼:A 文章編號:1009-3044(2013)12-2874-05
骨架,最初的定義由Blum提出[1],作為一種簡單的物體形狀表示方式,不僅結(jié)合了物體的輪廓和區(qū)域信息,同時也反應了物體重要的視覺信息[2]。因此,基于骨架的目標表示和識別技術(shù)成為模式識別和計算機視覺的重要研究內(nèi)容,在手勢識別、字符識別、動漫生成及醫(yī)學圖像分析等領(lǐng)域有著廣闊的應用[3]。
骨架提?。╯keletonization)是指根據(jù)不同的定義和算法提取原始物體骨架的過程。目前,骨架的提取方法很多,例如Voronoi圖,最大圓盤,距離場等提取方法,在文獻[4]中作者評述了近300種方法。但無論什么方法,一個優(yōu)良的骨架應該具有如下性質(zhì)[5,6]:
1)骨架應保持原物體的拓撲。
2)骨架點精確,盡量靠近物體的中心。
3)骨架的粗細應該為一個像素(或接近一個像素)。
4)骨架能表達物體在人類視覺中的重要部分。
5)在一定的噪音情況下,骨架應具有一定的穩(wěn)定性。
本文提出的圖像處理方法在依據(jù)骨架定義及優(yōu)良的骨架的性質(zhì)的理論基礎上,對圖像進行處理。在處理后的圖像中,越接近“真實”骨架的像素點的顯著水平越高。通過選取不同的閾值,有效的過濾掉圖像中不必要的信息,并對提取后的骨架進行必要的細化,使得提取后的骨架更加精確。
1 圖像處理方法
圖像處理方法的目的是使越接近骨架點的像素的顯著值越大,而遠離骨架點的像素的顯著值越小?;诖?,該文從兩個方面對圖像像素的顯著值進行描述:其一為以圖像像素點到邊界的最短距離作為半徑的圓與邊界的切點數(shù)量;其二為與邊界切點的跨距。
1.1 與邊界的切點數(shù)量
根據(jù)骨架最大圓盤的定義,可以發(fā)現(xiàn)除端點和非骨架點外的所有骨架點至少和兩個或兩個以上的邊界點相聯(lián)系,這些邊界點到骨架點的距離最短。如圖1,骨架點S1對應的最大圓盤與物體邊界相切于P1和P2兩點,骨架點S2對應的最大圓盤與物體邊界相切于P3、P4和P5三點。而與物體邊界相切的點越多,則骨架點的重要程度越高。對于與邊界相切于兩點的骨架點,往往為骨架的普通點(Regular node);而與邊界相切點為三個點或三個點以上的骨架點,往往為骨架的連接點(Junction node)。一個物體的拓撲結(jié)構(gòu)與骨架連接點有著重要的聯(lián)系,依靠骨架普通點來維持,以骨架的端點(End node)作為終結(jié)。
因此可以用像素點與邊界切點的數(shù)量作為該像素點為骨架點可能性的衡量。當像素點與邊界僅有一個切點時,該類像素點為骨架點的可能性很低(或僅為骨架端點),可以不考慮,像素顯著值為0;當像素點與邊界相切于兩點或更多時,該類像素點為骨架點的可能性比較高,像素的顯著值大小應隨切點數(shù)量的增加而增加。
在理想的情況下,骨架點與邊界點會有兩個或兩個以上的切點。但在實際的數(shù)字圖像中,邊界點和骨架點都是位于像素的網(wǎng)格中,即使是骨架點也很難找到兩個邊界點,使得兩個邊界點到該骨架點的距離完全相等且是所有邊界點中最短的。為了找到像素點對應的最大圓與邊界的切點,將涉及到離散化問題。為簡便起見,該文以4個相鄰像素點對應的最近邊界點,作為一個像素的最大圓與邊界的所有切點的近似。
如圖2所示,在離散條件下,以像素點P0、像素點P0的右邊像素P1、像素點P0的下面像素P2、像素點P0的右下像素P3,四個相鄰像素點作為基礎,來求解以像素點P0為圓心的內(nèi)切圓與邊界的切點。其過程為:首先找到到達像素點P0距離最近的邊界點,例如為B1。則此時,4-相鄰像素點P0、P1、P2和P3與邊界點B1的距離分別為d0、d1、d2和d3。再次遍歷所有邊界點,若存在一個邊界點與4-相鄰像素點的距離不大于對應的d0、d1、d2和d3中的其中一個,則此邊界點將被視作以像素點P0為圓心的內(nèi)切圓與邊界的切點之一。如圖2所示,邊界點B2與P0的距離并非最短,但B2與P1的距離d5不大于B1與P1的距離d1,則將B2視為邊界切點。
1.2 與邊界切點的跨距
僅使用與邊界切點的數(shù)量作為像素的顯著值是不夠的。如圖3所示,像素點S1和S2所對應的最大內(nèi)切圓與物體邊界的切點數(shù)量都是2個。從切點個數(shù)上做區(qū)分,S1和S2兩個像素點是沒有任何區(qū)別的。但是,目前人們通常提取物體的視覺主骨架。視覺主骨架具有只描述人們的視覺主要部分的形狀,簡化骨架結(jié)構(gòu)的性質(zhì)。由此,應使像素點S2的顯著值高于S1的顯著值。同時,從另一個方面講,像素點S1成為毛刺骨架的可能性也高于S2,也再次降低了S1成為骨架點的可能性。
觀察圖3,會發(fā)現(xiàn)像素點S1對應的兩個邊界切點B1和B2之間,存在一個邊界跨距B1BB2;像素點S2對應的邊界跨距為B3BB4。邊界跨距B3BB4的長度大于邊界跨距B1BB2。對于同一個連續(xù)邊界而言,最大內(nèi)切圓與邊界切點所形成的跨距越大,則最大內(nèi)切圓的圓心越靠近物體的中心,該圓心成為視覺主骨架點的可能性越大,成為毛刺骨架點的可能性越小。該文以邊界的跨距(span)作為另一項描述像素點顯著值的標準。
一個最大內(nèi)切圓可能與同一個連續(xù)邊界有多個切點,如圖4所示。此時,假設與邊界有n個切點,則有效的邊界跨距span的計算公式為:
[span=length-max(Dis(B1,B2),Dis(B2,B3),...,Dis(Bn,B1))]
式中:B1、B2...Bn為最大內(nèi)切圓與邊界的切點,且沿邊界逆時針方向?qū)η悬c進行編號所得;Dis(Bi,Bj)為Bi到Bj的距離,大小為以逆時針方向,從Bi到Bj之間邊界像素點的個數(shù);length為連續(xù)邊界的長度,大小為邊界像素點的個數(shù)。因此,span為邊界長度去除邊界切點間最大間距后的長度。
上面講述了切點都在同一個邊界上,跨距span的求取方法。有時一副圖像可能存在多條邊界,如圖5所示。當一個最大內(nèi)切圓與不同的邊界相切時,則內(nèi)切圓的圓心將是一個骨架點。根據(jù)優(yōu)良骨架應具有的性質(zhì),骨架應保持原物體的拓撲結(jié)構(gòu)。若上述內(nèi)切圓的圓心不是骨架點,則會導致骨架的斷裂,所獲取的骨架將不能夠保持原來的拓撲。由此,應增加與不同邊界存在切點的像素點的顯著值,以便后續(xù)在此像素點附近尋找骨架點。該文,對于這樣的像素點的跨距span,直接賦予最大值MAXSPAN。最終的span公式為:
[span=length-max(Dis(B1,B2),Dis(B2,B3),...,Dis(Bn,B1)),{B1,B2,...,Bn}∈borderkMAXSPAN,其他]
式中:borderk為圖像上某一條連續(xù)邊界。
1.3 像素點顯著值的確定
綜合以上兩點因素,該文提出像素點的顯著值公式為:
[value=number+span*STANDARD_SIZE/(row+col)]
式中value為像素點顯著值,其值越大,代表該像素點為骨架點的可能性越高,反之越低;number為像素點對應的最大內(nèi)切圓與邊界切點的數(shù)量;span為邊界切點有效跨距,其計算公式在1.2節(jié)已經(jīng)給出;STANDARD_SIZE為一個標準值,row為輸入圖像的高度,col為輸入圖像的寬度。將span乘以因子STANDARD_SIZE/(row + col)的目的是使span在圖像進行縮放時,保持其值相對不變。
2 骨架提取及其多尺度控制
通過本文提出的方法處理后的圖像,圖像的像素值為該像素點的顯著值。處理后的圖像可以通過matlab自帶的函數(shù)bwmorph提取骨架。由于像素點顯著值的大小反映了該點為骨架點的可能性,所以本文提出一個THRESHOLD與顯著值進行比較:當顯著值大于THRESHOLD時,該像素值置為1(前景像素點);當顯著值不大于THRESHOLD時,該像素值置為0(背景像素點)。因此有:
[pixel=1,(value>THRESHOLD)0,(value≤THRESHOLD)]
處理后獲取的二值圖像,作為bwmorph函數(shù)的輸入。
當對THRESHOLD選取不同的值時,可以實現(xiàn)對骨架的多尺度控制。減小閾值THRESHOLD將增加物體像素點參與骨架的提取,使骨架更加細致;增大閾值THRESHOLD,則將使顯著值高的點參與骨架提取,提取的骨架更加粗糙,其效果相當于骨架剪枝??梢酝ㄟ^選取適當大小的THRESHOLD值,來保留視覺上重要的骨架枝,實現(xiàn)骨架的多尺度控制。
3 實驗結(jié)果及分析
實驗中,首先通過本文提出的圖像處理方法,將原始的二值圖像轉(zhuǎn)化為顯著值圖像,然后根據(jù)THRESHOLD的值,再次將顯著值圖像轉(zhuǎn)化為二值圖像,此時只有顯著值大于THRESHOLD的像素點的值才為1,最后使用matlab中提供的形態(tài)學骨架函數(shù)bwmorph提取骨架。通過THRESHOLD的值實現(xiàn)骨架的尺度控制,直到選取一個較良好的骨架。
圖6(a)通過bwmorph函數(shù)直接提取的骨架??梢?,提取的骨架存在許多不必要的分支,并且骨架的拐角也不過圓滑,不夠自然。圖6(b)-(e)中的骨架,都是通過本文提出的方法處理后所提取的骨架。THRESHOLD選取的值不同時,所獲取的骨架的詳細程度也不同,其值選取的越小,提取的骨架越精細,但分支較多;其值選取的越大提取的骨架越簡略,分支越少。圖6(f)和圖6(g)分別為圖像在縮放為原來的80%和120%后,在THRESHOLD值為35時所獲取的骨架??梢钥闯鲈谠瓐D像進行縮放后并且THRESHOLD值不變的情況下,提取的骨架具有一定的相對不變性。
matlab自帶的bwmorph進行骨架提取,所用的時間較長。而使用本文提出的圖像處理方法并結(jié)合bwmorph函數(shù)進行骨架提取時,雖然增加了一步圖像處理的操作,但整體時間大大減少。通過本文方法處理過的圖像,將有效減少非骨架像素點的數(shù)量,從而使后續(xù)提取骨架的操作隨之減少。當THRESHOLD值由小變大時,提取的骨架將由“繁”到“簡”,操作所用的時間逐漸減少。
4 結(jié)束語
針對傳統(tǒng)骨架提取方法獲得的骨架不精確、多毛刺、拐角不平滑、處理時間長等問題,該文提出一種圖像處理方法,使得處理后的圖像再次提取的骨架質(zhì)量顯著提高。該圖像處理方法是依據(jù)骨架定義及優(yōu)良骨架性質(zhì)的基礎上,提升可能成為骨架點的像素顯著值,進而利用一個閾值對像素進行分類,判斷該像素是否能夠成為待提取骨架像素點。通過對閾值的控制可以實現(xiàn)對提取骨架的多尺度控制,進而選取適當?shù)拈撝?,以便提取視覺主骨架。
實驗結(jié)果表明該圖像處理方法簡單、快速,與傳統(tǒng)骨架提取方法結(jié)合獲得的骨架,能夠方便地去除骨架中的多余分支,并且較好地保存了目標的主要拓撲結(jié)構(gòu),在骨架的拐角更加圓滑,自然。同時,在圖像進行縮放并且閾值不變的情況下,也能有效保證所獲取的骨架相對不變性,這一點對于骨架應用有著實際意義。
參考文獻:
[1] Blum H. A transformation for extracting new descriptors of shape, MIT Press, 1967:362-380.
[2] ZHANG Guo-dong, HAN Jia-chi. Skeleton pruning algorithm based on fuzzy distance transform, Journal of Shenyang Aerospace University, 2012, 29(1):64-69.
[3] Nicu D. Cornea, Deborah Silver, Member, IEEE, and Patrick Min. Curve-Skeleton Properties, Applications, and Algorithms, Visualization and Computer graphics, 2007, 13(3):530-548.
[4] L Lam, SW Lee, CY Suen. Thinning methodologies-a comprehensive survey, IEEE Transactions On Pattern Analysis And Machine Intelligence, 1992, 14(9): 869-885.
[5] S. X. HU, Yan-Ming Xiong, Liao, M.Z.W. Tang, Y.Y.. Skeletonization of ribbon-like shapes based on local minimum modules of wavelet transform, Wavelet Analysis and Pattern Recognition, 2007:1247-1251.
[6] Wang Song-wei, LI Yan-jun, Zhang Ke, Wang Zheng. Fast target skeleton extraction algorithm, Infrared and Laser Engineering, 2009, 38(4):731-736.