2.3 视觉软件
软件平台生成的应用程序可以通过控制整个视觉系统来获取目标的图像信息,对该图像进行信息提取需要一定的功能函数和算子,那么,就需要包含大量功能函数的工具包。下面对目前机器视觉领域常见的视觉软件进行介绍。
1.HALCON
HALCON是德国MVTec公司开发的一套完善的、标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它降低了产品成本,缩短了软件开发周期。HALCON灵活的架构便于机器视觉、医学图像等图像分析应用的快速开发。HALCON在欧洲及日本的工业界已经是公认的具有最佳效能的机器视觉软件[15]。
HALCON源自学术界,它有别于市面上一般的商用软件包。事实上,这是一套图像处理库,由一千多个独立的函数及底层的数据管理核心构成,其中包含了各类滤波、色彩及几何、数学转换、形态学计算分析、校正、分类辨识,以及形状搜寻等基本的几何及影像计算功能。由于这些功能大多并非针对特定工作设计,因此,只要用到图像处理的地方,就可以用HALCON来完成。其应用范围涵盖医学、遥感探测、监控,以及工业上的各类自动化检测。
HALCON支持Windows、Linux和Mac OS X操作环境,整个函数库可以用C、C++、C#、Visual Basic和Delphi等多种普通编程语言访问。HALCON为大量的图像获取设备提供了接口,保证了硬件的独立性。它为百余种工业相机和图像采集卡提供了接口,包括GenlCam、GigE、1394、USB3.0等。
2.VisionPro
VisionPro是美国康耐视推出的图像处理工具包,是一套基于.NET的视觉工具,适用于包括FireWire和CameraLink在内的所有硬件平台。这套先进的视觉工具具有可轻松进行设置的图形开发环境,支持Windows系统,以及Visual Basic和C#等编程语言[16]。
用户可以访问功能较强的图案匹配、斑点、卡尺、线位置、图像过滤、OCR和OCV视觉工具库,以及进行一维条码和二维码的读取,以实现各种功能,如检测、识别和测量。
3.OpenCV
OpenCV是一个用于图像处理与分析、机器视觉方面的开源函数库[17]。它采用C和C++语言编写,支持Python语言,可以运行在Linux、Windows、Mac等操作系统上。OpenCV包含常用的图像处理算法,同时对机器学习与深度学习支持良好,非常适合用于科研领域。
4.MATLAB
MATLAB是由美国MathWorks公司发布的主要面向科学计算、可视化及交互式程序设计的高科技计算环境。MATLAB可进行矩阵运算、函数绘制、算法实现、用户界面创建、与其他编程语言的程序连接等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。
另外,MATLAB网页服务程序还允许用户在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每个工具箱都是为某一类学科专业和应用定制的,可用于信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面。
MATLAB因为其商业软件属性,授权费高,运行效率低,很少用于工业编程,更多地用于科学研究领域。