🟧 图像连通域分析

功能描述

该算子对输入的二值化图像进行连通域分析,识别图像中所有独立的白色像素区域,即为连通域,对于每个识别出的连通域,算子可以输出其轮廓、中心点、以及独立的掩膜图像,并通过面积大小进行过滤。

使用场景

  • 目标检测与分割:分离出每个独立的目标实例,获取它们的位置和轮廓。

  • 噪声去除:通过面积过滤,可以有效去除二值化后产生的小面积噪声点。

  • 瑕疵检测:检测产品表面的划痕、污点、凹坑等瑕疵。通常瑕疵在二值化后会形成独立的连通区域。

输入输出

输入项

二值化图像:一个或多个二值化图像。

输出项

检测结果:检测结果列表,其中每个元素代表一个检测到的连通域,包含了该区域的轮廓、类别、置信度等信息。

结果中心点列表:一个列表,包含了每个被识别出的、且通过面积筛选的连通域中心点坐标 [x, y]。

结果掩膜图像:仅当参数"是否返回掩膜列表"为开启状态时,此端口才会输出一个二值化图像列表。列表中的每张图像都对应一个检测到的连通域,该区域为白色,其余部分为黑色。

参数说明

结果类型

参数说明

设置每个检测对象的轮廓以什么形式表示。

调参说明

  • 最小包围框(默认):算子为每个连通域计算一个能够完整包围它的、面积最小的矩形。这种方式计算速度快,结果规则,适用于大多数只需要目标大致位置和尺寸的场景。

  • 掩膜:算子提取每个连通域精确的轮廓,形成一个可能不规则的多边形。适用于需要进行精确形状分析或面积计算的场景,但计算量稍大,且轮廓点可能非常多。

连通域类型

参数说明

在图像中用于判断哪些相邻像素被视为"相连"的规则,常见有4连通和8连通两种方式。

调参说明

  • 8连通:一个像素与它周围(上、下、左、右及4个对角线方向)的8个像素都被视为邻居。这是更常用的设置,如果两个白色区域仅在角点处相接,此模式会将它们视为一个整体。

  • 4连通:一个像素仅与它上、下、左、右的4个像素被视为邻居。此模式下,仅在角点相接的两个区域会被视为两个独立的对象。

最小像素面积

参数说明

设置一个面积阈值,所有像素数量(面积)小于此值的连通域将被过滤掉。

调参说明

通过二值化处理后,图像中经常会出现一些由噪声产生的微小白色斑点。通过设置一个合适的最小面积,可以将这些无意义的噪声点去除。调节时,可观察一下正常目标在二值图里大概的像素面积,将此参数设置为一个比最小正常目标小,但比大部分噪声大的值。

例如,若正常目标的面积都在200像素以上,而噪声点基本都在50像素以下,可将此值设为100。

参数范围

[5, 400000],默认值:100

最大像素面积

参数说明

设置一个面积阈值,所有像素数量(面积)大于此值的连通域将被过滤掉。

调参说明

此参数可用于排除异常的大面积区域。例如,如果因为打光或阈值设置不当,导致图像中大部分背景被错误地识别为白色区域,可以通过此参数将其过滤掉。通常可以设置为一个远大于正常目标可能出现的最大面积的值。

参数范围

[5, 4000000],默认值:300000

返回掩膜列表

参数说明

控制是否为每个检测到的连通域生成并输出一张独立的掩膜图。

调参说明

  • 关闭(默认):不生成独立的掩膜图列表,输出为空。这种方式更节省内存和计算资源,适用于绝大多数仅需轮廓和中心点的应用场景。

  • 开启:会为每个通过筛选的连通域生成一张独立的、与原图等大的二值掩膜图像,并合并成列表输出。仅当后续算子明确需要这一输入时才开启此选项。