查找和拟合工具

找线工具

找线工具 (FindLineTool) 用卡尺在图像指定区域定位边缘点,再用边缘点拟合出最佳线作为找线结果。

输入输出终端说明

在工具块编辑区根据需要连接工具的输入输出,终端说明如下表所示。

Note

工具块编辑区中仅显示工具的常用输入输出终端,右击工具名称,选择“添加终端”,可在添加终端页面选择终端添加。

终端名称

终端类型

数据类型

内容描述

InputImage

输入型

VisionImage

输入的图像

CaliperNum

输入型

Int32

卡尺数量

ProjectionLength

输入型

Double

卡尺的投影长度

SearchLength

输入型

Double

卡尺的搜索长度

SearchDirectionEn

输入型

En_CaliperProjectionDirection

交换卡尺的搜索方向

SearchDirection

输入型

Int32

卡尺的搜索方向

StartPoint

输入型

Point2d

预期线段的起点

EndPoint

输入型

Point2d

预期线段的终点

ExpectedEdgeModel

输入型

CaliperToolEdgePattern

边缘模式

ContrastThreshold

输入型

Double

对比差异阈值

FilterSize

输入型

Int32

滤波器半窗口大小

ScoreThreshold

输入型

Double

分数阈值

ResultLine

输出型

Line2d

最佳拟合直线

EdgeResult

输出型

List`1

点结果

参数说明

设置-卡尺

  • 卡尺数量:沿着期望线段生成的卡尺数量。该工具要求最少添加 2 个卡尺。使用的卡尺越多,最后拟合的线会更贴合。

  • 搜索长度:每个卡尺与期望线段垂直方向搜索的长度。

  • 投影长度:每个卡尺在期望线段方向的投影长度。

  • 搜索方向:每个卡尺的搜索方向,图像显示区以金黄色箭头的形式显示。

  • 交换搜索方向:点击“交换搜索方向”,可改变搜索方向为 90°/-90°。

设置-预期的线段

  • 起点X/Y:预期线段的起点坐标 (X,Y)。

  • 终点X/Y:预期线段的终点坐标 (X,Y)。

  • 适应图像:点击“适应图像”,线段自动居中,长度将根据输入图像的大小自动调整。

卡尺设置

  • 边缘模式

    • 单个边缘/边缘对:指定卡尺工具定位的对象。

    • 边缘0极性:单个边缘或边缘对的第 1 个边缘的极性。

      • 由暗到明:按照图像灰度值递增变化的方向搜索边缘 0。

      • 由明到暗:按照图像灰度值递减变化的方向搜索边缘 0。

      • 任何极性:按照图像灰度值有变化的方向搜索边缘 0。

    • 边缘1极性:边缘对的第 2 个边缘的极性。

      • 由暗到明:按照图像灰度值递增变化的方向搜索边缘 1。

      • 由明到暗:按照图像灰度值递减变化的方向搜索边缘 1。

      • 任何极性:按照图像灰度值有变化的方向搜索边缘 1。

    • 边缘对宽度:边缘对的间距。单位:px。“边缘模式”选择“边缘对”时需设置该参数。

  • 对比差异阈值:边缘检测时相邻像素的灰度值差异阈值。取值范围 1 ~ 255 。

  • 滤波器半窗口大小:边缘检测时平滑图像的滤波器窗口的一半。用于消除噪声,提高边缘提取的稳定性。

  • 分数阈值:分数结果小于该阈值的边缘点不参与线拟合。取值范围 0 ~ 1。

图形

  • 显示所有卡尺区域:勾选“显示所有卡尺区域”,图形显示区会以绿色矩形框的形式显示所有卡尺区域。

  • 显示最佳拟合线段:勾选“显示最佳拟合线段”,图形显示区会以金黄线段的形式显示最佳拟合线段。

  • 显示找到的卡尺边缘:勾选“显示找到的卡尺边缘”,图形显示区会以红色线段的形式显示找到的卡尺边缘。

  • 显示预期的线段:勾选“显示预期的线段”,图形显示区会以品红色线段的形式显示预期的线段。

结果说明

工具运行后,找线工具 界面结果栏显示找线信息,包括:

结果

  • X/Y:最佳拟合线段上一点的坐标 (X, Y)。

  • 角度:最佳拟合线段的角度。

点结果

  • ID:边缘点结果的 ID。

  • 已使用:是否使用该边缘点拟合线段。

  • 分数:边缘点结果的分数。

  • X:边缘点的坐标 X。

  • Y:边缘点的坐标 Y。

  • 对比度:边缘点的对比度。

找圆工具

找圆工具 (FindCircleTool) 用卡尺在图像指定区域定位边缘点,再用边缘点拟合出最佳圆弧作为找圆结果。

输入输出终端说明

在工具块编辑区根据需要连接工具的输入输出,终端说明如下表所示。

Note

工具块编辑区中仅显示工具的常用输入输出终端,右击工具名称,选择“添加终端”,可在添加终端页面选择终端添加。

终端名称

终端类型

数据类型

内容描述

InputImage

输入型

VisionImage

输入的图像

CaliperNumber

输入型

Int32

卡尺数量

ProjectionLength

输入型

Double

卡尺的投影长度

SearchLength

输入型

Double

卡尺的搜索长度

CaliperDirection

输入型

En_CaliperProjectionDirection

卡尺的搜索方向

ExpectedCenter

输入型

Double

预期圆弧的中心坐标

ExpectedRadius

输入型

Double

预期圆弧的半径

BeginAngle

输入型

Double

预期圆弧的起始角

EndAngle

输入型

Double

预期圆弧的结束角

ExpectedEdgeModel

输入型

CaliperToolEdgePattern

边缘模式

ContrastThreshold

输入型

Double

对比差异阈值

FilterSize

输入型

Int32

过滤一半像素

ScoreThreshold

输入型

Double

分数阈值

ResultCircle

输出型

Circle2d

最佳拟合圆弧

EdgeResult

输出型

List`1

