C#VisionMaster算子二次开发(非方案版)
前言
在网上VisionMaster的教程通常都是按照方案执行的形式,当然海康官方也是推荐使用整体方案的形式进行开发。但是由于我是做标准设备的,为了适配原有的软件框架和数据结构,就需要将特定需要使用的算子进行二次封装。最直接的好处是,可以将算法嵌入到现有的软件框架中,并不需要大量动框架,而且在设备中要求大量的重复运算,方案的形式也减小了运行速度。
本博客只是作为介绍和引导,需要源代码可以直接克隆GitHub仓库,或者访问我的CSDN的Git仓库,不过主要在GitHub上更新,CSDN可能开时间安排。现在暂时已经适配在使用的只有模板匹配和二维码检测算法,后续算法,根据实际使用再加。
CSDN:https://gitcode.com/m0_51559565/TestVisionMaster.git
GitHub:https://github.com/2825077535/TestVisionMaster.git
一:开发文档
再安装好VisionMaster后,再安装目录下会有Net版的算子手册
二:编写代码
一般情况下来说,海康的算子主要分为几个使用类,其中工具类作为运行类,参数描述类,结果类3大部分。
以模板匹配为例子。
模板匹配的运行类是CContourPatMatchTool,运行类中必然会有一个RUN的执行方法。可以把VisionMaster的UI界面理解为一个运行类。在这个类中会提供传入图像,ROI,参数,结果,4大模块的信息。
由于海康的算法,都是类似的,所以这里只是简单标注一下,需要详细理解可以克隆我的GitHub的仓库详细查看。
注意事项
1.首先加载图像时,海康支持文件读取,海康相机数据结构,Bitmap格式。其中Bitmap格式尤其容易踩坑。我们使用的图像处理格式通常都不是Bitmap格式,一般来说是OpenCV的Mat格式或者Halcon的HObject格式。在这些格式转换为Bitmap时,需要注意Bitmap的图像是否转换成功,由于转换Bitmap时需要手动重绘图像,如果强制转换格式的话,虽然格式是对的,但是实际图像却是有异常的。
寄语
克隆代码库时,不妨在GitHub点个星星。