matlab bwlabel函式 統計連通區域
使用dfs計算連通區域個數
4連通域邊界填充演算法和8連通域邊界填充演算法c++
l = bwlabel(bw,n)
返回乙個和bw大小相同的l矩陣,包含了標記了bw中每個連通區域的類別標籤,這些標籤的值為1、2、num(連通區域的個數)。n的值為4或8,表示是按4連通尋找區域,還是8連通尋找,預設為8。
四連通或八連通是影象處理裡的基本感念:而8連通,是說乙個畫素,如果和其他畫素在上、下、左、右、左上角、左下角、右上角或右下角連線著,則認為他們是聯通的;4連通是指,如果畫素的位置在其他畫素相鄰的上、下、左或右,則認為他們是連線著的,連通的,在左上角、左下角、右上角或右下角連線,則不認為他們連通。
[l,num] = bwlabel(bw,n)
這裡num返回的就是bw中連通區域的個數。
補充:我聽說過16連通,這應該是在三維空間裡的概念了吧。
舉例說明:
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
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函式的使用
用法 l bwlabel bw,n 返回乙個和bw大小相同的l矩陣,包含了標記了bw中每個連通區域的類別標籤,這些標籤的值為1 2 num 連通區域的個數 n的值為4或8,表示是按4連通尋找區域,還是8連通尋找,預設為8。4連通或8連通是影象處理裡的基本感念 而8連通,是說乙個畫素,如果和其他畫素在...
Matlab實現bwlabel函式(區域標記)功能
影象預處理。對二值圖進行形態學開操作,開操作能去掉細小的塊,平滑目標區域邊界且保持面積不變 遍歷二值圖矩陣,尋找目標區域且未被標記的點,若當前畫素未標記且當前位置畫素點為1 二值圖的目標區域 將該目標點入隊,並標上區域編號label bfs,對步驟1中的求得8鄰域的畫素點,如果該點未越界,是目標點 ...
python連通區域計算長度 連通區域演算法小結
聯通區域標記 connected component labeling 是影象處理裡面常用的乙個技術,它是用來檢測二值影象中聯通的區域,在許多跟蹤檢測演算法中充當目標區域檢測的作用。常見的ccl connected component labeling 包括two pass的方法和one pass的...