Matlab函数bwlable小结

该文章是转载文章,觉得那位博主写的很透彻明了,我自己写可能也讲不清楚,故转之,在此谢过那位博主的无私奉献。
用法:
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个不同的连接区域。不要纠结1,2,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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值