文章目录
- 前言
- Halcon+C#教学
- 简单说明如何二开机器视觉
- 如何二次开发Halcon
- 导出Halcon脚本
- 新建WPF项目,导入Halcon脚本和Halcon命名空间
前言
我目前搜了一下我了解的机器视觉软件,有如下特点
优点 | 缺点 | 兼容性 | 教学视频(B站前三播放量) | |
---|---|---|---|---|
OpenCV | 开源,免费,因为有源码所以适合二次开发 | 学习成本极高,卡学历。研究生博士起步 | 底层使用C++,可以使用Python或者C#调DLL | 300w/95w/60w |
Halcon | 商用,功能全面,已经训练好了算子(就是第三方接口) | 认证成本高,正版需要1.1W美元 | 支持C,C++,C#。 | 30w/25w/20w |
VisionPro | 商用,比Halcon便宜一些,简单点 | 性能差点,功能差点 | C++,C# | 25w/25w/20w |
VisonMaster | 海康威视开发,加密狗最便宜,低代码开发 | 不了解 | C++,C# | 7w/5w/2w |
VisionPro和Halcon 的详细对比
简单来说,OpenCV开发用,商用就Halcon/VisionPro/VisionMaster。由于教学视频的原因,我们排除教学视频和外企不用的VisionMaster。然后就是Halcon和VisionPro的选择了。
两个的区别就是Halcon功能全,VisionPro便宜简单。我这里选择Halcon,还有一点就是Halcon继承C#的比较多。
Halcon+C#教学
架构师带你C#联合halcon编程系列
WPF/HALCON机器视觉合集
C#与 Halcon 联合编程
简单说明如何二开机器视觉
我听说目前有两种方法
优点 | 缺点 | |
---|---|---|
先开发好脚本,直接调用 | 算法和业务完全分离 | 灵活性不足 |
直接调用算法库 | 十分灵活 | 没有算法官方平台开发方便 |
如果是二次开发,那么直接用C/C++是最好的,因为底层代码都是C/C++写的,理论上最优解为QT。但是由于C/C++ 极高的学习成本和开发成本。C#/Python去调用DLL也是个不错的方式。Python(我个人不喜欢他的语法)主要用于研究,C# 有Winfrom/WPF 界面,自身的生态,是最适合用来做快速二次开发的载体
如何二次开发Halcon
首先,现在Halcon开发平台上将代码调试成功,简单来说就是得到一个图像识别的Halcon脚本。什么脚本都可以
我们这里使用的是我们上期视频添加的脚本
Halcon WPF 开发学习笔记(1):Hello World小程序
我们得到一个可以标记特殊点位的Halcon脚本
导出Halcon脚本
新建WPF项目,导入Halcon脚本和Halcon命名空间