点结果

参数说明

设置-卡尺

  • 卡尺数量:沿着期望圆弧生成的卡尺数量。该工具要求最少添加 3 个卡尺。使用的卡尺越多,最后拟合的圆弧会更贴合。

  • 搜索长度:每个卡尺与期望圆弧垂直方向搜索的长度。

  • 投影长度:每个卡尺在期望圆弧切线方向的投影长度。

  • 搜索方向:每个卡尺的搜索方向,图像显示区以金黄色箭头的形式显示。

设置-预期的圆弧

  • 圆心X/Y:预期圆弧的圆心坐标 (X,Y)。

  • 半径:预期圆弧的半径。

  • 起始角:预期圆弧的起始角。单位:度。

  • 结束角:预期圆弧的结束角。单位:度。

  • 适应图像:点击“适应图像”,预期圆弧自动居中,其半径会自适应图像。

卡尺设置

  • 边缘模式

    • 单个边缘/边缘对:指定卡尺工具寻找的对象。

    • 边缘0极性:单个边缘或边缘对的第 1 个边缘的极性。

      • 由暗到明:按照图像灰度值递增变化的方向搜索边缘 0。

      • 由明到暗:按照图像灰度值递减变化的方向搜索边缘 0。

      • 任何极性:按照图像灰度值有变化的方向搜索边缘 0。

    • 边缘1极性:边缘对的第 2 个边缘的极性。

      • 由暗到明:按照图像灰度值递增变化的方向搜索边缘 1。

      • 由明到暗:按照图像灰度值递减变化的方向搜索边缘 1。

      • 任何极性:按照图像灰度值有变化的方向搜索边缘 1。

    • 边缘对宽度:边缘对的间距。单位:px。“边缘模式”选择“边缘对”时需设置该参数。

  • 对比差异阈值:边缘检测时相邻像素的灰度值差异阈值。取值范围 1 ~ 255。

  • 滤波器半窗口:边缘检测时平滑图像的滤波器窗口的一半。用于消除噪声,提高边缘提取的稳定性。

  • 分数阈值:分数结果小于该阈值的边缘点不参与线拟合。取值范围 0 ~ 1。

图形

  • 显示所有卡尺区域:勾选“显示所有卡尺区域”,图形显示区会显示以绿色矩形框的形式显示所有卡尺。

  • 显示最佳拟合圆弧:勾选“显示最佳拟合圆弧”,图形显示区会以金黄色圆弧的形式显示最佳拟合圆弧。

  • 显示卡尺找到的边缘:勾选“显示找到的卡尺边缘”,图形显示区会以金黄色实心圆的形式显示卡尺找到的边缘。

  • 显示预期的圆弧:勾选“显示预期的圆弧”,图形显示区会以红色线段的形式显示预期的圆弧。

结果说明

工具运行后,找圆工具 界面结果栏显示找圆信息,包括:

