Skip to content

junhuanchen/Learning-OpenCV-3_examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learning OpenCV 3

This is the example code that accompanies Learning OpenCV 3 by Adrian Kaehler and Gary Bradski (9781491937990).

LIST

SPECIAL FILES:

  • README.md -- this readme file
  • Dockerfile -- complete self contained opencv environment using Ubuntu 16-04
  • CMakeLists.txt -- how to buld everything here

EXERCISES:

  • Exercises at end of Chapter 5
  • Exercises at end of Chapter 7
  • Exercises_8_1.cpp Exercises at end of Chapter 8
  • Exercises_9_1-2-10-11-12-15-16.cpp Exercises at end of Chapter 8
  • Exercises_9_4.cpp Exercises at end of Chapter 9
  • Exercises_9_5.cpp Exercises at end of Chapter 9
  • Exercises at end of Chapter 11

EXAMPLES:

  • Example 2-1. A simple OpenCV program that loads an image from disk and displays it
  • Example 2-2. Same as Example 2-1 but employing the “using namespace” directive
  • Example 2-3. A simple OpenCV program for playing a video file from disk
  • Example 2-4. Adding a trackbar slider to the basic viewer window for moving around
  • Example 2-5. Loading and then smoothing an image before it is displayed on the screen
  • Example 2-6. Using cv::pyrDown() to create a new image that is half the width and
  • Example 2-7. The Canny edge detector writes its output to a single-channel (grayscale) image
  • Example 2-8. Combining the pyramid down operator (twice) and the Canny
  • Example 2-9. Getting and setting pixels in Example 2-8
  • Example 2-10. The same object can load videos from a camera or a file
  • Example 2-11. A complete program to read in a color video and write out the log-polar-
  • Example 4-1. Summation of a multidimensional array, done plane by plane
  • Example 4-2. Summation of two arrays using the N-ary operator
  • Example 4-3. Printing all of the nonzero elements of a sparse array
  • Example 4-4. A better way to print a matrix
  • Example 5-1. Complete program to alpha-blend the ROI starting at (0,0) in src2 with the ROI starting at (x,y) in src1
  • Example 7-1. Using the default random number generator to generate a pair of integers
  • Example 8-1. Unpacking a four-character code to identify a video codec
  • Example 8-2. Using cv::FileStorage to create a .yml data file
  • Example 8-3. Using cv::FileStorage to read a .yml file
  • Example 9-1. Creating a window and displaying an image in that window
  • Example 9-2. Toy program for using a mouse to draw boxes on the screen
  • Example 9-3. Using a trackbar to create a “switch” tha t the user can turn on and off;
  • Example 9-4. Slightly modified code from the OpenCV documentation that draws a
  • Example 9-5. An example program ch4_qt.cpp, which takes a single argument
  • Example 9-6. The QMoviePlayer object header file QMoviePlayer.hpp
  • Example 9-7. The QMoviePlayer object source file: QMoviePlayer.cpp
  • Example 9-8. An example program which takes a single argument
  • Example 9-9. The WxMoviePlayer object header file WxMoviePlayer.hpp
  • Example 9-10. The WxMoviePlayer object source file WxMoviePlayer.cpp
  • Example 9-11. An example header file for our custom View class
  • Example 10-1. Using cv::threshold() to sum three channels of an image
  • Example 10-2. Alternative method to combine and threshold image planes
  • Example 10-3. Threshold versus adaptive threshold
  • Example 11-1. An affine transformation.
  • Example 11-2. Code for perspective transformation
  • Example 11-3. Log-polar transform example
  • Example 12-1. Using cv::dft() and cv::idft() to accelerate the computation of
  • Example 12-2. Using cv::HoughCircles() to return a sequence of circles found in a
  • Example 13-1. Histogram computation and display
  • Example 13-2. Creating signatures from histograms for EMD; note that this code is the
  • Example 13-3. Template matching
  • Example 14-1. Finding contours based on a trackbar’s location; the contours are
  • Example 14-2. Finding and drawing contours on an input image
  • Example 14-3. Drawing labeled connected components
  • Example 14-4. Using the shape context distance extractor
  • Example 15-1. Reading out the RGB values of all pixels in one row of a video and
  • Example 15-2. Learning a background model to identify foreground pixels
  • Example 15-3. Computing the on and off-diagonal elements of a variance/covariance model
  • Example 15-4. Codebook algorithm implementation
  • Example 15-5. Cleanup using connected components
  • EXTRA Example 15-6, using OpenCV's background subtractor class. Modified by Gary Bradski, 6/4/2017
  • Example 16-1. Pyramid L-K optical flow
  • EXTRA Example 16-2. 2D Feature detectors and 2D Extra Features framework
  • Example 17-1. Kalman filter example code
  • Example 17-2. Farneback optical flow example code
  • Example 18-1. Reading a chessboard’s width and height, reading them and calibrating
  • EXTRA Example 18-1. From disk. Reading a chessboard’s width and height, reading them and calibrating
  • Example 19-1. Bird’s - eye view
  • Example 19-2. Computing the fundamental matrix using RANSAC
  • Example 19-3. Stereo calibration, rectification, and correspondence
  • Example 19-4. Two-dimensional line fitting
  • Example 20-01. Using K-means
  • Example 20-02. Using the Mahalanobis distance for classification
  • Example 21-1. Creating and training a decision tree
  • Example 22-1. Detecting and drawing faces

