Region Morphology vTool#
您可以缩小或扩大区域、移除小结构、移除孔洞或填充孔洞。这可确保后续处理更有效或提供更好的结果。
Region Morphology vTool 通过Regions 输入引脚接受区域或区域数组,并通过 Regions 输出引脚输出区域数组。
Region Morphology vTool 的区域输出还可用作具有 ROI 输入引脚的 vTools 的 ROI 输入。有关更多信息,请参阅 ROI Creator vTool 主题。
运作原理#
Region Morphology 的目的是操纵区域。基本的形态操作侵蚀和扩张基于区域掩模。填充操作不需要掩模。
掩模形状#
有圆形和矩形掩模可供选择。根据掩模形状,您可以指定宽度和高度或半径。每个掩模都有一个明确的中心。在形态操作期间,掩模在图像上逐行移动。
对于具有奇数宽度和高度值(例如 3、5、7 等)的矩形掩模,掩模的中心与掩模的重心相同。掩模相对于中心对称。
对于半径为整数加 0.5(例如 1.5、2.5、3.5 等)的圆形掩模,掩模的中心与掩模的重心相同。掩模相对于中心对称。
如果您第一次打开设置对话框并选择矩形掩模,则宽度和高度是关联的。这意味着您可以同时更改两个参数,并且生成的掩模将是正方形的。您还可以单独设置宽度和高度。为此,请单击链图标以断开宽度和高度之间的链接。
- 已链接的选项:
- 未链接的选项:
形态操作#
以下是不同操作的工作方式:
- 侵蚀:只要掩模完全适合输入区域,掩模中心命中的像素就会添加到输出区域。这样就减少了区域的面积。
- 扩张:只要掩模和输入区域共享至少一个像素,被掩模中心命中的像素就会添加到输出区域。这样就扩大了区域的面积。
- Opening: This is a concatenation of erosion and dilation. The mask for the dilation is the same mask as for the erosion but rotated by 180 °. This operation removes structures that are smaller than the mask from the region. The output region is more or less the same size and shape as before.
- 闭合:这是扩张和侵蚀的串联。侵蚀掩模与扩张掩模相同,但旋转了 180°。此操作填充或弥合区域中小于掩模的间隙。该区域的大小和形状与以前大致相同。
- Fill: 这会填充区域内的孔。此操作不需要蒙版。
除了上面列出的选项之外,您还可以执行 region splitting。这会将一个区域的连接组件变成单独的区域。如果选中相应的复选框,则会计算所有单个或多个输入区域的连通分量。
连通分量是所有像素都具有直接相邻像素(水平、垂直和对角线方向)的区域。未连接的区域将被分割为单独的输出区域。
您也可以在之前未执行任何形态操作的情况下对原始输入区域执行区域分割。
信息
如果您使用区域形态作为 blob 分析的一部分,您可以连接多个 Region Morphology vTools 以便在最后计算所需的输出区域。
根据 blob 分析的目标,您可以使用 Region Selection vTool 作为一系列区域形态操作的中间步骤或最后一步,以过滤掉相关区域。
示例#
以下部分说明了使用样本图像的不同形态操作。
腐蚀和膨胀#
下图展示了如何连续使用两个形态操作(侵蚀和膨胀)来分离触摸对象,同时保留其原始形状。因此,可以正确计算对象的数量,然后可能会根据区域特征进行检查。
这是显示白色平板电脑的输入图像:
这是找到初始区域的图像,例如,在颜色分类之后:
应用侵蚀操作后,区域如下所示:
最后,在应用膨胀操作后,将分离片剂。
打开和填充#
“打开”操作通常用于抑制小区域,例如由图像噪声或杂乱产生的小区域,这导致不完全分割的区域。换句话说,通过使用适当的蒙版,“打开”可以用于滤除非常大的区域结构。
下图显示,通过使用大约为目标对象一半大小的圆形蒙版打开一个区域,可以检测到电路板的基准点。
区域填充用作将环变成实心圆的中间步骤。
这是显示电路板的输入图像:
使用阈值处理,可以在输出区域中看到图像中的光结构:
应用填充后,将填充环:
最后,应用打开操作将消除所有小区域,仅将基准点作为检测区域:
闭合#
“闭合”操作基本上用于闭合区域中的缩进、填充间隙或连接各个区域段。
基于与之前相同的电路板示例,此示例显示如何分割球栅阵列区域。起点是显示上述光结构的阈值图像。
Apply a Closing operation with a rectangular mask big enough to bridge the gaps between all the balls of the ball grid array.
Apply an Opening operation to reduce small unwanted regions.
最后,使用 Region Selection vTool 根据大小选择两个球栅阵列区域。
常见用例#
- 使用圆形或矩形侵蚀缩小区域
- 使用圆形或矩形膨胀来扩大区域
- 使用“打开”移除小对象
- 使用具有适当蒙版形状的打开操作来过滤掉较大的对象
- 使用闭合填充小孔或凹痕
- 使用闭合来弥合区域之间的间隙
- 使用填充来填充区域内的孔
- Splitting connected components of regions into separate regions in order to count the number of regions
配置 vTool#
要配置 Region Morphology vTool:
- 在 vTool Settings 区域的 Recipe Management 窗格中,单击 Open Settings 或双击 vTool。
Region Morphology 对话框即打开。 - 在 Morphology Operation 区域中,选择要执行的操作。
如果您只想分割区域而不执行任何形态操作,请选择 Off。 - 在 Mask Shape 区域中,选择蒙版的形状和大小。
侵蚀、膨胀、闭合和打开操作需要蒙版。 - 在 Region Splitting 区域中,指定是否要将区域的连接组件分割成单独的区域。
分割也可直接用于输入图像,无需先执行任何形态操作。
您可以在引脚数据视图中查看形态操作的结果。在这里,您可以选择要显示的输出。
输入#
区域#
接受单个或多个区域。
- 数据类型:区域、区域数组
输出#
区域#
返回单个或多个已处理的区域。
- 数据类型:区域数组