bwlabel函式 統計連通區域 MATLAB

2021-09-23 18:27:38 字數 1220 閱讀 5469

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的...