CogFindLineTool是用于检测图像中直线边缘的集合查询工具,广泛应用工业视觉检测中的定位、测量等场景。
效果图
CogFindLineTool工具的功能
CogFindLineTool主要用于定位图像中的直线边缘,通过一系列卡尺(Caliper)在预设区域内搜索边缘点,并利用这些点拟合出最秀直线。
边缘定位:检测物体边界直线,例如产品边缘、机械部件轮廓等。
几何测量:通过拟合直线计算位置、角度等参数,为后续的坐标或尺寸测量提供数据。
多工具协作:常与其他工具(如CogintersectLineLineTool、CogDistancePointLineTool)配合,实现复杂几何关系的计算(如交点、距离)。
工具原理
卡尺搜索:在预期直线附近设置多个卡尺区域,每个卡尺沿垂至于预期直线的方向扫描图像,定位边缘点。
边缘点拟合:将所有卡尺检测到的边缘点通过最小二乘法或其他算法拟合为一条直线,代表实际物体的边界。
坐标系转换:支持不同坐标系下的直线检测,例如在将检测结果转换到机械臂坐标系中,便于后续操作。
常见应用场景
新能源电池片定位
场景:在生产新能源电池中,往往需要通过两个相机分别定位电池片首尾端点。
工业部件尺寸测量
场景:检测金属部件的直线边缘长度或角度。
CogFindLineTool注意事项
参数调优:若检测失败,优先调整对比度阈值、过滤像素或边缘极性。
性能平衡:卡尺数量需权衡与速度,工业场景中通常旋转10-20个卡尺。
多工具联动:与CogFixtureTool(坐标固定)、CogPMAlignTool(模板匹配)等工具结合,提升复杂场景的检测稳定性。
CogFindLineTool使用流程
方法 | 描述 |
---|---|
InputImage | 是指被处理的原始图像数据 |
Results.GetLine | 它是指表示直线对象,可能包含有关该直线的各种学生描述,如斜率、截距等参数 |
Result.GetLineSegment | 是指实际找到的线段,即具有明确起点和重点的一段优先长度的线。 |
步骤一:
选择图像模式,默认为模板匹配中的模板,并不会随着目标变化而变化,需要修改为自定义(@\Fixture)
步骤二:
选择边缘对:如果搜索箭头向外需要根据图像颜色和背景颜色进行改变,如上方模板就需要由暗到明->由明到暗顺序。
步骤三:
函数名
函数 | 描述 |
---|---|
对比度 | 所招线条两侧颜色或灰度值的差异程度。 |
位置 | 卡尺线沿搜索方向相反方向的线条到卡尺的距离(单位通常是像素) |
PositonNeg | 它仅限于在卡尺框内抓取符合条件的第一条线,这意味着它只关注卡尺内部的区域,而不考虑外部的任何信息 |
PositonNorm | 位置”通常指的是某个特征(如边缘、线段等)在图像中的坐标或相对于某个参考点的距离 |
PositonNormNeg | 判断为“负方向”或“否定条件” |
SizeDiffNorm | |
SizeDiffNormAsym | |
SizeNorm | 用于测量和比较对象的大小,但经过某种形式的标准化处理,使得结果不搜绝对尺寸的影响 |
跨立 | 判断一个点是否位于一条直线的某一侧 |
SizeDiffNorm的计算公式
其中:
- dd 表示实际检测到的边线对之间的距离。
- ww 表示预期的边线模型宽度。
通过这个公式,SizeDiffNorm
可以反映出实际检测结果与预期值之间的偏差程度。如果 SizeDiffNorm
的值接近0,则表明检测到的边缘间距非常接近预期值;如果值较大,则说明存在显著的偏差。
SizeDiffNormAsym的计算公式
这里,
-
ww 表示预期的边线模型宽度。
-
dd 表示实际检测到的边线对之间的距离。
解释
-
当
SizeDiffNormAsym
的值为正时,表示实际宽度小于预期宽度。 -
当
SizeDiffNormAsym
的值为负时,则意味着实际宽度大于预期宽度。 -
如果
SizeDiffNormAsym
的值接近于零,说明实际宽度非常接近预期宽度。
通过这种方式,SizeDiffNormAsym
不仅量化了宽度差异的程度,还反映了这种差异的方向性。这使得它在需要精确控制尺寸偏差的应用中非常有用,例如在质量控制过程中检查产品是否符合严格的尺寸规格。
步骤四:一般情况CogFindLineTool是找的为线段,不用直接找出线,在这里可以将显示最佳拟合线打开,这样找出的线段就会显示出相对于的直线。
步骤五:这里可以看到结果中线与线段的显示方式参数。
步骤六:以下为卡尺的点数信息
RMS
评估拟合模型与实际数据点之间差异的一个度量标准,指的是检测到的线条与理想线条位置之间的偏差大小
具体的RMS计算公式一般如下:
这里,
-
nn 是样本数量。
-
xix**i 是每个样本点的实际值。
-
xˉxˉ 是所有样本点的平均值。
在CogFindLineTool的上下文中,xix**i 可能代表的是沿检测到的线条分布的各个点的位置,而 xˉxˉ 可能是指这些点在理想直线上的对应位置。
CogFindLineTool总结
CogFindLineTool通过灵活的卡尺配置和几何拟合算法,在工业视觉检测中实现了高精度的直线定位与测量。其核心优势在于可适应不同光照条件、复杂背景,并与其他VisionPro工具无缝协作,广泛应用于电子制造、汽车零部件检测等领域。