机器视觉/图像处理可能用到的三方库(各个库的优缺点)
整理目前我所了解的视觉库,常用的,整理。机器视觉处理软件:用来完成输入图像数据的处理,通过一定的运算得出结果,这个输出的结果可能是PASS/FAIL信号、坐标位置、字符串等。
常见的机器视觉软件以C/C++图像库,ActiveX控件,图形式编程环境等形式出现,可以是专用功能的(比如仅仅用于LCD检测,BGA检测,模版对准等),也可以是通用目的的(包括定位、测量、条码/字符识别、斑点检测等)。
主流的机器视觉软件有:侧重图像处理的图像软件包Opencv,Halcon、美国康耐视(Cogrex )的 visionpro,医学领域常用的ITK和VTK;侧重算法的matlab,labview;侧重相机SDK开发的eVision等。
目录
一、机器视觉图像处理软件包(算法库):
二、国内机器视觉处理软件:
四、机器视觉软件具体对比及分析
五、国产机器视觉软件:
六、总结
一、机器视觉图像处理软件包(算法库):
1、 美国 Opencv------------------由美国Intel公司建立,如今由Willow Garage提供支持
2 、德国 Halcon-------------------德国 Mvtec 公司
3 、加拿大 MIL---------------------加拿大的Matrox Imaging Library(缩写为MIL)
4、 美国 visionpro-----------------美国康耐视(Cogrex )
5、 日本 vision editor--------------日本基恩士(keyence)
6、加拿大 HexSight----------------加拿大Adept公司
7、加拿大 Sherlock-----------------加拿大Dalsa
8、美国 NI Vision-------------------美国国家仪器(NI)公司,基于LabVIEW
9、美国Microscan(迈斯肯MS)---美国欧姆龙迈思肯公司(Omron Microscan)
10、美国 IM------------------------开源库
11、医疗领域的-----------------ITK和VTK
二、国内机器视觉处理软件:
1 SciSmart 智能视觉软件 SciVision 视觉开发包---------深圳奥普特(OPT)
2 VisionWARE视觉软件----------------------------------北京凌云光
3 Visionbank机器视觉软件-------------------------------陕西维视图像
4 OpencvReal ViewBench(锐微或力维)-----------------深圳市精浦科技有限公司
三 、机器视觉软件整体对比
----halcon功能最强大,visionPro简单易用,opencv开源最省钱,mil便宜。
----Halcon、visionPro一套电脑运行正版的要一万五(15K)左右,MIL的定位模块才两千(2K)左右。每种软件各有自己的技术优势,有些是定位强,有些在于图像预处理更强。某款软件无法实现的功能,换另一款软件则有可能实现。
功能对比:
Labview:在工控方面可以说首屈一指,当然在检查、定位方面比较擅长;
Opencv:在识别方面做的比较好,比如人脸识别、视频识别等等;
Halcon:在尺寸测量方面,感觉Halcon做的比较好,其标定封装的比较好,测量直接可以出来尺寸,还是很方便的;
VTK和ITK:如果是做医学图像处理的话建议用ITK+VTK,ITK做底层图像处理算法,VTK做可视化显示,ITK和VTK中间用itkImageToVTKImageFilter ITK/Examples/ItkVtkGlue/itkImageToVTKImageFilter /itkVTKImageToImageFilter ITK: itk::VTKImageToImageFilter< TOutputImage 类进行格式转换。
推荐一个VTK博客:东灵工作室
ITK有用的网站:https://www.insight-journal.org/
四、机器视觉软件具体对比及分析
1、美国 Opencv--------------由美国Intel公司建立,如今由Willow Garage提供支持
----Opencv-好处是开源免费图像处理库。缺点是没人长期维护,可靠性,效率,效果和性能不如商业化软件,而且没有技术支持,开发慢,需要自己从头开始摸索。
----Opencv定位模板做的不好,简单的应用用用就行了。
----主要应用于计算机视觉领域,在机器视觉领域其实不算太多,主要还是定位、测量、外观、OCR/OCV,但感觉这几项都不是opencv的专长。
----由于是开源软件,因此其版本繁多,函数库复杂,执行效率受到应用限制,比较适用于科研和学习,不适合工业应用。
----部分公司支持用OpenCV库开发,如美国WillowGarage公司、德国Kithara公司、美国国家仪器(NI)公司和新西兰ControlVision公司。
2 、德国Halcon---德国 Mvtec 公司
----功能最强大最牛,开放性强、有试用的 license、提供超过 1000 个算子 。
----Halcon是一套标准的机器视觉算法包,架构最灵活,具有自己独特底层的数据管理。
----使用 halcon 开发软件,节约产品成 本,缩短开发周期,应用范围广,用到图像处理的地方,都可以使用 halcon;
----包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能。
----HALCON 支持 Windows,Linux 和 Mac OS X 操作环境。整个函数库可以用 C,C++,C#,Visual basic 和 Delphi 等多种普通编程语言访问。HALCON 为大量的图像获取设备提供接口,保证了硬件的独立性。它为百余种工业相机和图像采集卡提供接口,包括 GenlCam,GigE 和 IIDC 1394。
----缺点:价格比较贵,运行版要一万七,每次分发需要重新购买授权。
3 、加拿大MIL----加拿大maxtrox的产品Matrox Imaging Library(缩写为MIL)
----如果大家想用正版的又要便宜的,建议用MIL,MIL的定位模块才2K左右。
----好处是MiL是免费的,性价比不如 visionPro,halcon 以及 Sherlock,而 且没有几何定位 。
----早期推广和普及程度不错,当前主要用户还是早期做激光设备的,用于定位的较多。
4、 美国visionpro-----美国康耐视(Cogrex )
----工业化、封装、人性化、评估的便捷性、开发的快速性。
----取消了软件授权的形式,硬件授权价格在1.5万-3万不等。
----性能上某些方面不如halcon,但是开发上手比halcon容易。
5、 vision editor-------日本基恩士(keyence)
6、加拿大 HexSight------------加拿大Adept公司
----功能强大的定位器工具能精确地识别和定位物体,不论其是否旋转或大小比例发生变化。
----HexSight是世界上第一个做到1/40亚像素精度的视觉软件,其特点是精度高、定位识别速度快、对环境光线等干扰不敏感、检测可靠性极高,
HexSight 的定位技术
----HexSight的定位工具是根据几何特征,采用最先进的轮廓检测技术来识别对象和模式。这一技术在图像凌乱、亮度波动、图像模糊和对象重叠等方面有显著效果。HexSight能处理自由形状的对象,并具有功能强大的去模糊算法。HexSight快速,在一台2GHz 的处理器上,一般零件寻找和定位不超过10ms,并可达到1/40亚像素位置重复精度和0.01度旋转重复精度。此外HexSight有丰富但易用的图像标定工具,而且它的定位器可以方便嵌入到OEM的产品中。
7、加拿大 Sherlock------------加拿大Dalsa
- ---评估非常快捷,类似于计算器模式,所见即所得
8、美国 NI Vision---------------美国国家仪器(NI)公司,基于LabVIEW
----NI Vision,快速验证的图像处理库(含视觉助手、VBAI)
----NI的优点:LabVIEW平台入门相对简单;
开发速度快;在可配置环境和全面的编程库中作出选择,更好地满足需求并快速启动;
对于自动化测试大多数需要的软硬件都有解决方案,有点软件图形化编程,上手快,开发周期短。
可与所有的硬件组合配合使用,兼容性良好,从而方便地使用现有的代码,管理和维护多个硬件系统。
----缺点:LabVIEW平台下的算法的效率不够;算法的准确性与稳定性依赖与更好的图像素质,与其它算法(如Halcon)还是有一定的差距。并不是每个软件都非常厉害。
----总结:
适合于做效率要求不太高,图像质量相对比较好,且交货周期较短的项目。
视觉工具包的优势是售价比大多数工具包或者算法的天文数字便宜了不少,而且整个工具包一个价格,而不是一个算法一个算法地卖,性能方面在速度和精度没有halcon好。
9、美国Microscan(迈斯肯MS)---美国欧姆龙迈思肯公司(Omron Microscan)
----欧姆龙迈斯肯的视觉主要产品还是条码阅读一类
10、VTK软件可以参考目前市面软件(paraview)因为主要是展示作用,ITK是算法处理。关于医学方面处理其实还有其他库可以参考(CMake, ParaView, VTK, ITK, 3D slicer)
推荐一个网站:Kitware Inc. - Delivering Innovation - Customized Software Solutions for Complex Scientific Challenges ,安装使用教程:ITK和VTK比较_Florence_Janie的博客-CSDN博客_itk vtk
五、国产机器视觉软件:
1 SciSmart 智能视觉软件 SciVision 视觉开发包---------深圳奥普特(OPT)
优点:做苹果手机项目(富士康),拥有数十人的软件开发及定制化应用团队,定制化开发应用能力比较强,在手机、电子等行业优势较大。
2 VisionWARE视觉软件----------------------------------北京凌云光
优点:在印刷品检测方面优势较大,做钞票印刷检测。在比较复杂的印刷品反光、拉丝等方面算法比较可靠,漏检率低。
3 Visionbank机器视觉软件-------------------------------陕西维视图像
优点:
----部分测量和缺陷检测功能较好用,易上手,不需要任何编程基础,能非常简单快捷地检测出来。
----达到四分之一亚像素,和haLcon精度差不多。
----图像预处理:把不需要的颜色处理掉,能处理掉色差非常接近的颜色,功能非常强大。
缺点:印刷品字符识别能力一般,有漏检。
4 OpencvReal ViewBench( 利维)-----------------深圳市精浦科技有限公司
----RVB包含各种Blob分析,形态学运算,模式识别和定位,尺寸测量等性能杰出的算法,提供不同形状关注区(Region ofInterest, 简称ROI)操作,可以开发强大的视频人机界面功能。
----RVB与图象采集设备如CCD相机无关,目前支持多种厂家的相机,接口包括USB2.0/3.0, GigE,1394a/b,如有更多相机接口要求,可以为客户免费定制。
六、总结
目前市面上常用的机器视觉或者图像处理软件:
ITK和VTK:医疗图像处理(医疗图像特征,分割三维建模)
工业检测:halcon、Visionpro(缺陷检测,定位,测量)
通用视觉库:Opencv(如人脸识别,指纹等)
————————————————————————————————————————
机器视觉/图像处理可能用到的三方库(各个库的优缺点)相关推荐
- 《转贴》机器学习 机器视觉 图像处理 牛人牛站
<转贴>机器学习 机器视觉 图像处理 牛人牛站 转贴:看到的一个来源是http://blog.sina.com.cn/s/blog_631a4cc40101d00t.html,不确定是否是 ...
- 软件自动化测试图片,常见的机器视觉图像处理软件自动化检测软件介绍
原标题:常见的机器视觉图像处理软件自动化检测软件介绍 免编程VisionBank SVS机器视觉软件 免编程的机器视觉软件VisionBank SVS,其工具库能够满足各种视觉需求,从几何物品的定位和 ...
- 图像处理---《在图片上打印文字 FreeType库》
图像处理---<在图片上打印文字 FreeType库> 目的:想在处理之后的图像上打印输出结果. 方法: (1)只在图像上打印 数字.字母的话: 1.Mat ...
- 2021-11-16施努卡:机器视觉集成系统(机器视觉图像处理系统包括)
机器视觉系统集成发展的现状和前景 机器视觉系统集成是一门学科,随着新成像技术的不断发展,这门学科的发展势头依然强劲 自从35年前广泛使用的商业组件被引入以来,熟练地将机器视觉集成到自动化应用程序中一直 ...
- 砥砺的前行|基于labview的机器视觉图像处理|NI Vision Assisant(四)——Color(彩色图) 功能
文章目录 一.界面介绍 二.功能介绍 2.1 Color Operators 彩色运算 2.2 Extract Color Planes 抽取彩色平面 2.3 Color Threshold 彩色阈值 ...
- Python|http|Chrome Developer Tools|Postman|HTTPie|builtwith库|python-whois库|爬虫及解析|语言基础50课:学习(10)
文章目录 系列目录 原项目地址 第31课:网络数据采集概述 爬虫的应用领域 爬虫合法性探讨 Robots协议 超文本传输协议(HTTP) 相关工具(Chrome Developer Tools.Pos ...
- matplotlib如何绘制两点间连线_机器学习:Python常用库——Matplotlib库
说起数据分析,你的眼前有没有浮现出直方图.散点图.曲线图-各种图表? Python作为一门编程语言,如何能作图呢? 办法当然是有的,而且我们已经接触过了.在上一章节中画散点图的时候就导入过,它就是Ma ...
- Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明
本文描述的是windows系统下,通过qtcreator在pro文件中添加动态库与静态库的方法: 1.添加动态库(直接添加动态库文件.dll,非子项目) 通过qtcreator创建动态库的方法就不在此 ...
- iOS架构-C/C++lame库在Mac下编译通用静态库.a库(13)
C/C++ 有很多成熟的库,还有很多特殊功能的库,有时候iOS 平台开发一些比较前沿或者冷门的功能时,iOS并没有提供解决方案,这时候就可以研究C/C++的一些库,为我们使用.但是在Xcode编译C/ ...
最新文章
- vue-router使用入门
- VB.NET 委托处理 传递参数
- GDCM:gdcm::TransferSyntax的测试程序
- adb shell 调试 Android 串口
- [css] 请使用css画一个圆,方法可以多种
- 暗藏 15 年,Linux 惊曝 3 大 Bug 直取 root 权限!
- excel服务器bom修改,物料清单BOM表的实现方法_勤哲Excel服务器 - 勤哲app应用之家...
- 【吐槽】那些让人“口吐芬芳”的App登录骚操作
- bootstrap 实现吸顶效果_多种方式实现吸顶效果
- 一文读懂分布式任务调度平台XXL-JOB
- dB、dBm、dBw的含义和转化关系
- Gearman中文手册技术文档分享chm
- android夜间模式监控
- 查看英伟达Nvidia显卡、cuda版本
- 模拟QQ软件的基于多线程的流媒体加密传输软件技术
- 如何修改ICO文件的尺寸
- 斯坦福CS234增强学习——(1)简介
- Kibana可视化界面操作
- 线性空间,线性子空间,基与维数
- Flare Network,跨越互操作性三难困境