Video Tutorials (OpenCV 2.4)
A tutorial series contributed by Surya Penmetsa. You can find the codes used in the videos here.
|
Tutorial 1: Setup VideoThis is the first tutorial, where I explain how to install the softwares and get things working to use the OpenCV functions. |
|
Tutorial 2: Face Detection VideoThis is the second tutorial, where I explain how to use OpenCV functions to detect faces on MATLAB. |
|
Tutorial 3: Webcam Input VideoThis is the third tutorial, where I explain how to use OpenCV functions to record video input on MATLAB. |
|
Tutorial 4: Feature Extraction and Matching VideoThis is the fourth tutorial, where I explain how to use OpenCV functions to extract features to match objects on MATLAB. |
core: Core Functionality
|
Rotated RectangleThe sample demonstrates how to use |
|
Reading/Writing XML and YAML filesDemonstration of reading/writing from/to XML and YAML file storages. |
|
Serialization FunctionalityDemonstrate the usage of OpenCV serialization functionality. |
|
Image Blending GUIIn this demo, we add two images using |
|
Bitwise Operations on ImagesIn this demo, we show how to perform arithmetic operations on images like addition, subtraction, bitwise operations, etc. |
|
Brightness and contrast adjustments GUIIn this demo we show how to perform the operation: $g(i,j) = \alpha \cdot f(i,j) + \beta$. |
|
Image padding GUIIn this demo, we show how to use the OpenCV function |
|
inRange Thresholding Operations GUIIn this demo we show how to perform basic thresholding operations using OpenCV function |
|
Discrete Fourier TransformThis program demonstrated the use of the discrete Fourier transform (DFT). The DFT of an image is taken and it's power spectrum is displayed. |
|
KaleidoscopeDemonstrates Kaleidoscopic reflections. |
imgproc: Image Processing
|
Demonstration of drawing functionsThis program demonstrates OpenCV drawing and text output functions. |
|
Basic Geometric DrawingIn this demo, we show how to use basic drawing functions (line, ellipse, rectangle, circle, etc.). |
|
Demonstration of text drawing functionsDemonstration of text drawing functions. |
|
Colormaps GUISample shows how to apply false color on a grayscale image. |
|
Delaunay triangulation GUIThis program demonstrates iterative construction of Delaunay triangulation and Voronoi tessellation. |
|
Convex Hull demo GUIWe learn how to get hull contours and draw them. |
|
Retrieve and label connected components from a binary image.The example below shows how to retrieve connected components from a binary image and label them. |
|
Contours DemoThis program illustrates the use of |
|
Watershed Demo GUIThis program demonstrates the famous watershed segmentation algorithm in OpenCV. |
|
Contours in OpenCVIn the sample, we will understand what contours are, and learn about the hierarchy of contours, and how to find and draw contours. |
|
Finding contours in an image GUIWe learn how to find contours of objects in our image. |
|
Flood-filling in an image GUIAn example using the Flood-Fill technique. |
|
Flood-Fill demoDemonstrates how to use |
|
Image ThresholdingIn this demo, we will learn about simple thresholding, adaptive thresholding, and Otsu's thresholding. |
|
Threshold demo GUISample code that shows how to use the diverse threshold options offered by OpenCV. |
|
Smoothing DemoSample code for simple filters. |
|
Smoothing ImagesIn this tutorial you will learn how to apply diverse linear filters to smooth images. |
|
Polar Transforms demo GUIThis program illustrates Linear-Polar and Log-Polar image transforms. |
|
Erosion and Dilation GUIIn this sample, you will learn how to apply two very common morphological operators: Erosion and Dilation. |
|
Advanced Morphology Transformations Demo GUIIn this sample you will learn how to use the OpenCV function |
|
Extracting horizontal and vertical lines using morphologyExample that uses morphology transformations for extracting horizontal and vertical lines. |
|
Hit-or-Miss Morphological OperationIn this tutorial you will learn how to find a given configuration or pattern in a binary image by using the Hit-or-Miss transform. |
|
Creating Bounding boxes and circles for contoursDemo code to find contours in an image, and create bounding boxes and circles. |
|
Creating Bounding rotated boxes and ellipses for contoursDemo code to obtain ellipses and rotated rectangles that contain detected contours. |
|
Fit ellipses GUIThis program is demonstration for ellipse fitting. The program finds contours and approximate them by ellipses. |
|
Robust Line Fitting GUIExample of using |
|
Image Moments GUIWe learn to calculate the moments of an image. |
|
Gabor Filter demo GUIA GUI to interact with the 5 different Gabor filter parameters, while visualizing the resulting filter. |
|
Fractalius-like image effect using Gabor filtersThis sample demonstrates the use of multiple Gabor filter convolutions to get Fractalius-like image effect. |
|
Line Segment Detector demoAn example using the |
|
Hough line detectorAn example using the Hough line detector. |
|
Hough circle detectorAn example using the Hough circle detector. |
|
Generalized Hough transformThis program demonstrates arbitrary object finding with the Generalized Hough transform. |
|
Interactive foreground extraction using GrabCut GUIInteractive foreground extraction using the GrabCut algorithm. |
|
Image pyramids for image blendingLearn about image pyramids and how to use them for image blending. |
|
Laplacian Pyramid Construction and Merging GUIThe Laplacian Pyramid as a Compact Image Code. |
|
Image Warping GUIThis program shows perspective transformation applied on an image. |
|
Interactive Perspective Transformation GUIThis program demonstrates Perspective Transformation. |
|
Image Alignment using ECC algorithmThis sample demonstrates the use of the ECC image alignment algorithm. |
|
Corner DetectionIn this demo we will understand concepts behind Harris Corner Detection. We also learn about another corner detector, the Shi-Tomasi Corner Detector. |
|
|
Refining Corner Locations GUIDemo code for detecting corners using Shi-Tomasi method and refining corner locations. |
|
Template MatchingThis program demonstrates template match with mask. |
|
Phase Correlation GUIDemonstrates estimating translational shift between two successive frames using Phase Correlation. |
|
Convex HullThis sample program demonstrates the use of the |
|
Minimum Area EnclosingThis program demonstrates finding the minimum enclosing box, triangle or circle of a set of points. |
|
Connected Components GUIThis sample demonstrates connected components labeling. |
|
Canny Edge Detection GUIThis sample demonstrates Canny edge detection. |
|
Laplacian Edge Detection GUIThis program demonstrates Laplace point/edge detection using OpenCV function |
|
Create Binary Mask Interactively GUIInteractively create a polygon mask. |
|
Create Binary Mask Interactively (IPT)Interactively create a polygon mask. |
|
Interactive Rectangle SelectionSelect a rectangle by drawing a box using the mouse, using |
|
Distance Transform GUIProgram to demonstrate the use of the distance transform function between edge images. |
|
Intensity Image Histogram GUIThis program demonstrates the use of |
|
Histogram CalculationIn this demo, we show how to divide an image into its correspondent planes and calculate histograms of arrays of images. |
|
Histogram EqualizationIn this demo, we show what an image histogram is and why it is useful. |
|
Histogram ComparisonIn this demo, we show how to use the function |
|
2D HistogramWe explain how to create a 2D color histogram. |
|
Video Histogram GUIDemo to show live histogram of video, both 1D histograms of RGB channels and 2D histogram of Hue-Saturation. |
|
Back Projection GUIIn this demo, we will learn what is Back Projection and why it is useful. |
|
CAMShift GUIIn this demo, we learn about Meanshift and Camshift algorithms to find and track objects in videos. |
|
Histogram-based face tracker with CAMShiftIn this demo, we implement a simple face tracker applied on an input video. |
|
CLAHE (Contrast Limited Adaptive Histogram Equalization) GUIIn this demo, we will learn the concepts of histogram equalization and use it to improve the contrast of our images. |
|
Image RemappingIn this demo, we show how to use the OpenCV function |
|
Fun with remapMaps a rectangular image into a circle. |
|
Image Affine TransformationIn this demo, we show how to implement simple affine remapping routines. |
|
Image Pyramids GUIIn this demo, we show how to use the functions |
|
Sobel DerivativesIn this demo, we show how to calculate the derivatives of an image using the OpenCV functions |
|
Laplace OperatorIn this demo, we show how to use the OpenCV function |
|
Point Polygon TestIn this sample you will learn how to use the OpenCV function |
|
Points Inside Convex PolygonWe define a pentagon and a set of points. Then, determine which points lie inside, outside, or on the edge of the pentagon. |
|
Image Segmentation with Distance Transform and Watershed AlgorithmSample code showing how to segment overlapping objects using Laplacian filtering, in addition to Watershed and Distance Transformation. |
|
Wiener Deconvolution for Image Deblurring GUISample shows how DFT can be used to perform Weiner deconvolution of an image with user-defined point spread function (PSF). |
|
Texture flow direction estimationSample shows how |
|
Coherence-Enhancing Filtering GUICoherence-Enhancing Shock Filters. |
|
Multi-Scale Turing Patterns GeneratorGenerate mathematical artwork. |
|
Hi-Resolution Image Navigation GUISample shows how to implement a simple hi-resolution image navigation. |
|
Squares DetectorIt loads several images sequentially and tries to find squares in each image. |
imgcodecs: Image File Reading and Writing
|
Image similarity under lossy compressionSimilarity measurements (PSNR and SSIM). |
|
Create PNG image with alpha transparencySample shows how to create an RGBA image and store it as a PNG file. |
videoio: Media I/O
|
Video Capture GUIWe learn how to capture live stream from camera and display it, while adjusting basic video color properties. |
|
Creating a videoThis demo shows how to write video files. |
|
Synthetic videoDemonstrates using |
video: Video Analysis
|
Segment objects in Background Subtractor GUIAn example using drawContours to clean up a background segmentation result. |
|
Tracking of rotating point using Kalman filter GUITracking of rotating point. |
|
Dual TV-L1 Optical FlowOptical Flow Estimation using Dual TV-L1 method. |
|
Farneback Optical Flow GUIThis program demonstrates dense optical flow algorithm by Gunnar Farneback. |
|
Dense Optical Flow GUIDemo shows how to compute the optical flow for all the points in the frame using |
|
Sparse Optical Flow GUIIn this demo, we will understand the concepts of optical flow and its estimation using Lucas-Kanade method. |
|
Lucas-Kanade Sparse Optical Flow GUISparse optical flow to track points. |
|
Lucas-Kanade Optical Flow GUIA demo of Lukas-Kanade optical flow. |
|
Lucas-Kanade Tracker GUILucas-Kanade sparse optical flow demo. Uses |
|
Lucas-Kanade Homography Tracker GUILucas-Kanade sparse optical flow demo. Uses |
calib3d: Camera Calibration and 3D Reconstruction
|
Collect Calibration Pattern ImagesThis sample is used to take snapshots of a calibration pattern from live webcam. These images can be later used for camera calibration. |
|
Camera CalibrationThis example demonstrates camera calibration in OpenCV. |
|
Pose EstimationIn this sample, we learn to exploit calib3d module to create some 3D effects in images from a calibrated camera. |
|
Stereo Calibration with square chessboardDemonstration of stereo calibration, rectification, and correspondence. |
|
Stereo Image MatchingExample of stereo image matching to produce a disparity map and point cloud generation. |
|
Epipolar GeometryIn this sample we will learn about the basics of multiview geometry, and we see what is epipole, epipolar lines, epipolar constraint etc. |
feature2d: 2D Features Framework
|
FAST Algorithm for Corner DetectionIn this demo, we will understand the basics of FAST algorithm to find corners. |
|
ORB (Oriented FAST and Rotated BRIEF)In this demo, we will see the basics of ORB. |
|
Feature Matching + Homography to find a known objectIn this sample, you will use features2d and calib3d to detect an object in a scene. |
|
Affine invariant feature-based image matchingThis sample uses the affine transformation space sampling technique, called ASIFT. |
|
AKAZE local features matchingIn this demo, we will learn how to use AKAZE local features to detect and match keypoints on two images. We will find keypoints on a pair of images with given homography matrix, match them and count the number of inliers. |
|
|
AKAZE and ORB planar trackingIn this demo, we will compare AKAZE and ORB local features by using them to find matches between video frames and track object movements. |
|
Detect, Compute, and Match DescriptorsThis program demonstrates how to detect, compute, and match descriptors using various algorithms: ORB, BRISK, and AKAZE. |
|
Blob DetectionThis program demonstrates how to use BLOB to detect and filter region. |
|
Maximally Stable Extremal Regions (MSER)This program demonstrates how to use MSER to detect extremal regions. |
|
|
Multi-target planar trackingExample of using features2d framework for multiple planar targets tracking in a video using homography matching. |
|
Feature homography based planar trackingExample of using features2d framework with homography matching for tracking planar objects in a video. |
|
Planar augmented realityThis sample shows an example of augmented reality overlay over a tracked planar object to show its pose in 3D space. |
|
Correlation-based Tracking using MOSSE FiltersCorrelation filter based tracking using MOSSE filters (Minimum Output Sum of Squared Error). |
objdetect: Object Detection
|
Face Detection GUIHere is an example that illustrates how to detect faces in a live video stream. |
|
Face and Eyes Detection GUIIn this demo, we will learn the basics of face detection using Haar Feature-based Cascade Classifiers, and how the same extends for eye detection, etc. |
|
Facial Features DetectionA program to detect facial feature points using Haarcascade classifiers for face, eyes, nose and mouth. |
|
Smile Detection GUIThis program demonstrates the smile detector. |
|
DBT Face Detection GUIDetection-Based Tracker Face Detector. |
|
People Detection using HoG GUIThis program demonstrates the use of the HoG descriptor using the pre-trained SVM model for people detection. |
dnn: Deep Neural Network module
|
Deep Neural Network with Caffe modelsIn this tutorial you will learn how to use DNN module for image classification by using GoogLeNet trained network from Caffe model zoo. |
|
Fully-Convolutional Networks for Semantic SegmentationFully Convolutional Models for Semantic Segmentation. |
|
DNN Image ClassificationImage Classification task using DNN. |
|
DNN Semantic SegmentationThis sample demonstrates semantic segmentation, where we label each pixel in the image with a category label. |
|
DNN Object DetectionThis sample uses Single-Shot Detector to detect objects on image (produces bounding boxes and corresponding labels). |
|
DNN Face DetectionFace detector based on SSD framework (Single Shot MultiBox Detector). |
|
DNN Face RecognitionFace detection and recognition based on SSD and OpenFace embedding. |
|
DNN: Style TransferMaps the artistic style of various pieces of artwork onto input image. |
ml: Machine Learning
|
K-Means ClusteringThis program demonstrates kmeans clustering. It generates an image with random points, then assigns a random number of cluster centers and uses kmeans to move those cluster centers to their representitive location. |
|
EM ClusteringDemonstrates EM clustering. |
|
Gaussian Mixture Model (GMM)Demonstrates EM clustering, and also compares againt K-means clustering. |
|
K-Means Color QuantizationWe will learn how to use |
|
Comparison of different classifiers on the same datasetThis demonstrates an example of machine learning algorithms in a simple classification problem. It compares different classifiers using the same data samples. |
|
Showcase different classifiersExample using different classifiers. |
|
Logistic RegressionLogistic Regression to classify hand-written digits. |
|
Support Vector Machines (SVM)In this sample, you will learn how to use the OpenCV function |
|
K-Nearest Neighbors (KNN)In this demo, we will understand the concepts of k-Nearest Neighbour (kNN) algorithm, then demonstrate how to use kNN classifier for 2D point classification. |
|
Principal Component Analysis (PCA)In this demo, you will learn how to use the OpenCV class |
|
PCA for dimensionality reductionThis program demonstrates how to use OpenCV PCA with a specified amount of variance to retain. |
|
SVMSGD Interactive Classification GUITrain a classifier with SVMSGD algorithm that can handle linearly separable 2-class dataset. |
|
OCR of hand-written digits using KNNWe will use kNN to build a basic OCR application. |
|
OCR of English letters using KNNWe will use kNN to build a basic OCR application. |
|
OCR of hand-written digits using HoG and SVMIn this tutorial, we will build an SVM classifer to recognize hand-written digits (0 to 9), using Histogram of Oriented Gradients (HOG) as feature vectors. |
photo: Computational Photography
|
High Dynamic Range ImagingIn this tutorial we show how to generate and display HDR image from an exposure sequence. |
|
Inpainting GUIWe will learn how to remove small noises, strokes, etc. in old photographs by a method called inpainting. |
|
Non-Photorealistic RenderingThis tutorial demonstrates how to use OpenCV Non-Photorealistic Rendering Module. |
|
Seamless CloningThis tutorial demonstrates how to use OpenCV seamless cloning module. |
|
Non-Local Means Image DenoisingIn this demo, we will learn about Non-local Means Denoising algorithm to remove noise in an image. |
stitching: Images Stitching
|
Simple rotation model images stitcherA basic example on image stitching. |
|
Rotation model images stitcherA detailed example on image stitching. |
shape: Shape Distance and Matching
|
Shape context for shape matchingThis program demonstrates a method for shape comparison based on Shape Context. |
superres: Super Resolution
|
Super Resolution algorithms for video sequenceThis sample demonstrates Super Resolution algorithms for video sequence. |
videostab: Video Stabilization
|
Video StabilizerThis sample demonstrates video stabilization algorithms for video sequence. |