海康visionMaster4.1二维码识别/检测之脚本文件的调试

关键词:脚本文件调试;海康visionMaster4.1;二维码识别

介绍脚本文件调试之前,先说一个“二维码识别”模块的有趣的点。
Tips:“二维码识别”模块的有趣的点

在调试的过程中发现了visionMaster4.1版本中“二维码识别”模块的一个有意思的点(4.2版我没有尝试,不知道是不是这样哈,欢迎交流)。本项目中的图片上通常有2到3个二维码,调试时发现有的二维码识别不到(例如图片中一共三个二维码,只能识别出2个),就想着修改“运行参数”,看能不能有效。如图0,它的基本运行参数如左侧图,高级参数如右侧图。因为本项目中的图片上最多有3个二维码,所以“二维码个数”填了3,极性、边缘类型里面的各种选项都尝试了,高级参数里面的各种选项都尝试了,都不能使原来没识别出的二维码识别出来,最后,你一定猜不到我改了什么,竟然好用了,所有的二维码都能准确识别出来了,哎,笑cry。欢迎评论交流。
在这里插入图片描述
图0

正文:脚本文件的调试步骤

海康v学院官网给了两个基本的关于脚本文件使用和调试的方法,但是不细致,对于第一次调试脚本文件的人来说,还需要更细的调试步骤指导。
下面图1是一个项目检测一摞钢板中最上层的钢板的二维码的部分代码实现。现在以调试“97脚本3”模块为例,说明海康visionMaster4.1软件中调试脚本文件的详细步骤。
在这里插入图片描述
图1
海康visionMaster4.1软件中调试脚本文件的步骤:
(1)先看一下海康v学院官网给出的两个基本的关于脚本文件的使用和调试方法,了解对脚本模块的基本操作,包括对输入变量和输出变量的增加、赋值和使用。
(2)进入正题,首先双击图1中“97脚本3”,按照(1)中的方法按需填写想要的输入变量和输出变量。如图2左侧区域,是我根据我项目的需要填写的变量;
(3)在图2中右侧区域定义变量用来承接刚刚步骤2填写的输入变量。可以注意到,右侧区域定义的变量,与刚刚步骤2填写的输入变量是一一对应的。
在这里插入图片描述
图2
在这里插入图片描述
图3
(4)拉动图2中右侧区滑条,在process函数下用图2中右侧区域定义的变量去承接左侧区添加的输入变量。实现承接的方法是使用其系统提供的Get…value…函数。比如,图2中用右侧in_0去承接左侧in0的方法为GetIntValue(“in0”, ref in_0)。图3中红色矩形框是本项目中相应参数的承接过程。承接之后,in_0就拥有了变量in0的值了,就可以正常使用了。
(5)然后就可以在process()函数中继续编写代码,去实现自己想要的功能。也可以通过vs进行代码的编写与调试,具体步骤为:
(5.1)点击图3中“导出工程”,弹出如下图4的对话框;
(5.2)双击“UserScript_97.sln”,进入vs编辑界面,如图5;
(5.3)双击“UserScript.cs”,然后在process函数编写代码,如图6;
(5.4)然后,在想要调试的代码行增加断点;
(5.5)点击“生成”->”重新生成解决方案”;
在这里插入图片描述
图4
在这里插入图片描述
图5
(5.6)回到VisionMaster界面,关闭脚本文件编辑界面,如图6;
在这里插入图片描述
图6
(5.7)再回到vs界面,点击“调试”->”附加到进程”,得到图7画面;
在这里插入图片描述
(5.8)在图7画面选择“ShellModuleManager.exe”,然后鼠标点击添加。然后关闭“附加到进程”窗口即可。可以看到有两个“ShellModuleManager.exe”,但其后面的ID号不同,其实这两个是分别对应图1中的两个脚本模块的。那么如何确定选择哪个呢?我的经验是,在你整个程序中脚本模块不多的情况下,比如说我这个程序里面只有两个,就可以先随便选一个,尝试一下。我们假设随便选择的这个就是对的,然后继续执行下面步骤。
(5.9)回到VisionMaster界面,如图8,点击1号或2号箭头标记的运行按钮(甚至打开脚本文件,点击图2中右下角的运行按钮也可以,但是为了保证所有数据都是全新的而不是上次执行的某个中间过程的结果对调试产生不明影响,我通常都不这么做,通常我都是点击1号箭头标记的运行俺就)。点击完运行按钮后,切换会vs界面,程序会自动停在断点的位置,如图9所示。如果你在(5.8)步骤中选了错误ID的“ShellModuleManager.exe”,那么程序此时不会自动停在断点,此时去“调试”->”附加到进程”里重新选一下另一个“ShellModuleManager.exe”就好了。注意一定要记得步骤(5.5)”重新生成解决方案”,否则就算你选对了“ShellModuleManager.exe”,程序也不会自动停在断点处。
(5.10)执行完(5.9),就可以在vs里正常调试了。可以编写代码、修改代码、调试代码,指导没问题了,关闭vs界面即可。你在vs里的所有代码修改都是自动同步到图2中脚本文件编写区的(注意一定要”重新生成解决方案”)。
在这里插入图片描述
图8
在这里插入图片描述
图9
(6)想要从脚本模块输出给外部的变量也需要类似上面的承接过程,具体方法海康v学院官网的那两个视频里已经介绍了,即用Set***value类函数即可。这个过程可以在图2画面中完成,也可以直接在vs里完成。
(7)至此,一个脚本文件就写好了。

欢迎前往微信公众号【洞观科研】探讨与交流,也可揭晓tips的答案。

猜你喜欢

转载自blog.csdn.net/u014751362/article/details/129226473