OpenCV | Halcon | |
开发语言 | C++、C#(emgu)、Python、Ruby、MATLAB等语言 | C,C++,C#,Visual basic和Delphi等语言 |
应用场合 | 侧重计算机视觉领域,侧重研究领域 | 侧重机器视觉领域,侧重应用领域 |
费用 | 免费 | 收费 |
开放性及版本更新速度 | 开源(可看底层源码),版本和功能更新慢 | 商业软件(底层代码封装),版本和功能更新快 |
对使用者的门槛 | 偏科研,有难度,有深度,完全从底层开发,对使用者门槛高,开发效率低,开发慢 | 偏工程应用,使用封装好的功能函数,对使用者门槛低,开发效率高,开发快 |
资料及技术支持 | 资料少。遇到问题,难以获得技术支持 | 资料多。遇到问题,可以及时、有效的获得技术支持 |
Halcon:在工业视觉领域属于经常使用的软件,相对于opencv的开源精神Halcon属于商业非开源项目并且收费。Halcon起源于德国在国内的工业视觉领域市场占用率遥遥领先。作者在使用halcon的过程中也感受了其软件的人性化,有独立的调试编程环境。对应主流的语言C#、C++、VB等工业上常用的语言都能提供流程的调用。
Halcon提供的每一年都有升级,在升级的过程中算子的速度更快能达到汇编级别的加速度,对比opencv在总体的算子性能领先程序在五到十年。与此同时Opencv在调试的过程中没有Halcon方便,opencv的使用需要用户有比较好的编程基础,并且图像并不是实时能够观察调整。
Opencv:计算机图像方面的图像库,开源的,可以用于商用,在很多高校和科研机构使用比较多,更多的人选择它,是为了写自己的算法,其调试不像Halcon那样方便,其项目开发周期也比Halcon要长,所以在工业应用上,还不是太多。
所以,如果你是搞算法的,并且项目周期长,公司不愿意购买/使用商业视觉软件的,可以考虑Opencv;如果你的项目周期短,公司可以承受商业软件的成本,选择Halcon会是比较明智的选择。
Halcon:底层功能算法多,运算性能快,开发需要一定软件功底和图像处理理论。快速学习的做法:研究实例、做实战项目。halcon不能提供相应的界面编程需求,需要和vs来构造界面,才能构成一套完整软件。
目前视觉检测需求主要有二维三维
二维:(1)识别定位;
(2)OCR识别;
(3)二维码识别;
(4)测量;
(5)缺陷检测;
三维:(1)多目标定
(2)三维重建
(3)三维匹配等
本文仅做学术分享,如有侵权,请联系删文。