四连通 matlab,针对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

也就是除了上下左右以外还有左上角右上角左下角右下角四个位置。

八连通区域包含了四连通区域,所以说四连通的话肯定八连通的。

看懂这些,相信大家都不陌生了。哈哈哈 ~~~其实我刚开始的时候也走了不少弯路的,分享出来大家可以少走弯路的,嘻嘻,不过还是要自己认真的思考的~~~~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值