连接部件标识。第7部分
我在我的以前连接的组件标签张贴所使用的算法bwlabeln.这次我要讲的是bwlabel.这个变体使用行程长度编码作为第一步。
下面是我所说的运行长度编码。考虑这个小的二值图像矩阵:
这样的二值图像可以表示为的集合运行,或1的序列。按列工作,该图像包含9次运行:
每一次运行都可以用它的起始像素和运行中的像素数表示,这称为运行长度.因此才有了这个术语行程长度编码.
对于包含较大对象的较大二值图像,运行的数量可以比前景像素的数量小得多。但是连通性分析完全可以通过运行来确定。在我们的小例子中:
- 运行#3连接到运行#1
- 运行#4连接到运行#2
- 运行#6连接到运行#4
- 运行#7连接到运行#5
- 运行#8连接到运行#6
- 运行9连接到运行7
- 运行9连接到运行8
属性将此连接对集解析为等价类的技术dmperm.在本例中,只有两个等价类,对应于两个连接的组件。
这个函数bwlabel调用首先计算一个运行长度编码。当它找到每次运行时,它还确定前一列上的哪些运行是连接的(如果有的话)。然后构造稀疏邻接矩阵并调用dmperm计算等价类。然后它根据它所属的等价类标记输出标签矩阵中的每个运行。
这是一种非常有效的方法,因为它只扫描输入图像中的每个像素一次,也因为邻接矩阵通常相对较小。它是R乘R,其中R是运行的次数。
你可以在Haralick和Shapiro中找到这种方法,计算机和机器人视觉卷1, Addison-Wesley, 1992, pp. 40-48。(注意,等价类解析方法使用bwlabel和书中描述的不一样。)
- 类别:
- 连接组件
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。