利用辅助函数完成复杂尺寸测量

 

直线拟合和圆拟合算子可以拟合直线边缘或圆边缘。直线拟合算子获得单个直线的长度、两个端点坐标、斜率,圆拟合算子获得圆的中心点坐标和半径。 在复杂的视觉检测中,往往需要测量两直线的距离、直线与圆心的距离、两个圆的同心度,单个算子是无法完成这些测量需求的。测量复杂的尺寸可以借助专门的辅助函数来完成。

 

尺寸测量原理:检测算子获得坐标结果如圆心、直线中点以后,将这些坐标作为参数输入相应的函数,可以获得测量结果。能够提供坐标位置的检测算子除了直线拟合算子、圆拟合算子以外,还有边缘点检测算子、物体提取算子、定位算子等等。

 

下面详细介绍如何使用直线拟合算子和辅助函数共同完成计算两直线边缘的距离。

1.  使用jier.rar压缩文件中的图像文件建立一个虚拟相机和一个新工程。(下载地址:http://www.lottav.com/noing/imagebase/jier.rar

2.  添加两个直线拟合算子,名称分别为lind1lind2,然后拖动到合适位置,调整大小并设置合适的参数。如下图;

  

   上面的两个检测算子拟合锂电池极耳的上下两条直线边缘,检测运行过程中获得两条线段的首尾坐标。将这两个线段的端点坐标作为函数参数,计算两边缘的距离(包括平均距离,最小距离,最大距离)。

3.  "STARTUP"流程里面,输入如下脚本:

  

sight1.shot()

 

sight1.lind1.inspect()

sight1.lind2.inspect()

 

ln1 = LINE2(sight1.lind1.p1,sight1.lind1.p2)

ln2 = LINE2(sight1.lind2.p1,sight1.lind2.p2)

n,mn,mx = dist2j(ln1, ln2)

 

trace(n)

trace(mn)

trace(mx)

 

上面的脚本首先获取虚拟相机图像,然后使用直线拟合算子进行拟合。最后构建两个直线变量,调用dist2j函数,获取两线段之间的距离,最小距离,以及最远距离。

 

这些结果通过trace语句输出。

 

4. 点击"运行->启动",显示"手动触发检测"窗口。如下图:

  

点击"下一个"按钮触发一次检测。在经过多次触发以后,在 "输出"面板的"调试"页,可以看到不同图像的尺寸测量结果。