查找和拟合工具
找线工具
找线工具 (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 |
线拟合结果 |
参数说明
设置
:点击
添加点,并在表格中设置该点的 X/Y 坐标。
:在表格中选中点数据后点击
,即可删除该点。
参数设置
距离类型
距离类型
计算公式
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 |
圆拟合结果 |
参数说明
设置
:点击
添加点,在表格中可设置该点的 X/Y 坐标。
:在表格中选中点数据后点击
,即可删除该点。
图形
显示输入点:勾选“显示输入点”,图形显示区会以“金黄+”的形式显示点。
显示拟合的圆:勾选“显示拟合的圆”,图形显示区会显示金黄色拟合圆。
结果说明
运行工具后,圆拟合工具 页面结果栏显示拟合圆的信息,包括:
X/Y:拟合圆的圆心坐标 (X,Y)。
半径:拟合圆的半径。