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.

P6: Feature Matching

  • 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.

P7: Image Alignment

  • 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.

P8: Image Stitching

  • 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.