OpenCV (Open Source Computer Vision Library) is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing. Enabled with OpenCL, it can take advantage of the hardware acceleration of the underlying heterogeneous compute platform.

Adopted all around the world, OpenCV has more than 47 thousand people of user community and estimated number of downloads exceeding 14 million. Usage ranges from interactive art, to mines inspection, stitching maps on the web or through advanced robotics.

The following links describe a set of basic OpenCV tutorials. All the source code mentioned here is provided as part of the OpenCV regular releases, so check before you start copying & pasting the code. The list of tutorials below is automatically generated from reST files located in our GIT repository.

As always, we would be happy to hear your comments and receive your contributions on any tutorial.

  • Introduction to OpenCV

    You will learn how to setup OpenCV on your computer

  • The Core Functionality (core module)

    Here you will learn about the basic building blocks of this library. A must read for understanding how to manipulate the images on a pixel level.

  • Image Processing (imgproc module)

    In this section you will learn about the image processing (manipulation) functions inside OpenCV.

  • High Level GUI and Media (highgui module)

    This section contains valuable tutorials on how to use the built-in graphical user interface of the library.

  • Image Input and Output (imgcodecs module)

    These tutorials show how to read and write images using imgcodecs module.

  • Video Input and Output (videoio module)

    These tutorials show how to read and write videos using videio module.

  • Camera calibration and 3D reconstruction (calib3d module)

    Although most of our images are in a 2D format they do come from a 3D world. Here you will learn how to find out 3D world information from 2D images.

  • 2D Features framework (feature2d module)

    Learn about how to use the feature points detectors, descriptors and matching framework found inside OpenCV.

  • Video analysis (video module)

    Here you will find algorithms usable on your video streams like motion extraction, feature tracking and foreground extractions.

  • Object Detection (objdetect module)

    Ever wondered how your digital camera detects people’s faces? Look here to find out!

  • Deep Neural Networks (dnn module)

    These tutorials show how to use dnn module effectively.

  • Machine Learning (ml module)

    Use the powerful machine learning classes for statistical classification, regression and clustering of data.

  • Graph API (gapi module)

    Learn how to use Graph API (G-API) and port algorithms from “traditional” OpenCV to a graph model.

  • Computational photography (photo module)

    Use OpenCV for advanced photo processing.

  • Images stitching (stitching module)

    Learn how to create beautiful photo panoramas and more with OpenCV stitching pipeline.

  • GPU-Accelerated Computer Vision (cuda module)

    Squeeze out every little computational power from your system by utilizing the power of your video card to run the OpenCV algorithms.

  • OpenCV iOS

    Run OpenCV and your vision apps on an iDevice