OpenCV简介

xiaohai 2023-07-02 07:52:25 1907人围观 标签: Opencv 
简介OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉处理开源软件库,是由Intel公司俄罗斯团队发起并参与和维护,支持与计算机视觉和机器学习相关的众多算法,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序,该程序库也可以使用英特尔公司的IPP进行加速处理。
一、OpenCV简介

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉处理开源软件库,是由Intel公司俄罗斯团队发起并参与和维护,支持与计算机视觉和机器学习相关的众多算法,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序,该程序库也可以使用英特尔公司的IPP进行加速处理。

二、OpenCV优势
  • 编程语言
    OpenCV基于C++实现,同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Python API,结合了OpenCV C++API和Python语言的最佳特性。

  • 跨平台
    OpenCV可以在不同的系统平台上使用,包括Windows,Linux,OS,X,Android和iOS。基于CUDA和OpenCL的高速GPU操作接口也在积极开发中。

  • 活跃的开发团队
    自从第一个预览版本于2000年公开以来,一直在进行更新。

  • 丰富的API
    完善的传统计算机视觉算法,涵盖主流的机器学习算法,同时添加了对深度学习的支持。

三、OpenCV应用领域

1、人机互动
2、物体识别
3、 图像分割
图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。
4、人脸识别
5、动作识别
6、 运动跟踪
7、机器人
8、运动分析
9、机器视觉
10、结构分析
11、汽车安全驾驶

四、OpenCV-Python

Opencv-Python是旨在解决计算机视觉问题的专用库。
Python是由Guidovan Rossum发起的通用编程语言,很快就非常流行,主要是因为他的简单性和代码可读性。它使得程序员可以用较少的代码行表达想法,而不会降低可读性。与C/C++之类的语言,Python速度较慢。也就是说,可以使用C/C++轻松扩展Python,这使得我们能够用C/C++编写计算机密集型代码并创建可用作Python模块的Python包装器。它给我们带来了两个好处: 首先,代码与原始C/C++代码一样快(因为它是在后台运行的实际C++代码), 其次,在Python中比C/C++编写代码更容易。Opencv-Python是原始Opencv C++实现的Python包装器。

Opencv-Python利用了Numpy,这是一个高度优化的库,用于使用MATLAB样式的语言进行数值运算。所有Opencv数组结构都与Numpy数组相互转换。这也使与使用Numpy的其他库(例如Scipy和Matplotlib)的集成变得更加容易。

五、OpenCV核心模块介绍

Core:核心组件模块

包含:基础结构和操作,动态结构,数组操作,绘图函数,XML等等。

Imgproc:图像处理模块

包含:图像滤波,几何图像变换,混合图像变换,直方图,形状匹配运动分析及目标追踪,目标检测。

Highguii:顶层GUI及视频I/O

包含:用户界面,读写视频,QT新功能。

Video:视频分析

包含:运动分析及目标跟踪。

Calib3d:摄像机标定及三维重建

Features2d:二维特征框架

包含:特征描述和检测,特征提取,角点与匹配等等。

Objdetect:目标检测

包含:SVM及其它分类器

Mi:机器学习

包含:支持向量机,决策树,随机树,最大期望,神经网络,机器学习等等。

Flann:聚类及多维空间搜索

包含:快速最近邻搜索及聚合

GPU:计算机视觉中GPU加速

包含:GPU模块及数据结构,图像分析和处理。

Photo:计算图像

包含:图像修复及去噪。

Stitching:图像拼接

包含:图像拼接,接缝估计,图像融合技术。

Nonfree:付费功能

包含:特征检测与描述相关受保护成果。

Contrib:实验成果

未成熟的理论应用。

Legacy:弃用的成果

包含一些弃用的成果。

Ocl:计算机视觉中OpenCL加速