OpenCV

OpenCV于1999年由Gary Bradsky在英特尔开始,第一个版本于2000年问世。Vadim Pisarevsky加入Gary Bradsky,管理英特尔的俄罗斯软件OpenCV团队。2005年,OpenCV被用在斯坦利上,该车赢得了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比较慢。也就是说,Python可以很容易地用C/C++进行扩展,这使得我们可以用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中克隆OpenCV并提交一个拉动请求来纠正它。OpenCV的开发人员会检查你的拉动请求,给你重要的反馈,(一旦通过审查者的批准)它将被合并到OpenCV中。这样你就成为一个开源的贡献者 😃

随着OpenCV-Python中新模块的加入,本教程将不得不进行扩展。如果你熟悉某种特定的算法,并能写出包括该算法的基本理论和显示使用实例的代码在内的教程,请这样做。

请记住,我们一起可以使这个项目获得巨大的成功!!。

贡献者

以下是向OpenCV-Python提交教程的贡献者名单。

Alexander Mordvintsev (GSoC-2013导师)
Abid Rahman K. (GSoC-2013实习生)

其他资源

Python快速指南 - A Byte of PythonNumPy快速入门教程NumPy参考资料OpenCV文档OpenCV论坛

其他资源中的内容暂不翻译