跳转到内容

Measurements Basic vTool#

Measurements vTool 允许您测量图像中边缘的位置和距离。

Measurements vTool 通过 Image 输入引脚接受图像,并通过输出引脚输出找到的边缘的相关信息。

如果在测量前使用 Calibration vTool 并连接两个 vTools 的 Transformation 输出/输入引脚,则 Calibration vTool 提供的转换数据允许 Measurements vTool 以米为单位输出世界坐标中匹配的位置和距离(Positions_mDistances_m 输出引脚变为可用)。

如果您在测量前使用 Matching vTool 和 Image Alignment vTool,则可以测量出现在与参考图像不同的位置的对象。通过 InverseTf 输入引脚提供的转换允许 vTool 输出原始输入图像的测量结果。

测量vTool

运作原理#

通过定义图像轮廓并将其应用到输入图像,您可以收集以下信息:

  • 边缘的位置
  • 边缘的幅度
  • 边缘之间的距离
  • 具有边缘可视化的区域

图像轮廓定义#

在最简单的形式中,图像轮廓是一条长度为 x 像素、宽度为 1 像素的直线。沿着它的长度,图像中的灰度值以一个像素的间隔捕获。从数学上讲,图像轮廓是将像素位置的一维数组映射到其图像灰度值的函数。

为了获得更好的效果,Basler 建议将轮廓的宽度增加到 1 像素以上的值。一般来说,轮廓越宽,图像噪声的影响越低。如果增加宽度,轮廓将基本上变成一个矩形,轮廓线从中间穿过。

通过从轮廓线上方和下方以相等的比例获取图像像素来生成各个轮廓值。为了说明这一点,考虑一个宽度为 w 的轮廓。为了生成轮廓值,考虑轮廓线上方 w/2 像素和轮廓线下方 w/2 像素。

信息

作为准则,对于小边缘,请选择至少 5 到 7 像素的轮廓宽度。

您还应该考虑到边缘的位置可能会在垂直于轮廓线的方向上发生变化。Basler 建议测试一些不同的图像,看看物体的实际变化有多大。根据结果,您可以选择轮廓的宽度。例如,如果边缘的长度为 50 像素且(正交)对象移动为 30 像素,则选择 20 像素的轮廓宽度。

调整矩形的方向,使轮廓线与边缘成直角。

边缘检测#

边缘被定义为梯度的局部最强绝对幅度的位置。通常,轮廓信号由低通滤波器平滑。使用 Smoothing 选项设置滤波器的强度。如果要测量边缘之间的距离很小的微小结构,例如 5 到 10 个像素,请设置一个较低的平滑值,例如 1.0。如果边缘之间的距离很大,或者在有噪声的图像的情况下,使平滑变得更强。

梯度的局部极值必须强于指定的阈值,以被接受为边缘。尝试不同的阈值以找到最佳设置。最佳值介于仅检测到所有目标边缘的上限值和不再检测到多余边缘的下限值之间。

边缘选择#

边缘具有正梯度或负梯度。这对应于幅度输出。如果边缘梯度为正,则过渡由暗到亮。如果边缘梯度为负,则过渡从亮到暗。如果您希望在您的应用程序中只找到一种类型的转换,请相应地设置过渡选项。

如果您只想测量单个边缘位置,而不是将选择选项设置为全部,将检测到的边缘限制为单个目标边缘可能会有所帮助。这也将使应用程序变得更加稳健,轮廓区域中的其他(不需要的)边缘将予以忽略。要选择的单个边缘可以是第一个、最后一个或最强的边缘(就梯度幅度而言)。

使用校准#

结果位置和距离也可以米为单位输出到世界坐标中。为此,将 Calibration vTool转换输出引脚连接到 Measurements vTool 的转换输入引脚。

信息

测量平面是要测量的边缘位于三维世界中的平面。在要处理的每个图像中,边缘在测量平面内具有不同的位置。通过将校准板的表面放置在此测量平面上来记录此测量平面。

必须使用与实际处理相同的校准配置来设置 Measurements vTool。

使用 Image Alignment#

Measurements Basic vTool 要求被测形状始终处于同一位置。否则,检测将失败。为了给您更大的灵活性,您可以将 Matching vTool 和 Image Alignment vTool 添加到配方中。

与参考图像相比,匹配能够在输入图像的不同位置检测到所需的形状。它计算并输出对齐转换数据,然后 Image Alignment vTool 使用该数据将对齐输入图像提供给 Measurements Basic vTool。现在,可以测量形状了。

Measurements Basic vTool 还接收逆向转换数据,通过逆向转换数据可以输出输入图像(而不是对齐后的图像)的正确位置数据。

配置 vTool#

要配置 Measurements vTool:

Measurements vTool 设置

  1. vTool 设置区域的配方管理窗格中,单击打开设置或双击 vTool。
    Measurements Basic 对话框即打开。
  2. 拍摄或打开图像。
  3. 矩形设置区域中,通过手动输入值来定义图像轮廓。
    或者,您可以使用测量矩形的手柄来移动、调整和旋转图像轮廓,以适合您要测量的图像部分。
    从左到右的水平轮廓的角度为 0。
  4. Detection Settings 区域中,设置 SmoothingThreshold,以稳健且精确的方式检测边缘。
  5. 设置 TransitionSelect,以便仅选择目标边缘。

您可以在引脚数据视图中查看测量的结果。在这里,您可以选择要显示的输出。

输入#

图像#

直接从 Camera vTool 或从输出图像的 vTool(例如 Image Format Converter vTool)接受图像。

  • 数据类型:图像
  • 图像格式:8 位到 16 位单色或彩色图像。彩色图像在内部转换为单色图像。

InverseTf#

接受对齐转换的逆向转换数据。借助此功能,vTool 可以输出输入图像(而不是对齐后的图像)的正确位置数据。

  • 数据类型:转换数据

转型#

接受来自 Calibration vTool 的转换数据。

  • 数据类型:转换数据

输出#

Positions_px#

返回图像坐标(行/列)中的边缘点。

  • 数据类型:PointF 数组

Positions_m#

以米为单位返回世界坐标中边缘点的位置 (x/y)。

  • 数据类型:PointF 数组

幅度#

返回边缘的幅度。正幅度表示从暗到亮的过渡。负振幅表示从亮到暗的过渡。

  • 数据类型:浮点数组

Distances_px#

返回图像坐标(行/列)中两个相邻边缘之间的距离。距离的数量比边的数量少一。

  • 数据类型:浮点数组

Distances_m#

以米为单位返回世界坐标中两条相邻边之间的距离 (x/y)。距离的数量比边的数量少一。

  • 数据类型:浮点数组

区域#

为找到的每个边缘返回一个区域。

  • 数据类型:区域数组

典型前置项#