OpenCV 使用 BSD 许可证,因此对研究和商业用途均免费.
OpenCV是一个具有实时计算机视觉功能的编程库,它可以免费用于学术和商业用途(BSD许可证)。OpenCV库的介绍,包括其主要模块和与库相关的其他有用信息。

这里简要介绍OpenCV模块:核心:核心功能。
核心功能是定义基本数据结构的模块,也是库中所有其他模块使用的基本功能。
imgproc:图像处理。一种图像处理模块,包括图像滤波,几何图像变换,颜色空间转换和直方图。
imgcodecs:图像编解码器。图像文件读写。
videoio:视频I / O.视频捕获和视频编解码器的接口。
highgui:高级GUI。 UI功能的界面。它提供了一个界面,可以轻松执行以下操作:创建和操作可显示/显示图像的窗口向窗口添加轨迹栏,键盘命令和处理鼠标事件视频:视频分析。视频分析模块,包括背景减法,运动估计和对象跟踪算法。
calib3d:摄像机校准和3D重建。相机校准和3D重建,涵盖基本的多视图几何算法,立体对应算法,对象姿态估计,单一和立体相机校准,以及3D重建。
features2d:2D功能框架。该模块包括特征检测器,描述符和描述符匹配器。
objdetect:对象检测。检测预定义类的对象和实例(例如,面部,眼睛,人和汽车)。
dnn:深度神经网络(DNN)模块。此模块包含以下内容:用于创建新图层的API用于构建和修改图层神经网络的内置有用图层API用于从不同深度学习框架加载序列化网络模型的功能
ml:机器学习。机器学习库(MLL)是一组可用于分类,回归和聚类的类和方法。
flann:在多维空间中进行聚类和搜索。近似最近邻居快速库(FLANN)是一组非常适合快速最近邻搜索的算法。
photo:计算摄影。该模块为计算摄影提供了一些功能。
Stitching:图像拼接。该模块实现了拼接管道,可执行自动全景图像拼接。
Shape:形状距离和匹配。形状距离和匹配模块,可用于形状匹配,检索或比较。
Supperes:超分辨率。此模块包含一组可用于分辨率增强的类和方法。
videostab:视频稳定。该模块包含一组用于视频稳定的类和方法。
Viz:3D可视化工具。此模块用于显示窗口小部件,这些窗口小部件提供了几种与场景和窗口小部件交互的方法
OpenCV应用程序
OpenCV用于非常广泛的应用:
2D和3D功能工具包
街景图像拼接
运动估计
面部识别系统
手势识别
人机交互
移动机器人
运动理解
对象识别
自动检查和监视
细分和识别
立体视觉立体视觉 - 来自两个相机的深度感知
医学图像分析
运动结构
运动跟踪
增强现实
视频/图像搜索和检索
机器人和无人驾驶汽车导航和控制
司机瞌睡和分心检测
为什么在研究工作中引用OpenCV
如果您在研究中使用OpenCV,建议您引用OpenCV库。 通过这种方式,其他研究人员可以更好地理解您提出的算法并重现您的结果,从而获得更好 此外,OpenCV将增加反响,从而产生更好的计算机视觉库。 引用OpenCV的BibTex条目显示在以下代码中:
@article{opencv_library,
author = {Bradski, G.},
citeulike-article-id = {2236121},
journal = {Dr. Dobb’s Journal of Software Tools},
keywords = {bibtex-import},
posted-at = {2008-01-15 19:21:54},
priority = {4},
title = {{The OpenCV Library}},
year = {2000}
}
用于科学计算,数据科学,机器学习,深度学习和计算机视觉的软件包到目前为止,我们已经看到如何从头开始安装Python,OpenCV和一些其他软件包(numpy和matplotlib),或者使用Anaconda分发软件包括许多流行的数据科学包。通过这种方式,关于科学计算,数据科学,机器学习和计算机视觉的主要包的一些知识是关键点,因为它们提供了强大的计算工具。OpenCV 设计相关 Python包全面的列表.
NumPy(http://www.numpy。 org /)为大型多维数组提供支持。 NumPy是计算机视觉中的关键库,因为图像可以表示为多维数组。
将图像表示为NumPy阵列具有许多优点。
OpenCV(https://opencv.org/)是一个开源的计算机视觉库。
Scikit-image(https://scikit-image.org/)是图像处理算法的集合。由scikit-image操纵的图像只是NumPy数组。
Python Imaging Library(PIL)(http://www.pythonware.com/products/pil/)是一个图像处理库,可提供强大的图像处理和图形功能。
Pillow(https://pillow.readthedocs.io/)是Alex Clark和贡献者友好的PIL分支。 PIL为您的Python解释器添加了图像处理功能。
SimpleCV(http://simplecv.org/)是计算机视觉的框架,提供处理图像处理的关键功能。
Mahotas(https://mahotas.readthedocs.io/)是Python中用于图像处理和计算机视觉的一组函数。它最初是为生物图像信息学而设计的。但是,它在其他领域也很有用。它完全基于numpy数组作为其数据类型。
Ilastik(http://ilastik.org/)是一个用户友好且简单的交互式图像分割,分类和分析工具。
Scikit-learn(http://scikit-learn.org/)是一个机器学习库,具有各种分类,回归和聚类算法。
SciPy(https://www.scipy.org/)是一个用于科学和技术计算的库。
NLTK(https://www.nltk.org/)是一套用于处理人类语言数据的库和程序。
spaCy(https://spacy.io/)是一个开源软件库,用于Python中的高级自然语言处理。
LibROSA(https://librosa.github.io/librosa/)是一个音乐和音频处理库。
Pandas(https://pandas.pydata.org/)是一个库(建立在NumPy之上),提供高级数据计算工具和易于使用的数据结构。
Matplotlib(https://matplotlib.org/)是一个绘图库,可以生成各种格式的出版品质图。
Seaborn(https://seaborn.pydata.org/)是一个基于Matplotlib构建的图形库。
Orange(https://orange.biolab.si/)是面向新手和专家的开源机器学习和数据可视化工具包。
PyBrain(http://pybrain.org/)是一个机器学习库,为机器学习提供易于使用的状态算法。
Milk(http://luispedro.org/software/milk/)是一个机器学习工具包,专注于使用多个分类器进行监督分类。
TensorFlow(https://www.tensorflow.org/)是一个开源的机器学习和深度学习库。
PyTorch(https://pytorch.org/)是一个开源的机器学习和深度学习库。
Theano(http://deeplearning.net/software/theano/)是一个用于快速数学表达,评估和计算的库,它已被编译为在CPU和GPU架构上运行(深度学习的关键点)。
Keras(https://keras.io/)是一个高级深度学习库,可以在TensorFlow,CNTK,Theano或Microsoft Cognitive Toolkit之上运行。
Django(https://www.djangoproject.com/)是一个基于Python的免费开源Web框架,鼓励快速开发和清晰,实用的设计。
Flask(http://flask.pocoo.org/)是一个基于Werkzeug和Jinja 2的Python编写的微型Web框架。
所有这些包可以根据其主要目的进行组织:
1.使用图像:NumPy,OpenCV,scikit-image,PIL Pillow,SimpleCV,Mahotas,ilastik
2.在文本中工作:NLTK,spaCy,NumPy,scikit-learn,PyTorch To
3.从事音频工作:LibROSA
4.解决机器学习问题:Pandas,scikit-learn,Orange,PyBrain,milk
5.要清楚地看到数据:Matplotlib,Seaborn,scikit-learn,Orange
6.要使用深度学习:TensorFlow,Pytorch,Theano,Keras
7.要做科学计算:SciPy
8.集成Web应用程序:Django,Flask