matlab图像标注连通域,图像处理中的连通区域标记算法

图像处理中的分割连通区域的方法!举例如下,

A=[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];

要得到结果:

B=[ 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];

matlab里有比较好的方法,可在C++里就很麻烦了!!!

今天被这个问题折磨了半天,,,差点连晚饭也忘了吃!!!虽然问题基本解决,,,但速度还很慢!!!晚上在宿舍里终于看到了比较好的方法,,,这里做个记录,,,以免忘了!!!

16年前,有两位分别叫Haralick Robert M 和 Linda G. Shapiro的高人在他们的《Computer and Robot Vision》(Volume I)中写了一种方法,简单描述如下:

1、Run-length encode the input image.

2、Scan the runs, assigning preliminary labels and recording label equivalences in a local equivalence table.

3、Resolve the equivalence classes.

4、Relabel the runs based on the resolved equivalence classes.

速度颇快,但不好实现!!!不知道OpenCV里有没有现成的!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值