###Date: 2018.4.5 清明
============================================================
圖像的細化主要是針對二值圖而言
所謂骨架,可以了解為圖像的中軸,,一個長方形的骨架,是它的長方向上的中軸線,
圓的骨架是它的圓心,直線的骨架是它自身,孤立點的骨架也是自身。
骨架的擷取主要有兩種方法:
(1)基于烈火模拟
設想在同一時刻,将目标的邊緣線都點燃,火的前沿以勻速向内部蔓延,目前沿相交時火焰熄滅,
火焰熄滅點的結合就是骨架。
(2)基于最大圓盤
目标的骨架是由目标内所有内切圓盤的圓心組成
我們來看看典型的圖形的骨架(用粗線表示)
細化的算法有很多種,但比較常用的算法是查表法
細化是從原來的圖中去掉一些點,但仍要保持原來的形狀。
實際上是保持原圖的骨架。
判斷一個點是否能去掉是以8個相鄰點(八連通)的情況來作為判據的,具體判據為:
1,内部點不能删除
2,鼓勵點不能删除
3,直線端點不能删除
4,如果P是邊界點,去掉P後,如果連通分量不增加,則P可删除
看看上面那些點。
第一個點不能去除,因為它是内部點
第二個點不能去除,它也是内部點
第三個點不能去除,删除後會使原來相連的部分斷開
第四個點可以去除,這個點不是骨架
第五個點不可以去除,它是直線的端點
第六個點不可以去除,它是直線的端點
對于所有的這樣的點,我們可以做出一張表,來判斷這樣的點能不能删除
我們對于黑色的像素點,對于它周圍的8個點,我們賦予不同的價值,
若周圍某黑色,我們認為其價值為0,為白色則取九宮格中對應的價值
對于前面那幅圖中第一個點,也就是内部點,它周圍的點都是黑色,是以他的總價值是0,對應于索引表的第一項
前面那幅圖中第二點,它周圍有三個白色點,它的總價值為1+4+32=37,對應于索引表中第三十八項
我們用這種方法,把所有點的情況映射到0~255的索引表中
我們掃描原圖,對于黑色的像素點,根據周圍八點的情況計算它的價值,然後檢視索引表中對應項來決定是否要保留這一點。