NI视觉助手Vision Assistant教程
Set Coordinate System设定坐标系,函数说明信息创建一个坐标系基于参考特征的位置与方向,其函数在面板中的位置如下图所示:
图1 Set Coordinate System设定坐标系
这个函数首先是需要一个参考特征,这样才能用于建立坐标系。如果在没有参考特征的情况下,直接点击函数,是会提示警告的:
图2 Set Coordinate System设定坐标系必须基于参考特征
从图2中的警告信息看到,坐标系基于其它步骤的点位置,例如找边缘、找模板、粒子分析等。如果在脚本中没有相关的点可以使用,则无法建立坐标系,即如果脚本区中有直方图、线剖面图、测量等函数也是不能用作参考特征来建立坐标系的。
因此在这里,我们先使用函数Edge Detector先找到一点边缘点(函数在后面章节中介绍,点击函数后,直接在图像边缘对比强的地方画一条线ROI,大部分的图像都能找到边缘点)。然后再点击设定坐标系函数,进行设定坐标系设置界面,如下图所示:
图3 设定坐标系设置界面
设定坐标系函数因为只相关于点的位置与方向,因此与图像的格式无关,彩色、灰度、二值图像等都可以使用设定坐标系,关键点是要有参考特征的点坐标。
从图3中的配置界面中可以看到脚本区中找到了一个边缘点(即图像中大100元与壹佰圆中间的钱币符号上),然后在这个点上,还有一个红色的直角坐标系。这个坐标系就是点击函数后默认的建立的坐标系。下面来看一下设定坐标系的具体设置选项卡。
图4 设定坐标系设置
设定坐标系的设置选项卡也比较简单,只有一个Settings设置选项卡。其中有一个类似步骤名的Coordinate System Name坐标系名称。这个坐标系名,即充当了步骤名,又充当了坐标系名。坐标系名是需要区别对待的。因为一个图像处理检测系统中,是可以设置多个不同的参考坐标系的。
接下来是Mode坐标系的类型。默认的是Horizontal Motion水平运动,此外还有Vertical Motion垂直运动、Horizontal and Vertical水平和垂直运动、Horizontal、Vertical and Angular Motion水平、垂直带角度的运动。如下图所示:
图5 设定坐标系Mode类型
从图5中看到,最后一个水平、垂直带角度运动的类型是灰色不可用的。这是因为前面的找边缘点的步骤只找到了点,而并没有方向,因此坐标系没有相应的角度方向参考,因此带角度的运动是不可用的。在本节后面再来看一个带角度的例子。
Origin原点用于指定需要设定的坐标系的原点(0FF0C0)。上面图中可以使用的是Edge Detector函数找到的1-Edge Detector 1-Edge 1边缘点。原点中的名称有两个“-”横线隔开三段,命名的规则是这样的:最前面的数字是可以使用的坐标系原点编号,中间一部分是某个可以找到点的函数名,后面是此函数找到的具体的点名称与编号。不同的函数可以找到的点是不一样的,而且相同的函数针对不同的图像使用不同的设置方法时,找到的点位置、数量也是不一样的。因此在建立坐标系时,需要对点有一个比较好的把握。理论上比较好的点是那种具有唯一性,且容易寻找,不容易找错的点。因此一旦这个原点找错了,那么坐标系的位置与方向就不正确了,那么如果后面有ROI需要跟随这个坐标系运动,那么ROI就不会在想的特征上面从而造成测量的不正确。
X-Axis Angle X轴角度用于指定设定坐标系的X轴角度。在上面的例子中,因为没有可以使用的角度特征,因此X轴角度选项里没有相应的选项,是灰色禁用的。如果有相应的角度选项,那么与Origin原点中方式一样,角度也是选择具体的特征测量得到的角度,而不是由用户指定的角度。
在这里我们选择水平和垂直运动模式,点击OK后确定,即完成了坐标系设定,如下图所示:
图6 设定坐标系例子
下面在上面的例子基础上再加添加一个查找直边的函数,这个就可以测量得到直线的两个端点以及直线的角度。然后再利用这些点与角度再建立一个坐标系。
图7 Find Straight Edge Setup查找直边
图8 设定坐标系-水平、垂直带角度运动
图9 设定坐标系详情
图7中,使用查找直边函数找到一条直边。图8中,利用找到的直边的第一点为新坐标系的原点,利用找到的直边角度为X轴角度,设定水平、垂直带夹角运动的坐标系。图9是建立的坐标系的详情。从中可以看到,设定的坐标系有一个绿色的框包围了一个小红方框,这个是原点的位置,两条红色的带箭头的线分别是新设定的坐标系的X、Y轴。其中有一条线的箭头前面还有一个小红点,这条线是X轴,另外一条则为Y轴。在坐标系上还有一条绿色的字符表示当前的坐标系名称。
这里有一些细节是大家在后面的学习应用中需要注意的。图8中的找直边函数找到的直接的两个端点,第一点与第二点的位置与顺序是不确定的。根据ROI的方向、找直边的方向等不同,找到的直边的端点是不一样的,这个不一样,即体现在坐标的细小偏差上,也体现在第一点、第二点的排序上;例如图8中使用的ROI是水平向右的,耙子也是从左到右的,这样找到的第一点在上面,第二点在下面(从图8中的Y坐标点可以看到)。而如果将ROI转90度,设置成从上到下的,再把耙子设置从底到顶的,那么找到的两个点第一个点是在下面的,第二个点在上面。而且点的坐标也是会有变化的。如下图所示:
图10 找直边ROI方向不一样时找到的直边点不一样
图11 当原点不同时,坐标系会随着原点变化
图11中仍然使用原来的坐标系设置,即使用直查找直边的第一点作为原点,这建立的坐标系就在直边的下方了。
设定坐标系函数,在实际测量中是非常有用的,特别是一些生产线上或大视野中的目标的定位测量上,如尺寸测量、条码识别、OCR、粒子分析等函数,当目标特征在视野的位置不确定时,这里就需要建立参考坐标系,使测量目标的ROI跟随参考点运动。而参考点的选择,通常是需要保证其在视野中一定存在且清晰容易识别,不会造成不确定性的特征,一般使用匹配等方法进行参考特征的提取,再建立参考坐标系,然后再做目标特征的测量。如下面所示的例子,基于图8所示的坐标系,再进行100元字符中的0字进行圆检测。这样当钞票在视野中位置发生变化时,也可以测量得到目标特征。当然这里选择的参考坐标系的原点特征并不很理想,因为其会变化,因此用户可以考虑使用如小数字的可变色的100字符,也可以使用钱币阴阳符号,或者是国徽之类的。这样就坐标系就相对稳定许多。
图12 基于参考坐标系的目标特征测量
精品石鑫华NI Vision Assistant视觉助手图像处理实用教程视频版-淘宝网
https://item.taobao.com/item.htm?id=538756535591