天天看點

【CV】骨架提取

 ###Date: 2018.4.5   清明

============================================================

圖像的細化主要是針對二值圖而言

所謂骨架,可以了解為圖像的中軸,,一個長方形的骨架,是它的長方向上的中軸線,

圓的骨架是它的圓心,直線的骨架是它自身,孤立點的骨架也是自身。

骨架的擷取主要有兩種方法:

(1)基于烈火模拟

設想在同一時刻,将目标的邊緣線都點燃,火的前沿以勻速向内部蔓延,目前沿相交時火焰熄滅,

火焰熄滅點的結合就是骨架。

(2)基于最大圓盤

目标的骨架是由目标内所有内切圓盤的圓心組成

【CV】骨架提取

我們來看看典型的圖形的骨架(用粗線表示)

細化的算法有很多種,但比較常用的算法是查表法

細化是從原來的圖中去掉一些點,但仍要保持原來的形狀。

實際上是保持原圖的骨架。

判斷一個點是否能去掉是以8個相鄰點(八連通)的情況來作為判據的,具體判據為:

1,内部點不能删除

2,鼓勵點不能删除

3,直線端點不能删除

4,如果P是邊界點,去掉P後,如果連通分量不增加,則P可删除

【CV】骨架提取

看看上面那些點。

第一個點不能去除,因為它是内部點

第二個點不能去除,它也是内部點

第三個點不能去除,删除後會使原來相連的部分斷開

第四個點可以去除,這個點不是骨架

第五個點不可以去除,它是直線的端點

第六個點不可以去除,它是直線的端點

對于所有的這樣的點,我們可以做出一張表,來判斷這樣的點能不能删除

【CV】骨架提取

我們對于黑色的像素點,對于它周圍的8個點,我們賦予不同的價值,

若周圍某黑色,我們認為其價值為0,為白色則取九宮格中對應的價值

對于前面那幅圖中第一個點,也就是内部點,它周圍的點都是黑色,是以他的總價值是0,對應于索引表的第一項

前面那幅圖中第二點,它周圍有三個白色點,它的總價值為1+4+32=37,對應于索引表中第三十八項

我們用這種方法,把所有點的情況映射到0~255的索引表中

我們掃描原圖,對于黑色的像素點,根據周圍八點的情況計算它的價值,然後檢視索引表中對應項來決定是否要保留這一點。