功能:標注二進制圖像中已連接的部分。
語法: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
也就是除了上下左右以外還有左上角右上角左下角右下角四個位置。
八連通區域包含了四連通區域,所以說四連通的話肯定八連通的。
看懂這些,相信大家都不陌生了。哈哈哈 ~~~其實我剛開始的時候也走了不少彎路的,分享出來大家可以少走彎路的,嘻嘻,不過還是要自己認真的思考的~~~~~~