OpenCV-Python学习(1)—— OpenCV历史与安装

2022-09-30 08:37:14 浏览数 (1)

1. OpenCV 介绍

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C 语言编写,它具有C ,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

2. OpenCV 发展历史

时间

发布版本

1999年

CVL项目启动。主要目标是人机界面,能被UI调用的实时计算机视觉库,为Intel处理器做了特定优化。

2006年

支持Mac OS的OpenCV 1.0发布。

2009年

Version 2.0发布。

2015年

发布OpenCV 3.0。

2018年

发布OpenCV 4.0。

2022年4月

发布OpenCV 4.5.5。

注意

OpenCV 1.0版本和OpenCV 2.0版本差距比较大;OpenCV 2.0版本和OpenCV 3.0版本近似;OpenCV 3.0版本和OpenCV 4.0版本差距比较大。因此开始需要找到python对应版本的OpenCV版本。

3. OpenCV 模块

1. OpenCV 主要模块

模块

介绍

ml

机器学习库(Machine Learning Library, MLL)是一组可用于分类、回归和聚类目的的类和方法

calib3d

摄像机标定和三维重建,包括基本的多视点几何算法、立体匹配算法、目标姿态估计、单摄像机和立体摄像机标定以及三维重建

features2d

二维特征框架,该模块包括特征检测器、描述符和描述符匹配器

objdetect

目标检测,检测预定义类的对象和实例(例如,人脸、眼睛、人和汽车)

stitching

图像拼接,实现了一个自动拼接全景图像的拼接流水线

photo

计算摄影,提供一些计算摄影的函数

dnn

深度神经网络(Deep neural network, DNN)模块,本模块包含以下内容:用于创建新层的API、一组预定义的常用层、从层构造和修改神经网络的API、从不同深度学习框架加载序列化网络模型的功能等

Core

核心模块,是定义基本数据结构的模块,也包括库中所有其他模块使用的基本函数

Imgproc

图像处理模块,包括图像滤波、几何图像变换、颜色空间变换和直方图

Imgcodecs

图像文件读写

HighGui

高级GUI,提供UI功能的接口,可以执行以下操作:创建和操作可以显示的窗口、将滑动条添加到窗口、键盘命令和处理鼠标事件等

VideoIO

视频I/O,视频捕获和视频编解码器的接口

Video

视频分析模块,包括背景减法、运动估计和目标跟踪算法

2. OpenCV 扩展模块

视频编码解码、CUDA加速、IE加速、DNN扩展功能、背景分析、图像分析、光流分析。

3. 注意
  1. 没有足够稳定性;
  2. 需要自己编译。

4. OpenCV 源码和教程

  1. GitHub源码
  2. OpenCV 4.5.5 文档

5. OpenCV-Python 安装

1. 只安装【主模块】
代码语言:javascript复制
pip install opencv-python==4.6.0.66
2. 使用镜像安装 OpenCV-Python
代码语言:javascript复制
pip install opencv-python==4.6.0.66 -i https://pypi.tuna.tsinghua.edu.cn/simple
3. 安装【主模块和附加模块】
代码语言:javascript复制
pip install opencv-contrib-python
4. 注意

在不使用附加模块的情况,尽量只安装主模块!

0 人点赞