结果

  • X/Y:最佳拟合圆弧的圆心坐标 (X,Y)。

  • 半径:最佳拟合圆弧的半径。

点结果

  • ID:卡尺边缘点结果的 ID。

  • 已使用:是否使用该边缘点拟合圆弧。

  • 分数:边缘点结果的分数。

  • X/Y:边缘点的坐标 (X,Y)。

  • 对比度:边缘点的对比度。

线拟合工具

线拟合工具 (FitLineTool) 根据输入点的集合,拟合一条直线。

输入输出终端说明

在工具块编辑区根据需要连接工具的输入输出,终端说明如下表所示。

Note

工具块编辑区中仅显示工具的常用输入输出终端,右击工具名称,选择“添加终端”,可在添加终端页面选择终端添加。

终端名称

终端类型

数据类型

内容描述

InputImage

输入型

VisionImage

输入的图像

Points

输入型

List`1

用于拟合线的点集合

DistanceType

输入型

En_DistanceTypes

距离类型

DistanceParameter

输入型

Double

距离参数

RadialPrecision

输入型

Double

径向精度参数

AnglePrecision

输入型

Double

角度精度参数

ResultLine

输出型

Line2d

线拟合结果

参数说明

设置

  • icon-add-points:点击icon-add-points添加点,并在表格中设置该点的 X/Y 坐标。

  • icon-delete-points:在表格中选中点数据后点击 icon-delete-points,即可删除该点。

参数设置

  • 距离类型

    距离类型

    计算公式

    DIST_L2

    \(\rho(r)=r^2/2\)

    DIST_L1

    \(\rho(r)=r\)

    DIST_L12

    \(\rho(r)=2\cdot(\sqrt{1+\frac{r^2}{2}}-1)\)

    DIST_FAIR

    \(\rho(r)=C^2\cdot(\frac{r}{C}-\log(1+\frac{r}{C})) \quad \text{where}\quad C= 1.3998\)

    DIST_WELSCH

    \(\rho(r)=\frac{C^2}{2}\cdot(1-\exp(-(\frac{r}{C})^2)) \quad \text{where}\quad C= 2.9846\)

    DIST_HUBER

    \(\rho(r)= \begin{cases} r^2/2 \qquad & if\quad r<C \\ C\cdot(r-C/2)\qquad & otherwise \end{cases} \quad \text{where}\quad C= 1.345\)

  • 距离参数:当距离类型选 DIST_FAIR、DIST_WELSCH、DIST_HUBER 时需设置距离参数。设置为 0,拟合线工具会自动选择最优值进行计算。

  • 径向精度参数:表示拟合直线到坐标原点的距离精度,建议设为 0.01。

  • 角度精度参数:表示拟合直线的角度精度,建议设为 0.01。

图形

  • 显示输入点:勾选“显示输入点”,图形显示区会以“金黄+”的形式显示点。

  • 显示拟合的直线:勾选“显示拟合的直线”,图形显示区会显示品红色直线。

结果说明

运行工具后,线拟合工具 页面结果栏显示拟合线的信息,包括:

  • X/Y:拟合线上的一个参考点坐标 (X,Y)。

  • 角度:拟合线的角度。

圆拟合工具

圆拟合工具 (FitCircleTool) 根据输入点的集合,拟合一个圆。

输入输出终端说明

在工具块编辑区根据需要连接工具的输入输出,终端说明如下表所示。

Note

工具块编辑区中仅显示工具的常用输入输出终端,右击工具名称,选择“添加终端”,可在添加终端页面选择终端添加。

终端名称

终端类型

数据类型

内容描述

InputImage

输入型

VisionImage

输入图像

Points

输入/输出型

List`1

用于拟合圆的点集合

ResultCircle

输出型

Circle2d

圆拟合结果

参数说明

设置

  • icon-add-points:点击icon-add-points 添加点,在表格中可设置该点的 X/Y 坐标。

  • icon-delete-points:在表格中选中点数据后点击 icon-delete-points,即可删除该点。

图形

  • 显示输入点:勾选“显示输入点”,图形显示区会以“金黄+”的形式显示点。

  • 显示拟合的圆:勾选“显示拟合的圆”,图形显示区会显示金黄色拟合圆。

结果说明

运行工具后,圆拟合工具 页面结果栏显示拟合圆的信息,包括:

  • X/Y:拟合圆的圆心坐标 (X,Y)。

  • 半径:拟合圆的半径。