15-869 Image Based Modeling & Rendering

Assignment 1: Image Mosaicing

Completed by:  Chris Rodriguez (cjr2@andrew.cmu.edu)

                         Tad Drake (drakejr@andrew.cmu.edu)

For this Assignment, we created an program to help us register, and then warp images so that we can create a larger picture from a group of smaller ones.

The way we registered was by drawing a box on the interface screen and forcing the user to create the correspondence for us manually.  Then, we take those two points and find the perspective matrix to warp the new image onto the current mosaic.  To do this, we used destination scanning, and bilinear interpolation between pixels to get the color.  We also weighted the images with a heuristic based on distance from the center of the picture.

To do sub-pixel registration, we allow the user to zoom into the image.  This allows them to place a box point in between image pixels (they were bilinear interpolated), and returns a float value to the program representing the distance between the pixels.  When we calculate the projection matrix, we use float values for x and y instead of integers.  This allows a more accurate mosaicing process.

After the images are registered, it only takes a few seconds to create the mosaiced image.  It takes longer when the panorama gets larger, because it copies the non-intersecting images (more importantly, the current panorama before the add) pixel by pixel. 

Some other difficulties that we found:

How we split up the work:



Getting back to the pictures, Here are 2 mosaics that we created:

This one is more of a panoramic image:

Created from these images:

And this one is more of a planar image mosaic:

Created from these images: