針對matlab 四連通,和八連通的詳解


功能:標注二進制圖像中已連接的部分。
語法:L = bwlabel(BW,n) [L,num] = bwlabel(BW,n)

其中BW為輸入圖像;N可取值為4或8表示連接四連通或八連通區域;NUM為找到的連通區域數目;L為輸出圖像矩陣,其元素值為整數,背景被標記為0,第一個連通區域被標記為1,第二個連通區域被標記為2,依此類推.所以你不明白的1,2,3即為第1,2,3個連通區域的標記

網上給出的解釋大部分是不完整的,

官網的解釋

L = bwlabel(BW, n) returns a matrix L, of the same size as BW, containing labels for the connected objects in BW. The variable n can have a value of either 4 or 8, where 4 specifies 4-connected objects and 8 specifies 8-connected objects. If the argument is omitted, it defaults to 8.

 

The elements of L are integer values greater than or equal to 0. The pixels labeled 0 are the background. The pixels labeled 1 make up one object; the pixels labeled 2 make up a second object; and so on.

相信大家看了,都頭暈的。現在我給出列子,大家可以更加理解的:

(1):

A=[0 1 1 0 1 0 1

0 1 1 0 0 0 1

0 1 1 0 1 0 1]; [L,M]=bwlabel(A,4);    

此時L=[0 1 1 0 2 0 4
0 1 1 0 0 0 4
0 1 1 0 3 0 4]  ,  M=4

(2):

 

A=[0 1 1 0 0 0 1

 

0 1 1 0 0 0 1

 

0 1 1 0 0 0 1]; [L,M]=bwlabel(A,4);

L=[0 1 1 0 0 0 2
0 1 1 0 0 0 2
0 1 1 0 0 0 2]  M=2;

(3):

A=[0 1 1 0 0 0 1

0 1 1 0 0 0 1

0 1 1 0 1 0 1]; [L,M]=bwlabel(A,4);

L=[0 1 1 0 0 0 3
0 1 1 0 0 0 3
0 1 1 0 2 0 3]   M=3

大家看我A中1的位置就應該明白什么意思了吧 !!

 

其實大家可以這樣理解的:四連通區域是這樣的:    1
                                   1  0  1
                                       1
以上的0是中心像素點1所在的位置就是四連通區域。也就是0的上向左右四個點。
八連通區域是:           1  1  1
1 0 1
                                   1  1   1
也就是除了上下左右以外還有左上角右上角左下角右下角四個位置。
八連通區域包含了四連通區域,所以說四連通的話肯定八連通的。

看懂這些,相信大家都不陌生了。哈哈哈 ~~~其實我剛開始的時候也走了不少彎路的,分享出來大家可以少走彎路的,嘻嘻,不過還是要自己認真的思考的~~~~~~

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM