【共享学习】---脚本实现浮点数保留N位小数
本次内容简单分享一下我在项目中对于脚本模块的使用,

    海康的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的模块可以达到自己想要的结果。(资料都上传附件了,如有需要可以下载)

附件:
版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

VM重现经典halcon液位检测案例

下一篇

VM二次开发小技巧—快速匹配模板切换

评论请先登录 登录
全部评论 4

大佬,很详细

2024-02-02 16:43:22 浙江省
回复

干货满满,专业

2024-01-02 17:20:58 浙江省
回复

格式化之后脚本直接调用格式化数据,直接string转float也行。

2023-09-18 08:35:10 天津
回复

不需要set value了,直接=就行。4.2版本就可以直接=了。

2023-09-18 08:31:26 天津
回复
  • 1
Lv.0
2
关注
51
粉丝
9
创作
176
获赞
所属专题
  • VM4.2 脚本调用halcon解码
  • 浅谈VsionMaster:用脚本最简代码,调用halcon
  • 浅谈VsionMaster:用脚本,做一些好玩的东西。
  • VisionMaster在脚本更改存图路径
  • 脚本输出泛型(数组)的方法
  • VM引用自定义dll实现个性化功能(VM4.1)
  • 【共享学习】---脚本实现浮点数保留N位小数
  • 用脚本调用sdk采集图片
  • 【共享学习】---脚本实现修改字符串指定位置字符
相关阅读
  • PCB行业&PCB板贴标定位项目
    2024-04-28 浏览 0
  • 双车联动调试案例-华工中试基地
    2024-04-28 浏览 0
  • VM虚拟机部署欧拉系统及磁盘扩容
    2024-04-25 浏览 0
  • 【光电传感器基础】—3、光电传感器的基本操作和效果演示
    2024-05-15 浏览 0
  • 第二届启智杯-小样本计数-新疆核桃小队
    2024-05-08 浏览 0

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器