matlabbw像素连线,matlab的bwlabel(BW,n)⽤法
⽤法:
L = bwlabel(BW,n)
返回⼀个和BW⼤⼩相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表⽰是按4连通寻区域,还是8连通寻,默认为8。
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 ⽽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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论