VM脚本真的好用
9篇
- VM4.2 脚本调用halcon解码
- 浅谈VsionMaster:用脚本最简代码,调用halcon
- 浅谈VsionMaster:用脚本,做一些好玩的东西。
- VisionMaster在脚本更改存图路径
- 脚本输出泛型(数组)的方法
- VM引用自定义dll实现个性化功能(VM4.1)
- 【共享学习】---脚本实现浮点数保留N位小数
- 用脚本调用sdk采集图片
- 【共享学习】---脚本实现修改字符串指定位置字符
海康的VM提供了两种脚本模块全局脚本和脚本。全局脚本可用于控制多流程的运行时序、动态配置模块参数、通信触发等。支持C#语言编写,内部调用算法平台二次开发SDK的C#接口,可对多流程的运行进行逻辑控制,支持全局变量参数的修改,支持接收通信模块中通信设备接收到的数据;而脚本功能可以提供输入接口,然后通过C#简单编程处理输入数据最后传输给输出。
本次案例简单分享一下对于脚本模块的使用,在平常用VM软件获取的float类型的数据是小数点后面4位到6位,但是我想让数据保留小数点后2位或者3位,简单的方法就是利用格式化模块实现小数点保留N位,但是格式化出来的结果为string类型。有时我想要的结果可能还是要float类型的,因此这里就可以引入脚本模块来实现小数点后保留N位。
本次使用的VM版本。如下图所示。
1.首先使用模板匹配获取产品的基本图像信息。如下图所示。
2.添加脚本,编辑脚本。如下图所示。
3.添加输入变量跟输出变量,输入变量(float类型)绑定需要的数据,这里我绑定的是匹配坐标点跟匹配角度。如下图所示。
4.这里定义三个float类型全局变量,只在第一次运行时运行,如下图所示。
5.然后在主函数区域Process()中编写输入变量、处理过程、输出变量等操作代码。
第一部分通过GetFloatValue获取输入变量;第二部分为处理方法:用Math.Round函数处理数据,保留所需的小数点位数;第三部分通过SetFloatValue输出变量outX、outY、outR。如下图所示。
6.完成上述操作,即可获取想要的保留小数点后N位的数据。
这里我再做个引申,上面的数据为单个float数据,如果我的模板匹配匹配了N个产品,那也就是有N组坐标值跟N个角度的数组类型数据,这样的话需要我对N个数组进行操作。
首先要添加一个group模块,绑定匹配模块数据。如下图所示。
需要将循环功能打开
然后在group添加脚本,基础 操作同上面的一样。但是需要将这里全局变量实例化成数组。如下图所示。
最后在for循环里循环获取所有的数组数据。
总结:使用脚本工具可以进行相关复杂的数据处理,可以实现保存图片方法、处理点集合的方法、添加自定义的程序集封装等等,对于有一定编程基础的相对也比较容易上手。本次的分享不光是脚本功能的实现,也包含了group模块的应用,总之需要自己灵活运用不同VM的模块可以达到自己想要的结果。(资料都上传附件了,如有需要可以下载)