OpenCV-Python 系列 一 | 系列简介与目录
本文是全系列中第40 / 63篇:OpenCV-Python
- OpenCV-Python 系列 四 | 视频入门
- OpenCV-Python 系列 十二 | 图像的几何变换
- OpenCV-Python 系列 二十 | 轮廓:入门
- OpenCV-Python 系列 二十八 | 直方图4:直方图反投影
- OpenCV-Python 系列 三十六 | 哈里斯角检测
- OpenCV-Python 系列 四十四 | 特征匹配 + 单应性查找对象
- OpenCV-Python 系列 五十二 | 理解K近邻
- OpenCV-Python 系列 六十 | 高动态范围
- OpenCV-Python 系列 五 | OpenCV中的绘图功能
- OpenCV-Python 系列 十三 | 图像阈值
- OpenCV-Python 系列 二十一 | 轮廓特征
- OpenCV-Python 系列 二十九 | 傅里叶变换
- OpenCV-Python 系列 三十七 | Shi-tomas拐角检测器和益于跟踪的特征
- OpenCV-Python 系列 四十五 | 如何使用背景分离方法
- OpenCV-Python 系列 五十三 | 使用OCR手写数据集运行KNN
- OpenCV-Python 系列 六十一 | 级联分类器
- OpenCV-Python 系列 六 | 鼠标作为画笔
- OpenCV-Python 系列 十四 | 图像阈值
- OpenCV-Python 系列 二十二 | 轮廓属性
- OpenCV-Python 系列 三十 | 模板匹配
- OpenCV-Python 系列 三十八 | SIFT尺度不变特征变换
- OpenCV-Python 系列 四十六 | Meanshift和Camshift
- OpenCV-Python 系列 五十四 | 理解SVM
- OpenCV-Python 系列 六十二 | 级联分类器训练
- OpenCV-Python 系列 七 | 轨迹栏作为调色板
- OpenCV-Python 系列 十五 | 图像平滑
- OpenCV-Python 系列 二十三 | 轮廓:更多属性
- OpenCV-Python 系列 三十一 | 霍夫线变换
- OpenCV-Python 系列 三十九 | SURF简介(加速的强大功能)
- OpenCV-Python 系列 四十七 | 光流
- OpenCV-Python 系列 五十五 | 使用OCR手写数据集运行SVM
- OpenCV-Python 系列 六十三 | OpenCV-Python Bindings 如何工作?
- OpenCV-Python 系列 八 | 图像的基本操作
- OpenCV-Python 系列 十六 | 形态学转换
- OpenCV-Python 系列 二十四 | 轮廓分层
- OpenCV-Python 系列 三十二 | 霍夫圈变换
- OpenCV-Python 系列 四十 | 用于角点检测的FAST算法
- OpenCV-Python 系列 四十八 | 相机校准
- OpenCV-Python 系列 五十六 | 理解K-Means聚类
- OpenCV-Python 系列 一 | 系列简介与目录
- OpenCV-Python 系列 九 | 图像上的算术运算
- OpenCV-Python 系列 十七 | 图像梯度
- OpenCV-Python 系列 二十五 | 直方图-1:查找、绘制和分析
- OpenCV-Python 系列 三十三 | 图像分割与Watershed算法
- OpenCV-Python 系列 四十一 | BRIEF(二进制的鲁棒独立基本特征)
- OpenCV-Python 系列 四十九 | 姿态估计
- OpenCV-Python 系列 五十七 | OpenCV中的K-Means聚类
- OpenCV-Python 系列 二 | 安装OpenCV-Python
- OpenCV-Python 系列 十 | 性能衡量和提升技术
- OpenCV-Python 系列 十八 | Canny边缘检测
- OpenCV-Python 系列 二十六 | 直方图-2:直方图均衡
- OpenCV-Python 系列 三十四 | 交互式前景提取使用GrabCut算法
- OpenCV-Python 系列 四十二 | ORB(面向快速和旋转的BRIEF)
- OpenCV-Python 系列 五十 | 对极几何
- OpenCV-Python 系列 五十八 | 图像去噪
- OpenCV-Python 系列 三 | 图像入门
- OpenCV-Python 系列 十一 | 改变颜色空间
- OpenCV-Python 系列 十九 | 图像金字塔
- OpenCV-Python 系列 二十七 | 直方图-3:二维直方图
- OpenCV-Python 系列 三十五 | 理解特征
- OpenCV-Python 系列 四十三 | 特征匹配
- OpenCV-Python 系列 五十一 | 立体图像的深度图
- OpenCV-Python 系列 五十九 | 图像修补
OpenCV
OpenCV由Gary Bradsky于1999年在英特尔创立,第一版于2000年问世。Vadim Pisarevsky加入Gary Bradsky,一起管理英特尔的俄罗斯软件OpenCV团队。2005年,OpenCV用于Stanley,该车赢得了2005年DARPA挑战赛的冠军。后来,在Willow Garage的支持下,它的积极发展得以继续,由Gary Bradsky和Vadim Pisarevsky领导了该项目。OpenCV现在支持与计算机视觉和机器学习有关的多种算法,并且正在日益扩展。
OpenCV支持多种编程语言,例如C++、Python、Java等,并且可在Windows、Linux、OS X、Android和iOS等不同平台上使用。基于CUDA和OpenCL的高速GPU操作的接口也正在积极开发中。
OpenCV-Python是用于OpenCV的Python API,结合了OpenCV C++ API和Python语言的最佳特性。
OpenCV-Python
OpenCV-Python是旨在解决计算机视觉问题的Python专用库。
Python是由Guido van 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-Python教程
OpenCV引入了一组新的教程,它们将指导您完成OpenCV-Python中可用的各种功能。本指南主要针对OpenCV 3.x版本(尽管大多数教程也适用于OpenCV 2.x)。
建议先了解Python和Numpy,因为本指南将不介绍它们。要使用OpenCV-Python编写优化的代码,必须先明白Numpy。
本教程最初由Abid Rahman K.在Alexander Mordvintsev的指导下作为Google Summer of Code 2013计划的一部分启动。
OpenCV需要您!
由于OpenCV是开放源代码计划,因此欢迎所有人为这个库,文档和教程做出贡献。如果您在本教程中发现任何错误(从小的拼写错误到代码或概念中的严重错误),请随时通过在GitHub中:https://github.com/opencv/opencv 克隆OpenCV 并提交请求请求来更正它。OpenCV开发人员将检查您的请求请求,给您重要的反馈,并且(一旦通过审阅者的批准)它将被合并到OpenCV中。然后,您将成为开源贡献者:-)
随着新模块添加到OpenCV-Python中,本教程将不得不进行扩展。如果您熟悉特定的算法,并且可以编写一个包括算法基本理论和显示示例用法的代码的教程,欢迎你这样做。
记住,我们可以共同使这个项目取得巨大成功!
贡献者
以下是向OpenCV-Python提交了教程的贡献者列表。
- Alexander Mordvintsev(GSoC-2013 导师)
- Abid Rahman K.(GSoC-2013 实习生)
OpenCV-Python教材
写在前面的话
OpenCV是计算机视觉中经典的专用库,其支持多语言、跨平台,功能强大。
OpenCV-Python为OpenCV提供了Python接口,使得使用者在Python中能够调用C/C++,在保证易读性和运行效率的前提下,实现所需的功能。
OpenCV-Python Tutorials是官方提供的文档,其内容全面、简单易懂,使得初学者能够快速上手使用。
2014年段力辉在当时已翻译过OpenCV3.0,但时隔五年,如今的OpenCV4.1中许多函数和内容已经有所更新,因此有必要对该官方文档再进行一次翻译。
翻译过程中难免有所疏漏,如发现错误,希望大家指出,谢谢支持。
OpenCV-Python Tutorials官方文档:https://docs.opencv.org/3.4/d6/d00/tutorial_py_root.html
目录
- OpenCV简介:
了解如何在计算机上安装OpenCV-Python
- OpenCV中的GUI特性
在这里,您将学习如何显示和保存图像和视频,控制鼠标事件以及创建轨迹栏。
- 核心操作
在本节中,您将学习图像的基本操作、例如像素编辑、几何变换,代码优化、一些数学工具等。
- OpenCV中的图像处理
在本节中,您将学习OpenCV内部的不同图像处理函数。
- 特征检测与描述
在本节中,您将学习有关特征检测和描述符的信息
- 视频分析
在本部分中,您将学习与对象跟踪等视频配合使用的不同技术。
- 相机校准和3D重建
在本节中,我们将学习有关相机校准,立体成像等的信息。
- 机器学习
在本节中,您将学习OpenCV内部的不同图像处理函数。
- 计算摄影学
在本节中,您将学习不同的计算摄影技术如图像去噪等。
- 目标检测(objdetect模块)
在本节中,您将学习目标检测技术,例如人脸检测等。
- OpenCV-Python Binding
在本节中,我们将了解如何生成OpenCV-Python Binding
其他资源
- Python快速指南- [一小部分Python]:http://swaroopch.com/notes/python/
- 基本的Numpy教程:http://wiki.scipy.org/Tentative_NumPy_Tutorial
- numpy示例列表:http://wiki.scipy.org/Numpy_Example_List
- OpenCV文档:http://docs.opencv.org/
- OpenCV论坛:http://answers.opencv.org/questions/
原创文章,作者:磐石,如若转载,请注明出处:https://panchuang.net/2020/02/17/opencv-python-%e7%b3%bb%e5%88%97-%e4%b8%80-%e7%b3%bb%e5%88%97%e7%ae%80%e4%bb%8b%e4%b8%8e%e7%9b%ae%e5%bd%95/