細(xì)化算法
“骨架”是指一幅圖像的骨骼部分,描述物體的幾何形狀和拓?fù)浣Y(jié)構(gòu)挨队,是重要的圖像描繪子之一盛垦。計(jì)算骨架的過程一般被稱為“細(xì)化”或“骨骼化”,對目標(biāo)物體進(jìn)行細(xì)化有助于突出目標(biāo)的形狀特點(diǎn)和拓?fù)浣Y(jié)構(gòu)省撑,減少冗余的信息俯在。
思路:我們假定一個(gè)圖像的3×3區(qū)域標(biāo)記為P1,P2肥败,....,P9,如下皿哨,
· | · | · | · |
---|---|---|---|
· | P3 | P2 | P9 |
· | P4 | P1 | P8 |
· | P5 | P6 | P7 |
規(guī)定1表示黑色纽谒,0表示白色鼓黔,如果中心P1=1(為黑),若同時(shí)滿足下列4個(gè)條件澳化,則刪除P1(令P1=0)缎谷,
- 2<=NZ(P1)<=6;
- Z0(P1)=1瑞你;
- P2×P4×P8=0或者Z0(P1)不等于1希痴;
- P2×P4×P6=0或者Z0(P4)不等于1;
其中,NZ(P)表示P點(diǎn)的8鄰域中1的數(shù)目纺铭,如下表所示刀疙,
· | · | · | · |
---|---|---|---|
· | P-1,-1 | P-1,0 | P-1,1 |
· | P0,-1 | P0,0 | P0,1 |
· | P1,-1 | P1,0 | P1,1 |
而Z0(P)按照以下方式計(jì)算谦秧,
nCount=0;
if P-1,0=0 && P-1,-1=1
nCount++;
if P-1,-1=0 && P0,-1=0
nCount++;
if P0,-1=0 && P1,-1=1
nCount++;
if P1,-1=0 && P1,0=1
nCount++;
if P1,0=0 && P1,1=1
nCount++;
if P1,1=0 && P0,1=1
nCount++;
if P0,1=0 && P-1,1=1
nCount++;
if P-1,1=0 && P-1,0=1
nCount++;
Z0(P)=nCount;
而后對圖像中的每一個(gè)點(diǎn)都進(jìn)行重復(fù)這些步驟,直到所有的點(diǎn)都不可刪除為止锥累。
像素化算法
細(xì)化通常適用于和物體拓?fù)浣Y(jié)構(gòu)或形狀有關(guān)的應(yīng)用集歇,比如手寫字符識別等,但有時(shí)候關(guān)心的是目標(biāo)對象是否存在际歼,它們的位置關(guān)系或者是個(gè)數(shù)鹅心,這個(gè)時(shí)候我們就可以用像素化的方法進(jìn)行預(yù)處理。
像素化的操作就是先找到在二值圖像中所有的連通區(qū)域颅筋,然后用這些區(qū)域的質(zhì)心作為這些連通區(qū)域的代表榕茧,即將一個(gè)連通區(qū)域化為位于連通區(qū)域質(zhì)心的一個(gè)像素。
有時(shí)候?yàn)榱诉^濾噪聲肢簿,我們可以設(shè)定一個(gè)低閾值lowerThres和一個(gè)高閾值upperThres用來指出圖像中所需要的對象的連通數(shù)(也就是連通分量的像素?cái)?shù)目)池充,就可以將連通數(shù)在范圍之外的對象濾除缎讼。
凸殼
如果連接物體A內(nèi)任意兩點(diǎn)的直線段都在A的內(nèi)部,則稱A是凸的卧惜,**任意物體A的凸殼H是包含A的最小凸物體夹纫。
因?yàn)楣庹詹痪绕渌颍詧D像在二值化之后茅姜,本身形狀容易發(fā)生破損钻洒,也就不那么容易找到質(zhì)心锄开,所以適當(dāng)?shù)倪M(jìn)行凸殼處理,可以找到包含原始形狀的最小凸多邊形糯钙,便于找到物體質(zhì)心而后進(jìn)行像素化處理。
bwmorph()函數(shù)
matlab中有一個(gè)bwmorph()函數(shù)再榄,很多形態(tài)學(xué)操作都可以利用這個(gè)函數(shù)進(jìn)行實(shí)現(xiàn)享潜,
Iout=bwmorph(I,operation,n);
參數(shù)說明:
- I為輸入二值圖像剑按;
- operation是一個(gè)指定操作類型的字符串,有如下取值猬腰,
合法取值 | 功能描述 |
---|---|
‘bridge’ | 橋接由單個(gè)像素縫隙分隔的前景像素 |
‘clean’ | 清除孤立的前景像素 |
‘diag’ | 圍繞對角線相連的前景像素進(jìn)行填充 |
‘fill’ | 填充單個(gè)像素的孔洞 |
‘hbreak’ | 去掉前景中的H形連結(jié) |
‘majority’ | 如點(diǎn)P的8鄰域中一半以上的像素為前景像素姑荷,則使P也為前景像素缩擂;否則P為背景像素 |
‘remove’ | 去除內(nèi)部像素(無背景像素相鄰的前景像素) |
‘shrink’ | 將物體收縮為一個(gè)點(diǎn)或者帶洞的環(huán)形 |
‘skel’ | 骨骼化圖像 |
‘spur’ | 去除毛刺 |
‘thicken’ | 粗化物體 |
‘thin’ | 將物體細(xì)化至最低限度相連的線形 |
- 可選參數(shù)n是一個(gè)正整數(shù)胯盯,用于指定將被重復(fù)操作的次數(shù),默認(rèn)為1博脑。當(dāng)設(shè)定為n=Inf時(shí)表示重復(fù)操作一直到圖像停止改變?yōu)橹埂?/li>
- Iout為經(jīng)過n次operation參數(shù)指定操作后的輸出圖像叉趣。