CS 194-26 Project 4A

Jaiveer Singh

Shoot and digitize pictures

The first step of this project was to produce several sets of input images. First, I took a few individual images to be rectified as "unit tests":

I also took sets of images for mosaicing, with high overlap between them (~70%):

Recover homographies

To recover the homographies, the key insight was to transform the standard equation relating a homography into a classic format of Ax=b.

This is accomplished by writing out the complete system of equations represented by the p' = H p equation:

... producing the following matrix with many zeroes that encapsulates the same information:

This is now in the form of Ax=b, the standard least squares problem. Solving with least squares for the x vectors gets us the 8 values of H (plus the 1) to reconstitute a full 3x3 H matrix.

Warp the images

In order to verify that this process works, I produced two rectified images of a Post-It Note and a Whiteboard, which are a "true" square and rectangle, respectively.

Blend images into a mosaic

Finally, in the culmination of all of these efforts, I produced 3 mosaics using the sets of images provided earlier.

Coolest thing

The coolest thing I learned was how to play with the A channel in RGBA images. I feel like I have a new superpower with being able to composite transparent images now that I can appropriately apply transparency blending.