OpenCV

OpenCV was founded by Gary Bradsky at Intel in 1999, and the first version came out in 2000. Vadim Pisarevsky joined Gary Bradsky to manage Intel’s Russian software OpenCV team. In 2005, OpenCV was used for the Stanley, which won the 2005 DARPA Challenge. Since then, its active development has continued with the support of Willow Garage, led by Gary Bradsky and Vadim Pisarevsky. OpenCV now supports a variety of algorithms related to computer vision and machine learning, and it is increasingly being expanded.

OpenCV supports a variety of programming languages, such as C++, Python, Java, etc., and can be used on different platforms such as Windows, Linux, OS X, Android, and iOS. Interfaces for high-speed GPU operation based on CUDA and OpenCL are also being actively developed.

Opencv-python is the Python API for OpenCV, combining the OpenCV C++ API with the best features of the Python language.

OpenCV-Python

Opencv-python is a Special Python library designed to solve computer vision problems.

Python is a general-purpose programming language started by Guido van Rossum that quickly became very popular, mainly because of its simplicity and code readability. It allows programmers to express ideas in fewer lines of code without compromising readability.

Python is slow compared to languages like C/C++. That said, Python can be easily extended using C/C++, which enables us to write computationally intensive code in C/C++ and create Python wrappers that can be used as Python modules. This gives us two advantages: first, the code is just as fast as the original C/C++ code (because it’s actual C++ code running in the background), and second, it’s easier to write code in Python than in C/C++. Opencv-python is a Python wrapper for the original OpenCV C++ implementation.

Opencv-python makes use of Numpy, a highly optimized library for numerical calculations using MatLAB-style syntax. All OpenCV array structures convert to and from Numpy arrays. This also makes it easier to integrate with other libraries that use Numpy, such as SciPy and Matplotlib.

OpenCV – Python tutorial

OpenCV has introduced a new set of tutorials that will guide you through the various features available in Opencv-Python. This guide is mainly for OpenCV 3.x (although most tutorials are also available for OpenCV 2.x).

Python and Numpy are recommended, as they will not be covered in this guide. To write optimized code in Opencv-Python, you must first understand Numpy.

This tutorial was originally launched by Abid Rahman K. under the guidance of Alexander Mordvintsev as part of Google’s Summer of Code 2013 initiative.

OpenCV needs you!

Since OpenCV is an open source project, everyone is welcome to contribute to the library, documentation, and tutorials. If you find any mistakes in this tutorial (small spelling mistake to serious errors in code or concept), please feel free to through in making: https://github.com/opencv/opencv clone OpenCV and submit a request to correct it. OpenCV developers will review your request request, give you important feedback, and (once approved by reviewers) it will be incorporated into OpenCV. You will then become an open source contributor 🙂

This tutorial will have to be expanded as new modules are added to Opencv-Python. If you are familiar with a particular algorithm and can write a tutorial that includes the basic theory of the algorithm and code that shows example usage, you are welcome to do so.

Remember, together we can make this project a great success!

contributors

Below is a list of contributors who have submitted tutorials to Opencv-Python.

  1. Alexander Mordvintsev (GSOC-2013 Tutor)
  2. Abid Rahman K. (GSOC-2013 Intern)

Other resources

  1. Python quick guide – [a small part of the Python] : http://swaroopch.com/notes/python/
  2. Basic Numpy tutorial: http://wiki.scipy.org/TentativeNumPyTutorial
  3. Numpy sample list: http://wiki.scipy.org/NumpyExampleList
  4. OpenCV documentation: http://docs.opencv.org/
  5. OpenCV BBS: http://answers.opencv.org/questions/