Programming Homework

  • Goal: Build OpenCV project and learn to access(read/write) image pixels.
    • Practice some basic image processing functions: add noise, color reduction, image enhancement, image addition.
    • Learn to access pixels by different ways: scanning an image with pointers, scanning an image with iterators.
    • Learn to write efficient image scanning loops.
    • Extra: Study the Video IO and Video Analysis modules of OpenCV.

  • Goal: Histogram processing for image enhancement
    • Know histogram
    • Apply look-up table to enhance images
    • Learn histogram equalization, histogram backpropagation, and mean sift
    • Practice image retrieval by histogram matching.

  • Goal: Learn image filters
    • Remove noise by blurring filters: Gaussian, mean and median filters.
    • Detect edges by directional filters: sobel and laplacian files.

  • Goal: Learn to implement Harris corner detector
    • Practice Harris corner detector by OpenCV
    • Understand the effect of parameters of Harris detector

  • Goal: Learn how to implement keypoint detection
    • Learn to code several keypoint detection algorithms (GFTT, SIFT, SURF, FAST, BRISK, ORB) implemented by OpenCV.
    • Compare the multiscale detection capability of these algorithms.

  • Goal: Learn to implement feature matching of several local feature descriptors
    • Understand two keypoint matching methods: template matching and feature descriptor matching.
    • Implement the OpenCV feature matching method for 5 keypoint descriptors: SIFT, SURF, ORB, BRISK, FREAK.

  • Goal: Learn how to implement image alignment
    • Align two images by feature matching, find their homography, and warp the transformed image into an aligned image.

  • Goal: Learn to stitch images and obtain panorama
    • Practice a stitching software and learn to obtain good results by adjusting the software's settings and parameters.
    • Practice a tutorial C++ code and learn to stitch your images by hand-written program codes.