本文已参与「新人创作礼」活动,一起开启掘金创作之路。
VisionPro找线工具的使用
VisionPro对应Vmax加密狗,其图像处理功能强大 ,现在就找线工具的三种工具的使用介绍下。它们分别是:对比度、位置、PositionNeg。
一、对比度
对比度指所照线条两侧颜色的色差值。VisionPro能处理的图片格式是bmp格式的8位深度图片,图片色值就是0-255,那么两种颜色的差值范围就是0-255(默认大减小)。那么每根线所对应的色差值就是线的特有属性,依次就能找到线所在的位置。在8位深度bmp格式文件里白色对应255,黑色对应0。如果由白到黑或者由黑到白,色差值都是255。而“对比度”的工作原理是沿搜索方向查找第一根色差值大于等于设定值的线。如图一。
图一:模板
图一是找线的模板,设定的条件是搜索方向由下向上且由白到黑。由图可以看出,色差值由下往上是逐渐增加的。默认情况下X0的值是255,X1和的值是0,勾选X0>
,我们只需要改变X0就能选择要找的线。例如当X0设为1时,就是找色差大于1的线,所有线条都满足条件,但是系统默认第一条。如果我将X0设为100,前几条的色差值就小于100,系统就抓到第三条。X0设为255,自然就会抓到最上面的一条。下面两幅图(图二、图三)是将X0值设为1和255的识别结果。
图二、X0设为1
图三、X0设为255
如果改变搜索方向,那么第一条线的色差值就是255,这样不管你将X0设成何值,他都会只找第一条线。下面两幅图是反向后的模板和效果图(图四、图五)。
图四、反向模板
图五、设X0为1的结果
事实上,事实上线条的跳变值并不稳定,加入从一条线跳到另一条线的色差值刚好是240,那么有可能识别时候就有可能出现下面的情况(图六)。要获得稳定的线条,就要将X0的值设为比240 大一些或者小一些。
图六、找错
二、位置
上面提到的对比度是在色差区分度较大的情况下使用,如果很多条线的色差值差不多,那么识别时就有可能找错。这时候就要用到位置工具。
位置工具指的是卡尺线沿搜索方向相反方向的线条到卡尺的距离(单位像素),如下图(图气)红色框所示区域。
图七、位置有效区
下图(图八)是做好的模板,条件是搜索方向由下往上、颜色由黑到白。图八每条黑线宽度20像素,黑线间隙20像素,卡尺与第一条黑线重合。使用位置工具时,系统沿搜索方向从距卡尺线X0距离的地方开始查找,自动选择第一根满足条件的线。
图八、模板
例如X0输入40(单位像素)以下,就只能选择到最上面的一条线(如图九),超过40
就选择下面一条线。依次按40递加就能每次向下选择到下一根。
图九、X0设为0的结果
同样,如果要选择直角,就可以用位置分别选择相应的直角边。下面3个图是选择第三个直角的效果图,图片显示不管图形位置怎么变,都能抓到第三个直角。
三、PositionNeg
相对前两个工具,PositionNeg显得功能稍弱。它是沿搜索方向在卡尺框内抓取第一根符合条件的线。如下图,是做好的模板,条件是由下往上找由黑到白的线。
图十、模板
此时不论X0、X1、怎么设置他都只抓最下面那一条线,下面两图是X0设为0和200的效果图。
以上3种方式是经过试验得出来的,其中可能还有未能详尽的地方。如果以后谁还能进一步试验出其他功能,也可以进一步完善这个文档。