zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

2023-09-14 09:15:07 时间

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. 只安装【主模块】

pip install opencv-python==4.6.0.66

2. 使用镜像安装 OpenCV-Python

pip install opencv-python==4.6.0.66 -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 安装【主模块和附加模块】

pip install opencv-contrib-python

4. 注意

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