



Posted on Wed, April 24. The project must be submitted to the Teaching Assistant by Friday May 03. The project must be submitted by electronic mail from your class account ya426XX to the class account ya42601@umd5.umd.edu. You must submit a readme file, your source files, and processed images. You must tar your multiple files into a single file named p3.tar.
Overview.
The goal of this project is to create a mosaic that consists of one larger image of the scene composed by five pictures (scene ). The mosaic maps all the images onto the coordinate system of one of them.
The five pictures were taken by one camera that remained in the same position except for a rotation. Each file is in the .pgm file format. In unix system, type "man pgm" to get a description of the file format. Besides Matlab, you also may use a C library with several functions for opening, reading, writing and allocating memory for pgm files. For further information, type "man libpgm" in a unix system. This library is available both on the junkfood and wam machines.
Part I.
If two cameras (or one camera at two different times) take a picture of a planar scene, the images are related by a general linear transformation. No matter what the relative positions and orientations of the cameras. The same linear transformation also appears concerning two views of any scene (possibly not restricted to a plane) when both views are taken from the same position but in different directions. The mosaic creation problem consists in given a number (five) of different images, all taken by a camera that remained in the same place but rotated in different directions, create a single large image (mosaic) which contains all the original images, warped appropriately.
Initially, the mosaicing process works with two images at a time. Find manually corresponding points in both images that are the projection of a interesting scene point that appears in both images (e.g. the top of the straw of the drink on the desk). In order to perform this task, you may use xv in a unix system if you prefer a C implementation or ginput function in Matlab. Record the pixel coordinates of that point in both images. Use the point correspondences to solve for the transformation which maps points in the second image to points in the first. You will need at least four points in order to solve a linear system with the eight unknowns that define the transformation matrix. You merge the two images by creating a new image with the first image, and the results of applying the affine transformation to the points of the second image. You may have to do some interpolation, as the points are not likely to fall exactly on integer pixel coordinates. The full mosaic is obtained by performing this process for each pair of images.
Part II.
Given a video of a planar poster obscured by several wooden dowels, create a mosaic of the poster filling in for the pieces behind the dowels from other views. The video is taken by a constantly translating camera.
Initially, you must compute the normal/optical flow between two images in order to identify the fence. Once the fence is identified using the normal/optical flow, then replace the fence by blank (white pixels). Use the mosaic process above to fill in the blanks in each frame of the video.
Submission Files.
You must submit a readme file, named readme.txt. The readme file enumerates and describes all files in you tar file. The readme file should also contain a description of your implementations. You must also submit your source files and processed images (mosaic and video). The processed images must be compressed (zipped) using gzip. All multiple files must be in a single tar file (p3.tar) and sent to ya42601@umd5.umd.edu.
References