- Introduction to OpenCV – build and install OpenCV on your computer
OpenCV installation overview- OpenCV configuration options reference
- OpenCV environment variables reference
- Linux
- Installation in Linux
- Using OpenCV with gdb-powered IDEs
- Using OpenCV with gcc and CMake
- Using OpenCV with Eclipse (plugin CDT)
- Windows
- Installation in Windows
- How to build applications with OpenCV inside the “Microsoft Visual Studio”
- Image Watch: viewing in-memory images in the Visual Studio debugger
- Java & Android
- Introduction to Java Development
- Using OpenCV Java with Eclipse
- Introduction to OpenCV Development with Clojure
- Introduction into Android Development
- Android Development with OpenCV
- How to run deep networks on Android device
- Use OpenCL in Android camera preview based CV application
- Other platforms
- Installation in MacOS
- Cross compilation for ARM based Linux systems
- MultiArch cross-compilation with Ubuntu/Debian
- Building OpenCV for Tegra with CUDA
- Installation in iOS
- Usage basics
- Getting Started with Images – We will learn how to load an image from file and display it using OpenCV
- Miscellaneous
- Writing documentation for OpenCV – This tutorial describes new documenting process and some useful Doxygen features.
- Transition guide – This document describes some aspects of 2.4 -> 3.0 transition process.
- The Core Functionality (core module) – basic building blocks of the library
- Mat – The Basic Image Container
- How to scan images, lookup tables and time measurement with OpenCV
- Mask operations on matrices
- Operations with images
- Adding (blending) two images using OpenCV
- Changing the contrast and brightness of an image!
- Discrete Fourier Transform
- File Input and Output using XML / YAML / JSON files
- How to use the OpenCV parallel_for_ to parallelize your code
- Vectorizing your code using Universal Intrinsics
- Image Processing (imgproc module) – image processing functions
Basic
- Basic Drawing
- Random generator and text with OpenCV
- Smoothing Images
- Eroding and Dilating
- More Morphology Transformations
- Hit-or-Miss
- Extract horizontal and vertical lines by using morphological operations
- Image Pyramids
- Basic Thresholding Operations
- Thresholding Operations using inRange
Transformations
- Making your own linear filters!
- Adding borders to your images
- Sobel Derivatives
- Laplace Operator
- Canny Edge Detector
- Hough Line Transform
- Hough Circle Transform
- Object detection with Generalized Ballard and Guil Hough Transform
- Remapping
- Affine Transformations
Histograms
- Histogram Equalization
- Histogram Calculation
- Histogram Comparison
- Back Projection
- Template Matching
Contours
- Finding contours in your image
- Convex Hull
- Creating Bounding boxes and circles for contours
- Creating Bounding rotated boxes and ellipses for contours
- Image Moments
- Point Polygon Test
Others
- Image Segmentation with Distance Transform and Watershed Algorithm
- Out-of-focus Deblur Filter
- Motion Deblur Filter
- Anisotropic image segmentation by a gradient structure tensor
- Periodic Noise Removing Filter
- Image Processing (imgproc module) – image processing functions
- Basic
- Basic Drawing
- Random generator and text with OpenCV
- Smoothing Images
- Eroding and Dilating
- More Morphology Transformations
- Hit-or-Miss
- Extract horizontal and vertical lines by using morphological operations
- Image Pyramids
- Basic Thresholding Operations
- Thresholding Operations using inRange
- Transformations
- Making your own linear filters!
- Adding borders to your images
- Sobel Derivatives
- Laplace Operator
- Canny Edge Detector
- Hough Line Transform
- Hough Circle Transform
- Object detection with Generalized Ballard and Guil Hough Transform
- Remapping
- Affine Transformations
- Histograms
- Histogram Equalization
- Histogram Calculation
- Histogram Comparison
- Back Projection
- Template Matching
- Contours
- Finding contours in your image
- Convex Hull
- Creating Bounding boxes and circles for contours
- Creating Bounding rotated boxes and ellipses for contours
- Image Moments
- Point Polygon Test
- Others
- Image Segmentation with Distance Transform and Watershed Algorithm
- Out-of-focus Deblur Filter
- Motion Deblur Filter
- Anisotropic image segmentation by a gradient structure tensor
- Periodic Noise Removing Filter
- Application utils (highgui, imgcodecs, videoio modules) – application utils (GUI, image/video input/output)
- Adding a Trackbar to our applications!
- Reading Geospatial Raster files with GDAL
- Video Input with OpenCV and similarity measurement
- Creating a video with OpenCV
- Using Kinect and other OpenNI compatible depth sensors
- Using Orbbec Astra 3D cameras
- Using Orbbec 3D cameras (UVC)
- Using Creative Senz3D and other Intel RealSense SDK compatible depth sensors
- Using Wayland highgui-backend in Ubuntu
- Camera calibration and 3D reconstruction (calib3d module) – extract 3D world information from 2D
- Create calibration pattern
- Camera calibration with square chessboard
- Camera calibration With OpenCV
- Real Time pose estimation of a textured object
- Interactive camera calibration application
- USAC: Improvement of Random Sample Consensus in OpenCV
- images
- Object Detection (objdetect module) – INSERT OBJDETECT MODULE INFO
- Detection of ArUco Markers
- Detection of ArUco boards
- Detection of ChArUco Boards
- Detection of Diamond Markers
- Calibration with ArUco and ChArUco
- Aruco module FAQ
- 2D Features framework (feature2d module) – feature detectors, descriptors and matching framework
- Harris corner detector
- Shi-Tomasi corner detector
- Creating your own corner detector
- Detecting corners location in subpixels
- Feature Detection
- Feature Description
- Feature Matching with FLANN
- Features2D + Homography to find a known object
- Detection of planar objects
- AKAZE local features matching
- AKAZE and ORB planar tracking
- Basic concepts of the homography explained with code
- Deep Neural Networks (dnn module) – infer neural networks using built-in dnn module
- Load Caffe framework models
- How to enable Halide backend for improve efficiency
- How to schedule your network for Halide backend
- OpenCV usage with OpenVINO
- YOLO DNNs
- How to run deep networks in browser
- Custom deep learning layers support
- How to run custom OCR model
- High Level API: TextDetectionModel and TextRecognitionModel
- DNN-based Face Detection And Recognition
PyTorch models with OpenCV
In this section you will find the guides, which describe how to run classification, segmentation and detection PyTorch DNN models with OpenCV.
- Conversion of PyTorch Classification Models and Launch with OpenCV Python
- Conversion of PyTorch Classification Models and Launch with OpenCV C++
- Conversion of PyTorch Segmentation Models and Launch with OpenCV
TensorFlow models with OpenCV
In this section you will find the guides, which describe how to run classification, segmentation and detection TensorFlow DNN models with OpenCV.
- Conversion of TensorFlow Classification Models and Launch with OpenCV Python
- Conversion of TensorFlow Detection Models and Launch with OpenCV Python
- Conversion of TensorFlow Segmentation Models and Launch with OpenCV
- Graph API (gapi module) – graph-based approach to computer vision algorithms building
- In this section you will learn about graph-based image processing and how G-API module can be used for that.
- Face analytics pipeline with G-APILanguages: C++Compatibility: > OpenCV 4.2Author: Dmitry MatveevThis tutorial illustrates how to build a hybrid video processing pipeline with G-API where Deep Learning and image processing are combined effectively to maximize the overall throughput. This sample requires Intel® distribution of OpenVINO™ Toolkit version 2019R2 or later.
- Porting anisotropic image segmentation on G-APILanguages: C++Compatibility: > OpenCV 4.0Author: Dmitry MatveevThis is an end-to-end tutorial where an existing sample algorithm is ported on G-API, covering the basic intuition behind this transition process, and examining benefits which a graph model brings there.
- Implementing a face beautification algorithm with G-APILanguages: C++Compatibility: > OpenCV 4.2Author: Orest ChuraIn this tutorial we build a complex hybrid Computer Vision/Deep Learning video processing pipeline with G-API.
- Using DepthAI Hardware / OAK depth sensorsLanguages: C++Compatibility: > OpenCV 4.6Author: Alessandro de Oliveira Faria (A.K.A. CABELO)In this tutorial we showed how to use the Luxonis DepthAI library with G-API.
- Other tutorials (ml, objdetect, photo, stitching, video) – other modules (ml, objdetect, stitching, video, photo)
- photo. High Dynamic Range Imaging
- stitching. High level stitching API (Stitcher class)
- video. How to Use Background Subtraction Methods
- video. Meanshift and Camshift
- video. Optical Flow
- objdetect. Cascade Classifier
- objdetect. Cascade Classifier Training
- objdetect. Barcode Recognition
- ml. Introduction to Support Vector Machines
- ml. Support Vector Machines for Non-Linearly Separable Data
- ml. Introduction to Principal Component Analysis (PCA)
- OpenCV iOS – running OpenCV on an iDevice
- Installation in iOS
- OpenCV iOS Hello
- OpenCV iOS – Image Processing
- OpenCV iOS – Video Processing
- GPU-Accelerated Computer Vision (cuda module) – utilizing power of video card to run CV algorithms
Squeeze out every little computation power from your system by using the power of your video card to run the OpenCV algorithms.
- Similarity check (PNSR and SSIM) on the GPULanguages: C++Compatibility: > OpenCV 2.0Author: Bernát GáborThis will give a good grasp on how to approach coding on the GPU module, once you already know how to handle the other modules. As a test case it will port the similarity methods from the tutorial Video Input with OpenCV and similarity measurement to the GPU.
- Using a cv::cuda::GpuMat with thrustLanguages: C++Compatibility: >= OpenCV 3.0This tutorial will show you how to wrap a GpuMat into a thrust iterator in order to be able to use the functions in the thrust library.