海康VisionMaster 以后简称VM。
我认为,VM设计的很不错。但是VM的帮助文档,例程。是相当的草率。完全是应付的结果。
所有我在这里,开一个系列,对一下常用的算子,进行讲解,以及应用场景的介绍。
VM 合计100多个算子工具。我会按照我的理解。进行分类讲解。
1) 通信类: 数据接收,数据发送,协议解析,通信管理,触发工具。
2) 逻辑流程类: 条件检测,分支模块,条件分支,循环。
3) 定位类:匹配,位置修正。
4) 找点找边缘类:找圆,找直线等
5) 计算类: 点点,电线,线线 等测量。直线,圆拟合。角平分线,垂线计算。旋转计算。
6) 标定:N点标定,标定板标定。
7)辅助类:格式化,几何创建,以及渲染显示设置。
8) 独立工具类:条码检测,字符缺陷检测。还有深度学习也属于这一类
9) 图像处理类:图像运算,颜色, 形态学 等。
1)通信类:这类算子无关图像处理,我觉得关键是要理解二进制。理解了二进制,通信方面的各种问题都好理解。我在以前的帖子,写过。这里就不重复了。下面哟链接。
3 海康视觉平台VisionMaster 上手系列:通讯_HuangGong2022的博客-CSDN博客
2) 逻辑流程类:指的是,你花逻辑流程图的时候,需要用到:顺序执行,条件执行,循环执行。对应算子。这类算子,也无关图像处理。但是很重要。做个比喻,通信,逻辑工具就是用来搭建视觉程序骨架的。它是程序的最基础。各种巧妙的图像算法,属于皮囊,外表。骨架出了问题,再好的皮囊。也终究是残疾。所以,一定不要看不上,这些基础。
我认为VM设计的好。很重要一点,就是VM搭建通信,逻辑流程很方便。编写程序流程,就像编写详细ppt的流程图,一模一样。
a,顺序执行:VM的模块执行顺序,是根据箭头方向来的,直接就可以看出来,非常直观。
b,条件执行:就是流程图的判读(ppt的流程图中的 菱形),根据条件是否成立,让流程往不通的方向走。如下图1所示 通过 <条件检测> 这个工具模块,可以对多条件进行 与,或,非,条件汇总。
如下图所示, 使用<分支模块> 可以根据前面 <条件检测>的结果,进行多分支选择。
以上,就是对条件执行的,最基础的使用。
c,循环执行:如下图所示,VM循环是通过gruop来实现的。对应的工具<Group>
点击小扳手图标,可以设置 循环使能。 可以设置循环条件。
双击Group图标,可以进入编辑循环内容。循环内,是一个完整的流程。可以编辑任意流程。
我对循环使用的建议是,能不用循环,就不用循环。原因是Group模块有bug。
其一,group开启循环后,无法进行单步调试。 对调试非常不友好。
其二,单group内部异常,导致无法终止循环的时候,程序就卡死了。不能在外面强制终止循环。只能强制退出程序。
在大部分情况下,可以用流程自己触发自己的方式,实现循环。
只有一种情况下,必须使用循环:模板匹配多个对象,要对多个对象做相同的处理时候。
只有这个情况下,必须使用group循环。建议,调试的时候把循环关了。手动传入模板对象的序号来调试。
以上就是本贴的全部内容。下一贴继续。
PS:
通信,逻辑流程,是视觉程序的骨架。一定要掌握牢固。不要因为简单而看不上。结果就是做项目的时候,浪费大量时间排查流程逻辑,通信异常。
就像是小学生学习数学,先把四则运算,99乘法表掌握。不要留个尾巴。别等学解方程式的时候,还老是运算错误。