Matlab中bwlabel函式的使用

2021-09-20 06:10:14 字數 2268 閱讀 2950

l = bwlabel(bw,n)

功能概述:返回乙個和bw大小相同的l矩陣,包含了標記了bw中每個連通區域的類別標籤,這些標籤的值為1、2、num(連通區域的個數)。n的值為4或8,表示是按4連通尋找區域,還是8連通尋找,預設為8。

用法:l = bwlabel(bw)

l = bwlabel(bw,n)

[l,num] = bwlabel(___)

[gpuarrayl,num] = bwlabel(gpuarraybw,n)

4連通或8連通是影象處理裡的基本感念:而8連通,是說乙個畫素,如果和其他畫素在上、下、左、右、左上角、左下角、右上角或右下角連線著,則認為他們是聯通的;4連通是指,如果畫素的位置在其他畫素相鄰的上、下、左或右,則認為他們是連線著的,連通的,在左上角、左下角、右上角或右下角連線,則不認為他們連通。請注意「或」字的含義,就是滿足其中乙個條件就認為是連通的。

[l,num] = bwlabel(bw,n)這裡num返回的就是bw中連通區域的個數。

通俗的說,這個函式的作用是用來找這個二值影象中的連通區域的,對於不同的符合條件的連通區域(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

使用find命令得到labeld "2"的行和列序號。

[r, c] = find(l==2);

rc = [r c]

結果:

rc =

2 5

3 5

2 6

3 6

而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中fopen fprintf函式的用法

matlab中fopen函式在指定檔案開啟的例項如下 1 fopen 開啟檔案,賦予檔案代號。語法1 fid fopen filename,permission 用指定的方式開啟檔案 fid n n是正整數 表示檔案開啟成功,檔案代號是n.fid 1 表示檔案開啟不成功。fid在此次檔案關閉前總是有...

Matlab實現bwlabel函式(區域標記)功能

影象預處理。對二值圖進行形態學開操作,開操作能去掉細小的塊,平滑目標區域邊界且保持面積不變 遍歷二值圖矩陣,尋找目標區域且未被標記的點,若當前畫素未標記且當前位置畫素點為1 二值圖的目標區域 將該目標點入隊,並標上區域編號label bfs,對步驟1中的求得8鄰域的畫素點,如果該點未越界,是目標點 ...