Lawrence Livermore National Laboratory



CASIS Short Course

Matt ReverOpenCV 101: A Practical Guide to the Open Computer Vision Library
Matt Rever, LLNL

This course will provide a pragmatic, hands-on introduction to OpenCV suitable for any engineers or scientists who work with images and/or videos and wish to add a variety of classical and state-of-the-art vision algorithms to their toolbox.

August 15 • 18 • 22 • 25
Brownbag Session from noon – 1:30 pm
Edward Teller Education Center at LLNL (B6675)

For more information on this short course, please contact Randy Roberts.


View Abstract View Prerequisites View Notes & Sample Files

Videos

Session 1 — August 15


Session 2 — August 18

Session 3 — August 22


Session 4 — August 25

Agendas

August 15

  • Introduction to OpenCV
    • What is OpenCV?
    • What can it do?
    • Who uses it?
    • Why we should use it
  • Learning resources
    • Web resources
    • Books
  • Digression: Python
    • Advantages of Python
    • Installing Anaconda
    • Introduction to IPython/Jupyter Notebooks
  • Installing OpenCV onto Anaconda Python
  • Getting started using OpenCV
    • Loading images of different formats
    • Displaying images
    • Basic filtering operations
    • Saving images
    • Colorspaces (cover RGB<->BGR gotcha, HSV)

August 18

  • OpenCV in Python and NumPy
  • Digression: working with NumPy arrays
  • Essential operations
    • Reading and editing pixel values
    • Retrieving and understanding image dimensions
    • Working with Regions-of-Interest
    • Channels: Splitting and merging
    • Adding, subtracting, and blending images
    • Overview of mathematical tools (FFT, SVD/PCA)
  • Filtering and morphological operations
    • Lowpass/smoothing filters
    • Highpass/edge-detection filters
    • Adaptive thresholding
    • Erosion/dilation
    • Floodfilling
  • GUI Features
    • Creating windows
    • Getting keyboard input
    • Using the mouse
  • Inpainting demo

August 22

  • Template matching
  • Image segmentation
    • Watershed algorithm
    • GrabCut
  • Image transformations
    • Translation/rotation/scaling
    • Affine and perspective transforms
  • Features
    • Finding lines and circles with the Hough Transform
    • Corner detections (ie Harris)
    • Advanced features: SURF/SIFT, BRIEF/ORB, HoG
  • Demo: feature-matching to compute homography between images

August 25

  • Working with video
    • Loading videos of various format
    • Playing/controlling videos
    • Extracting frames
    • Saving videos
  • Video analysis and object tracking
    • Meanshift and Camshift tracking
    • Background subtraction
    • Kalman filtering
    • Optical flow
  • Machine learning
    • Overview of ML
    • Supervised vs unsupervised learning
    • Using OpenCV’s support-vector-machine methods
    • Demo: Handwritten digit classification
    • Dimensionality reduction/PCA
    • Clustering (K-means)
    • Human face detection and identification