购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.6 OpenCV概述

OpenCV(Open Source Computer Vision Library,开源计算机视觉库)是一个基于BSD许可(开源)发布的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法,属于轻量级的、非常高效的软件库。

OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令,如今也提供对于C#、Ch、Ruby、GO的支持。

OpenCV提供的视觉处理算法非常丰富,并且部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持,也可以完整地编译链接生成执行程序,所以很多人用它来做算法的移植,OpenCV的代码经过适当改写可以正常运行在DSP系统和ARM嵌入式系统中。

OpenCV是一个跨平台的计算机视觉库,目标是实现实时计算机视觉,也就是用摄像机和计算机代替人眼对目标进行识别、跟踪以及测量等,并进一步做图像处理。图像处理(Image Processing)又称为影像处理,是用计算机对图像进行分析,以达到所需结果的技术,一般包括图像压缩、增强和复原,以及匹配、描述和识别。目前所说的图像处理一般是指数字图像处理(Digital Image Processing)。计算机视觉与图像处理的区别主要在于:计算机视觉的侧重点在于使用计算机来模拟人的视觉,对客观事物进行“感知”;图像处理的侧重点在于“处理”,提取所需要的有效信息。这两者相辅相成,使得机器可以在一定程度上模拟人的一些行为,使机器更加人性化、智能化。

开源特性以及强大的社区支持使得OpenCV发展极其迅速。OpenCV 1.0正式版本于2006年发布,可以运行在Mac OS以及Linux平台上,但是主要提供C的接口。OpenCV 2.0版本于2009年发布,代码已显著优化,同时带来了全新的C++函数的接口,将其能级无限放大,使开发者使用更加方便;另外,增加了新的平台支持,包括iOS和Android,通过CUDA和OpenGL实现了GPU加速;在编程语言方面,还为Python和Java用户提供了接口。2014年8月,OpenCV 3.0 Alpha发布,重大革新之处在于OpenCV 3.0改变了项目架构的方式。之前的OpenCV是一个相对于整体的项目,各个模块都是以整体的形式构建然后组合在一起;OpenCV 3.0抛弃了整体架构,使用内核+插件的架构形式,更加轻量化。OpenCV随着工业4.0与机器人无人机发展已经在应用领域得到了广泛应用,有越来越多的从事机器视觉与图像处理的开发者选择OpenCV作为开发工具。

计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:

(1)研究派代码(慢,不稳定,独立并与其他库不兼容)。

(2)耗费很高的商业化工具(比如Halcon、MATLAB+Simulink)。

(3)依赖硬件的一些特别的解决方案(比如视频监控、制造控制系统、医疗设备)。

标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API。

OpenCV致力于真实世界的实时应用,通过优化C代码提升其执行速度,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。

OpenCV的应用领域非常广泛,比如人机互动、物体识别、图像分割、人脸识别、动作识别、运动跟踪、机器人、运动分析、机器视觉、结构分析、汽车安全驾驶、军工、卫星导航等。可以说学好OpenCV后就业和职业发展前景非常广阔。 FupplY2Jn/IFR2DLzL1FU14FHqOE+SJyGQznE5DLdTlkGo3cwELEWnL/E5AtQTOf

点击中间区域
呼出菜单
上一章
目录
下一章
×