# 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 提交教程的贡献者列表。
1. Alexander Mordvintsev (GSoC-2013 导师)
2. Abid Rahman K. (GSoC-2013 实习生)

## 额外资源
1. Python 基本教程 - [A Byte of Python](https://python.swaroopch.com/)
2. [Numpy 基本教程](http://wiki.scipy.org/Tentative_NumPy_Tutorial)
3. [Numpy 使用样例](http://wiki.scipy.org/Numpy_Example_List)
4. [OpenCV 文档](https://docs.opencv.org/)
5. [OpenCV 论坛](http://answers.opencv.org/questions/)
