4.3.1 联合开发:集成HALCON第三方算子到VM工具箱的方法
描述
环境:VM4.0及以上 + VS2013
问题:有的用户在使用VisionMaster软件在开发视觉项目时,可能同时也使用HALCON,OpenCV等视觉算法库做一些图像的处理,并且希望能将HALCON等第三方算子集成到VM工具箱,能够在VM工具箱中拖拽出来,就像VisionMaster中的其他算法模块工具一样,可以通过弹出窗口配置运行参数,通过连线订阅其他模块传递的参数,设置ROI,通过图像窗口查看算法直接结果的渲染效果。实际上是可行的,VisionMaster是一个开放平台,可以接入第三方生态,这也是VisionMaster的一大亮点。这里以封装HALCON的动态阈值算子Dyn_Threshold来举例说明如何集成第三方算法库中的算子到VM工具箱中。
解答
1 开始之前的准备工作
在编写自定义算子之前,首先必须了解以下几个概念:
1.1 VM软件中所有的算法模块工具的参数调试界面都是依赖XML文件,VM软件在启动时会在加载工具的XML配置文件,根据XML配置文件配置的输入输出参数来呈现用户界面。每个算法模块的XML配置文件存放在VM安装目录下的Module(sp)文件夹内,例如,以高精度匹配为例,XML配置文件存放在下面的目录:(打开XML文件夹的快捷键方式:在VM中选中模块后,点击Ctrl+m) C:\Program Files\VisionMaster4.0.0\Applications\Module(sp)\x64\Location\IMVSHPFeatureMatchModu,其中Location是表示在工具箱的定位工具组。
1.2 算法模块的输入输出是由基础的数据类型组成,例如Int,Float,string, bool, enum类型等。
对应的在该模块的XML文件中,是由XML的树形节点来描述的。
在XXXAlgorithmTab.xml(XXX指代模块的名称)文件中的Tab_Run_Params(模块运行参数)中可以找到对这些运行的参数的描述。如下图所示:
1.3 算法模块一般都要包含ROI输入,模块是否要接受ROI输入,位置修正由XML配置决定。