主要内容

标记和测量二值图像中的连接组件

探测连接组件

一个连接组件在二进制图像中是形成连接组的一组像素。例如,下面的二进制图像具有三个连接的组件。

通过使用计算连接组件bwconncomp.在这个示例代码中,BW为上图所示的二进制矩阵。指定连接性为4,以便两个相邻的像素是同一对象的一部分,如果它们都是打开的,并且沿着水平或垂直方向连接。的PixelIdxList字段标识属于每个连接组件的像素列表。

bw =零(8,9);BW(2:4,2:3)= 1;BW(5:7,4:5)= 1;BW(2,7:9)= 1;BW(3,8:9)= 1;BW
BW = 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
cc = bwconncomp (BW, 4)
CC =连接:8图像:[8 9] numObjects:3 PixelidxList:{[6x1双] [6x1 double] [5x1 double]}

标签连接组件

连接组件标记是在图像中识别连接组件并为每个连接组件分配唯一标签的过程。得到的矩阵叫做a标签矩阵

使用使用的创建标签矩阵labelmatrix函数。此示例代码继续使用连接的组件结构,cc,在前一节中定义。

标签= labelmatrix (cc)
标签= 8×9 uint8矩阵0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 3 3 3 0 1 1 0 0 0 0 3 3 0 1 1 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0

要将连接的组件可视化,可以使用label2RGB.函数。标识标签矩阵中每个对象的标签映射到相关颜色映射中的不同颜色。您可以指定colormap、背景颜色以及标签矩阵中的对象如何映射到colormap中的颜色。

@copper RGB_label = label2rgb(标签,“c”“洗牌”);imshow (RGB_label)

选择二进制图像中的对象

你可以使用bwselect函数在二值图像中选择单个对象。以编程方式或与鼠标交互方式指定输入图像中的像素。bwselect返回一个二进制图像,该图像仅包括来自包含一个指定像素之一的输入图像的对象。

例如,使用此命令选择在当前轴中显示的图像中的对象。

bw2 = bwselect;

当光标在图像上时,它会变成十字线。点击你想要选择的对象;bwselect在您单击的每个像素上显示一个小星号。当你完成时,按返回bwselect返回由您选择的对象组成的二进制图像,并删除星星。

测量连接组件的属性

regionprops函数可以返回连接组件的多个属性的测量值。其他函数测量单个属性。例如,Bwarea.函数返回二值图像的面积。

这个示例使用Bwarea.来确定面积增加的百分比circbw.tif这是来自扩张操作的结果。该区域是图像前景大小的量度,大致等于图像中的像素。然而,Bwarea.不简单的计算像素数设置为.相反,Bwarea.在计算面积时,不同像素模式的权重不相等。这种加权补偿了用离散像素表示连续图像所固有的失真。例如,一条50像素的对角线比一条50像素的水平线长。作为加权的结果Bwarea.用途,水平线的面积为50,但对角线具有面积为62.5。

bw = imread(“circbw.tif”);se = dener(5);BW2 = Imdilate(BW,SE);增加=(Bwarea(bw2) -  bwarea(bw))/ bwarea(bw)
增加= 0.3456

另请参阅

||||

相关的例子

更多关于