CSCI 507 / EENG 507 - HW5

Quick Reference

  • Due date: Monday, November 5th by the beginning of class.
  • Submission: Submission must be made on Canvas
  • Format: Your submission will consist of two files: (1) a matlab or C++ file (or tar/zip/archive of code), and (2) a PDF file. Please upload these as two seperate files – do not group both code and report into the same tar/zip/archive.

1 Assignment (100 pts)

A “flatbed scanner” is used to take a picture of a flat object, by moving a sensor linearly over the object. However, the size of the object is limited to the size of what will fit in the scanner. In this assignment you will develop software to take a picture of an arbitrarily large flat object, by moving a camera in a freeform motion across the object, and then stitching the images together.

This capability is similar to the “panorama” applications found on smart phones. However, panorama apps require the user to rotate or translate in a straight line. In contrast, your app will allow any rotational or translational motion.

The following is a sample images of the mural in the geology museum, taken by moving a handheld camera in a freeform motion. On the course website, there are 12 such images ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12). Using the methods covered in class, develop a program that stitches all 12 images together to make a composite image of the mural. Your program should detect SIFT features and match them.


Note – you should change the first image to an “orthophoto”, so that the rest of the images are registered to an orthophoto frame. You can do this manually, by picking points with the mouse.

Once you have successfully stitched the mural images together to create a composite image, repeat the process on another object. Take at least six images (you can use a USB webcam or a phone camera) of a large flat object. Make sure you perform rotational as well as translational motion of the camera. Stitch the images together to create a composite of the whole object.

2 Turn in

  1. Your MATLAB or C++ program listing, with comments.
  2. A PDF file containing a description of your method of solution and the architecture of your program, your input image, and your output composite images for both examples (the mural example and the one you create).