机器视觉测量拟合中级篇,halcon实战测量助手
个人学习笔记
第一:快速使用measure测量助手进行识别:
measure测量助手打开位置
进入measure测量助手的首页,第一使用对图像进行读取。
第二:图像源选取
1.按照要求选取图像源,可以直接对图像窗口进行选取(在实现写好读图程序)。
2.图像文件,我们可以直接选取图像文件,在插入代码即可直接使用。
3.图像采集助手,这个是需要先使用采集助手进行连接相机,然后使用相机进行实时读取。
/****/
期望的灰度值范围:一般采取默认值0-255。如果出现我需要选取某一部分的图像的时候,我们可以先使用灰度直方图的阀值选择,选择合适的灰度值放入其中。
标定来源:如果不设置标定来源,实际的测量结果将由像素的形式显示出来。例如距离为100pix。使用标定来源,实际结果将直接转化为国际单位mm。
//
第三:绘制ROI区域。
直接使用绘制线段或者绘制弧线,对所需要的区域进行绘制,由于为手工绘制,所以线段往往不能达到所需要的角度,但是我们可以在插入代码中进行修调角度即可,所以在绘制的时候只需要尽可能的绘制完好即可。
第四:调节边缘
调节边缘主要用于选取所需要的边缘和显示图像。
可以通过调节,最小边缘幅度和平滑度旋转边缘。对于最小边缘幅度,值约小所得到的边缘越多,值越大所得到的边缘越少,一般选取默认值即可。对于平滑度而言,平滑度越大则选取的边缘会约靠近外部,平滑度越小则选取边缘会越靠近黑色部分,当平滑度小于0.6之后,线段会消失,意味值平滑度过小影响到边缘的选取,一般取默认值为1.
ROI宽度:为你绘制的轮廓线的大小,如果对于表面不是特别平整的区域,过大的ROI区域会影响测量边缘的识别。
显示轮廓线:
在这个图表中,纵坐标为图像的灰度值,我们可以打开导数,对图像进行一阶导数求导
我们可以直观的看到每一条轮廓必然在灰度一阶导数的转折点(中间绿和红色线为手动选取线)
注意:我们打开一定要处于激活状态,不然无法观察到线段
/****************************************/
边缘选择:我们可以直接打开将边缘这次边缘对方便我们观察。
变换:变换包含常用的三种方法。
- all:测量所有的线段
- positive:测量正边缘
- negative:测量负边缘
位置可以设定,我们需要测量的组别,有all:所有组别。First:第一组。Last:最后一组三个参数。
/***************/
显示参数,我们可以打开显示区域,方便我们查看。
模糊部分另外介绍。
/**************************/
结果部分
在这里我们可以选择特征。
是否选择位置,幅度,距离,边缘宽度,这些在代码中都会有不同的显示。
特征处理:变化为世界坐标系。由于我们并没有使用标定文件,所以我们所得到的是像素距离,只有我们输入标定文件后才能转化为世界坐标系(即为直角坐标系,单位为mm)
我们可以同时绘制多个ROI区域用于测量,在结果窗口选择激活的ROI区域即可。
/***************/
结果:
Row1st:为第一组第一边的中心横坐标(row2st则为第二边)
Column1st:为第一组第二边的中心纵坐标(Column2st则为第二边)
幅度:在上面的显示轮廓中,灰度的一阶导数为负值的边缘,幅度也是负值。如果灰度的一阶导数为正值的边缘,幅度也为正值。
距离:里面的2条边缘所得到的距离单位为像素点。
/******************************/
我们在插入代码后。
因为我们画的ROI区域可能不是垂直的,所以我们直接找到存放ROI区域角度的变量
TmpCtrl_Phi := atan2(TmpCtrl_Dr, TmpCtrl_Dc)
修改为垂直即可
TmpCtrl_Phi := rad(90)
变量窗口的interdistance 则为我们需要的结果。
/*************************************************/
对于快速测量来说,我们可以直接使用measure测量助手进行快速测量像素,然后插入代码,修改ROI区域角度,得出interdistance变量的值即可。
在我们不会如何处理处理的时候,也可以使用助手插入代码,复制粘贴即可