IMAGES:

  • box.png
  • box_in_scene.png
  • checkerboard9x6.png
  • example_16-01-imgA.png
  • example_16-01-imgB.png
  • faces.png
  • BlueCup.jpg
  • HandIndoorColor.jpg
  • HandOutdoorColor.jpg
  • HandOutdoorSunColor.jpg
  • adrian.jpg
  • faceScene.jpg
  • faceTemplate.jpg
  • fruits.jpg
  • stuff.jpg

MOVIES:

  • test.avi
  • tree.avi

CLASSIFIERS:

  • haarcascade_frontalcatface.xml #Cat faces!
  • haarcascade_frontalcatface_extended.xml
  • haarcascade_frontalface_alt.xml

DIRECTORIES:

  • birdseye -- where the images are of checkerboards on the floor

  • build -- you will make and build things in this directory

  • calibration -- checkerboard images to calibrate on

  • muchroom -- machine learning database

  • shape_sample -- silhoette shapes to recognize

  • stereoData -- left, right image pairs of checkboards to calibrate and view on

  • In progress May 24, 2017

  • In progress June 13, 2017

  • In progress June 20, 2017

  • In progress June 22, 2017

  • In progress July 02, 2017

  • In progress July 03, 2017

To do:

  • Chapter 15
  • Chapter 16
  • Chapter 17
  • Chapter 18
  • Chapter 19
  • Chapter 20
  • Chapter 21
  • Chapter 22

Checking Chapters 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 22 23

  • Submit associated errata for 15 16 17 18 19 20 21 22
  • Throw in some bonus material
    • background subtraction
    • feature detector/descriptors
    • More machine learning
    • Some DNN examples(?)
    • Throw in some exercises

For default suggestions of how the run the code, it assumes you put your build directory under Learning-OpenCV-3_examples directory. Thus, you

Previously, from the Learning-OpenCV-3_examples directory:

  • mkdir build
    • Then:
  • cd build
  • cmake ..
  • make -j

Note, for your interest, included here is an Ubuntu Docker file that

  • Shares a directory with the host operating system
  • Shares the first camera between both systems
  • Loads Ubuntu 16.04
  • Loads all dependencies for OpenCV 3.2 and opencv_contrib
  • Loads and builds OpenCV 3.2 and opencv_contrib into a build directory
    • executable files end up in opencv-3.2.0/build/bin
  • Git clones the code (and Docker file) for Learning OpenCV 3 and builds it
    • executable files end up in Learning_OpenCV-3_examples/build
  • To get to the top level directory, just type: cd

Click the Download Zip button to the right to download example code.

Visit the catalog page here.

See an error? Report it here, or simply fork and send us a pull request

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.5%
  • CMake 3.0%
  • Dockerfile 1.5%