1.1. OpenCV Python教程简介

1.1.1. OpenCV

OpenCV于1999年在英特尔成立 加里布拉斯基 第一次发行是在2000年。 瓦迪姆·皮萨雷夫斯基 加入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语言的最佳特性。

1.1.2. OpenCV Python

Python是由 吉多·范罗苏姆 它在短时间内变得非常流行,主要是因为它的简单性和代码可读性。它使程序员能够用更少的代码行来表达他的想法,而不会降低任何可读性。

与其他语言(如C/C++)相比,Python速度较慢。但是Python的另一个重要特点是它可以很容易地用C/C++来扩展。这个特性有助于我们在C/C++中编写计算密集型代码,并为其创建Python包装器,以便我们可以将这些包装器用作Python模块。这给了我们两个优点:首先,我们的代码与原始C/C++代码一样快(因为它是后台工作的实际C++代码),其次,在Python中很容易进行编码。这就是OpenCV Python的工作原理,它是一个围绕原始C++实现的Python包装器。

而且Numpy的支持使任务变得更加容易。 Numpy 是一个高度优化的数值运算库。它给出了一个MATLAB风格的语法。所有OpenCV数组结构都转换为Numpy数组和Numpy数组。所以无论你能在努比做什么,你都可以把它和OpenCV结合起来,OpenCV增加了你武器库中的武器数量。除此之外,还可以使用其他几个支持Numpy的库,如SciPy、Matplotlib。

因此OpenCV Python是一个适合于计算机视觉问题快速成型的工具。

1.1.3. OpenCV Python教程

OpenCV引入了一组新的教程,这些教程将指导您完成OpenCV Python中提供的各种功能。 本指南主要关注OpenCV 3.x版本 (尽管大多数教程也适用于OpenCV 2.x)。

在开始之前需要先了解Python和Numpy,因为本指南不涉及它们。 Especially, a good knowledge on Numpy is must to write optimized codes in OpenCV-Python.

本教程由 阿比德·拉赫曼K。 作为谷歌2013年夏季代码计划的一部分,在 亚历山大·莫德文采夫 .

1.1.4. OpenCV需要你!!!

由于OpenCV是一个开放源码的项目,欢迎大家为这个库做出贡献。这个教程也是一样的。

因此,如果在本教程中发现任何错误(无论是小的拼写错误还是代码或概念中的大错误,等等),请随意更正。

对于那些开始为开源项目做出贡献的新手来说,这将是一个很好的任务。只需在github中分叉OpenCV,进行必要的更正并向OpenCV发送一个pull请求。OpenCV开发人员将检查您的pull请求,给您重要的反馈,一旦它通过了审阅者的批准,它将被合并到OpenCV中。然后你就成为了一个开源贡献者。其他教程、文档等也有类似的情况。

随着新模块被添加到OpenCV Python中,本教程将不得不进行扩展。因此,了解特定算法的人可以编写一个教程,其中包括算法的基本理论和显示算法基本用法的代码,并将其提交给OpenCV。

记住,我们 在一起 可以使这个项目取得巨大成功!!!

1.1.5. 贡献者

下面是向OpenCV Python提交教程的贡献者列表。

  1. Alexander Mordvintsev(GSoC-2013导师)

  2. 阿比德·拉赫曼K.(GSoC-2013实习生)