OpenCV-Python 教程简介
OpenCV
OpenCV 于 1999 年由 Gary Bradsky 在英特尔创立,第一个版本于 2000 年问世。Vadim Pisarevsky 加入了 Gary Bradsky,负责管理英特尔的俄罗斯软件 OpenCV 团队。2005 年,OpenCV 被用于 Stanley ,这辆车赢得了 2005 年美国穿越沙漠 DARPA 机器人挑战大赛。后来,在 Willow Garage 的支持下,在 Gary Bradsky 和 Vadim Pisarevsky 主导下,OpenCV 项目的开发工作变得活跃起来。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 来封装。这给我们带来了两个好处:首先,代码像原始的 C/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 中 clone OpenCV ,并提交一个 pull request 来纠正错误。OpenCV 开发者将会检查你的 pull request,给你反馈,并且(一旦通过审核人员的批准),将更改合并到项目中。然后,你将成为开源贡献者。
随着新模块添加到 OpenCV-Python,本教程将不得不进行扩展。如果你熟悉特定算法,可以编写包含算法基本理论的教程,并能够编写使用样例,请参与到教程的编写中来。
记住,这个项目因我们的共同努力而变得伟大!!!
贡献者
以下是向 OpenCV-Python 提交教程的贡献者列表。
- Alexander Mordvintsev (GSoC-2013 导师)
- Abid Rahman K. (GSoC-2013 实习生)
额外资源
- Python 基本教程 - A Byte of Python
- Numpy 基本教程
- Numpy 使用样例
- OpenCV 文档
- OpenCV 论坛