专栏名称: 新机器视觉
最前沿的机器视觉与计算机视觉技术
目录
相关文章推荐
机器之心  ·  77万人围观的吉卜力风「游戏」视频,我们用3 ... ·  10 小时前  
宝玉xp  ·  彭博社:Sam ... ·  11 小时前  
爱可可-爱生活  ·  #用音频给生活转个场# #音频充电站# ... ·  2 天前  
AI产品阿颖  ·  让大模型做高考题,结论没那么简单 ·  2 天前  
51好读  ›  专栏  ›  新机器视觉

计算机视觉软件库OpenCV的开发基础介绍

新机器视觉  · 公众号  · AI  · 2025-06-16 16:28

正文

请到「今天看啥」查看全文


2、OpenCV简介

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

OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java and MATLAB/OCTAVE的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ruby等的支持。

图片

OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库。无论你是做科学研究,还是商业应用,OpenCV都可以作为你理想的工具库,因为对于这两者,它完全是免费的。

同时,由于计算机视觉与机器学习密不可分,该库也包含了比较常用的一些机器学习算法,比如图像识别、机器视觉在安防领域有广泛的应用。但很少有人知道,在航拍图片、街道图片(例如google street view)中,要严重依赖于机器视觉的摄像头标定、图像融合等技术。

近年来,在入侵检测、特定目标跟踪、目标检测、人脸检测、人脸识别、人脸跟踪等领域,OpenCV可谓大显身手,而这些,仅仅是其应用的冰山一角。

如今,来自世界各地的各大公司、科研机构的研究人员,共同维护支持着OpenCV的开源库开发。这些公司和机构包括:微软,IBM,索尼、西门子、google、intel、斯坦福、MIT、CMU、剑桥。

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

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

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

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

如果能有一个统一的标准API,将简化计算机视觉程序和解决方案的开发,而OpenCV致力于成为这样的标准API。

OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度(注:OpenCV 2.0版的代码已显著优化,无需IPP来提升性能,故2.0版不再提供IPP接口)。下图为OpenCV与当前其他主流视觉函数库的性能比较。

图片

3、OpenCV内部构成

OpenCV主体分为五个模块 ,其中四个模块如下所示:

图片

OpenCV的CV模块包含基本的图像处理函数和高级的计算机视觉算法。ML是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI包含图像和视频输入/输出的函数。CXCore包含OpenCV的一些基本数据结构和相关函数。

目前,OpenCV的最高版本为OpenCV4.3.0。其中OpenCV3.0和OpenCV2.0的版本相比,改动比较大,主要改动如下:

(1)大体上保留了OpenCV 2经典的C++和Python编程接口风格。其中,Python接口大大增强,也加入了Python 3.x的支持。一般来说,以前版本的程序只要做少数修改,就可以使用OpenCV 3了。另外还改善了Java接口,并且加入了MATLAB支持。

(2)架构调整。图片、视频编解码从highgui模块分离出来,组成了imgcodecs和videoio。原先的OpenCL模块ocl事实上与其 它模块融为一体,而CUDA加速模块gpu分解成了数个以cuda开头的模块。此外,除了官方支持的OpenCV代码,还有一些自发贡献的内容、不稳定的 内容,或者版权尚存争议的内容,都放到了新的仓库opencv_contrib中。

(3)更多新算法。新版本包括了TLD、鱼眼镜头模型等全新算法,还包括了一些更高层次可以直接拿来用的高级封装,比如汽车检测等。







请到「今天看啥」查看全文