matlab bwlabel标记连通区域
[L,num] = bwlabel(BW,n)
這里num返回的就是BW中連通區域的個數。返回一個和BW大小相同的L矩陣,包含了標記了BW中每個連通區域的類別標簽,這些標簽的值為1、2、num(連通區域的個數)。n的值為4或8,表示是按4連通尋找區域,還是8連通尋找,默認為8。
? ? 通俗的說,這個函數的作用是用來找這個二值圖像中的連通區域的,對于不同的符合條件的連通區域(4連通,8連通)分別用不同的標號加以區別,結果保存在L這個矩陣里,而num里保存的是輸入圖像中連通區域的總數。
? ??舉例說明:
? ? BW =
? ? 1? ???1? ???1? ???0? ???0? ???0? ???0? ???0
? ? 1? ???1? ???1? ???0? ???1? ???1? ???0? ???0
? ? 1? ???1? ???1? ???0? ???1? ???1? ???0? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???1? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???1? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???1? ???0
? ? 1? ???1? ???1? ???0? ???0? ???1? ???1? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???0? ???0
? ? 按4連通計算,方形的區域,和翻轉的L形區域,有用是對角連接,不屬于連通,所以分開標記,連通區域個數為3,就是有3個不同的連接區域。
? ? L = bwlabel(BW,4)
? ? 結果如下:
? ? L =
? ? 1? ???1? ???1? ???0? ???0? ???0? ???0? ???0
? ? 1? ???1? ???1? ???0? ???2? ???2? ???0? ???0
? ? 1? ???1? ???1? ???0? ???2? ???2? ???0? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???3? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???3? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???3? ???0
? ? 1? ???1? ???1? ???0? ???0? ???3? ???3? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???0? ???0
? ? 而8連通標記,它們是連通的:
? ? [L, num] = bwlabel(BW,8)
? ? L =
? ? 1? ???1? ???1? ???0? ???0? ???0? ???0? ???0
? ? 1? ???1? ???1? ???0? ???2? ???2? ???0? ???0
? ? 1? ???1? ???1? ???0? ???2? ???2? ???0? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???2? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???2? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???2? ???0
? ? 1? ???1? ???1? ???0? ???0? ???2? ???2? ???0
? ? 1? ???1? ???1? ???0? ???0? ???0? ???0? ???0
? ?這里
? ?num =2
?
總結
以上是生活随笔為你收集整理的matlab bwlabel标记连通区域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab imfill孔洞填充
- 下一篇: matlab 图像坐标系