主要内容

bwlabeln

在二值图像中标记连接的组件

描述

例子

l= bwlabeln (BW返回一个标签矩阵,l,包含中连接组件的标签BW

l= bwlabeln (BW康涅狄格州返回一个标签矩阵,其中康涅狄格州指定连接。

ln) = bwlabeln (___同样的回报n中找到的连接对象的数量BW

例子

全部折叠

创建简单的三维二值图像样本。

BW = cat(3, [1 1 0;0 0 0;1 0 0),...[0 1 0;0 0 0;0 1 0),...[0 1 1;0 0 0;0 0 1])
Bw = Bw (:,: 1) = 1 1 0 0 0 0 1 0 0 Bw (:,: 2) = 0 1 0 0 0 0 1 0 0 Bw (:,: 3) = 0 1 1 0 0 0 0 1 1

在图像中标记连接的组件。

bwlabeln (BW)
Ans = Ans (:,:,1) = 1 1 0 0 0 0 2 0 0 Ans (:,:,2) = 0 1 0 0 0 0 2 0 Ans (:,:,3) = 0 1 1 0 0 0 0 2

输入参数

全部折叠

二进制图像,指定为任意维度的数字或逻辑数组。对于数字输入,任何非零像素都被认为是

例子:BW = imread(“text.png”);

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

像素连接性,指定为该表中的一个值。默认连接是8用于二维图像263 d图像。

价值

意义

二维的连接性

四连接

如果像素的边缘相接触,则它们是连接的。两个相邻的像素是同一对象的一部分,如果它们都是on,并沿水平或垂直方向连接。

8-connected

如果像素的边缘或角相接触,则它们是连通的。两个相邻的像素是同一对象的一部分,如果它们都在水平、垂直或对角方向上连接。

三维的连接性

6-connected

如果它们的脸相接触,像素就会连接起来。两个相邻的像素是同一对象的一部分,如果它们都是on并且连接在:

  • 其中一个方向:进,出,左,右,上,下

18-connected

如果像素的面或边缘相接触,它们就被连接起来。如果两个相邻的像素都是on和in,则它们是同一对象的一部分

  • 其中一个方向:进,出,左,右,上,下

  • 两个方向的组合,如垂直或向上

26-connected

如果像素的面、边或角相接触,则它们是相连的。如果两个相邻的像素都是on和in,则它们是同一对象的一部分

  • 其中一个方向:进,出,左,右,上,下

  • 两个方向的组合,如垂直或向上

  • 三个方向的组合,如右上或左下

更高的维度,bwlabeln使用默认值conndef(ndims (BW),“最大”)

连通性也可以通过指定一个3 × 3 ×…3的矩阵0年代和1年代。1-值元素定义相对于的中心元素的邻域位置康涅狄格州.请注意,康涅狄格州必须对中心元素对称。看到指定自定义连接性为更多的信息。

数据类型:|逻辑

输出参数

全部折叠

标签矩阵,作为大小与BW.像素标记0是背景。像素标记1构成一个对象;像素标记2制造第二个对象;等等。

数据类型:

中连接的对象的数量BW,作为非负整数返回。

数据类型:

提示

  • 的函数bwlabelbwlabeln,bwconncomp所有计算连接组件的二进制图像。bwconncomp取代bwlabelbwlabeln.它使用的内存明显更少,有时比其他功能更快。

    函数 输入维度 输出形式 内存使用 连接
    bwlabel 二维 双精度标记矩阵 4或8
    bwlabeln 一天 双精度标签矩阵 任何
    bwconncomp 一天 CC结构体 任何
  • 从二值图像中提取特征,使用regionprops对于默认连接,只要通过即可BW直接进入regionprops使用命令regionprops (BW)

算法

bwlabeln使用以下一般程序:

  1. 扫描所有图像像素,为非零像素分配初步标签,并在联合查找表中记录标签等效。

  2. 使用union-find算法解析等价类[1]

  3. 基于已解析的等价类重新标记像素。

参考文献

[1] Sedgewick,罗伯特,算法用C,第三版,Addison-Wesley, 1998,第11-20页。

之前介绍过的R2006a