範例:路徑簡化與骨架化
使用
thin 與
skeleton 將圖像中的物件轉換為一組大致上穿過每個物件中心的線條。
與路徑簡化操作不同的是,skeleton 會保留輸入物件的大小。骨架的端點會四處延伸至輸入物件的邊緣。
如需使用此範例的資訊,請參閱
<關於圖像處理範例>。
thin
此函數會先根據臨界值 b 二進位化輸入圖像。輸出為結構線條的二進位圖像,或強度為 1 且背景像素強度為 0 的圓弧。
1. 建立矩形方塊圖像:
2. 使用臨界值 1,將路徑簡化函數套用至矩形方塊:
(s1_thin.bmp)
將簡化矩形路徑會產生一條近似矩形中軸的線。
3. 讀取包含字母 D 與一點的圖像,然後使用臨界值 128 套用路徑簡化函數:
(d_bw.bmp) | (d_bw_thin.bmp) |
光學字元辨識技術中即使用了路徑簡化的應用。路徑簡化會保留圖像上物件的基本形狀與結構。
4. 讀取更複雜的圖像,然後使用臨界值 128 套用路徑簡化函數:
(pinetree.bmp) | (pinetree_thin_b128.bmp) |
skeleton
1. 將 skeleton 函數應用至圖像 M,而不指定選用臨界值引數 b:
(pinetree.bmp) | (pinetree_skltn.bmp) |
2. 指定臨界值 b,然後將 skeleton 函數應用至相同的圖像:
(pinetree.bmp) | (pinetree_skltn_b1.bmp) |
3. 使用臨界值 1,將 skeleton 函數應用至原始圖像 S:
(s1_thin.bmp) | (s2_skltn.bmp) |
b 函數會先根據臨界值 skeleton 二進位化輸入圖像。輸出為結構線條的二進位圖像,或強度為 1 且背景像素強度為 0 的圓弧。
4. 讀取新圖像,然後使用臨界值 128 套用 skeleton 函數:
(flower.bmp) | (flower_skltn_b128.bmp) |
5. 使用臨界值 128 骨架化松樹圖像:
(pinetree.bmp) | (pinetree_skltn_b128) |