Project 4 - Image Warping and Mosaicing

Warping

Disk

This is just a basic warping to make the disk look square again.

Window

This makes it look like we are facing the far wall directly.

Desk

This is designed to stretch the limits of warping. It changes the viewpoint to the ground/table plane.

Mosiacing

These images were all taken from my Canon SD870 without a tripod, so they are a bit blurry. The stitching is pretty uninteresting, with 6-10 correspondence points chosen each time. For blending, I used an alpha channel that is automatically calculated in the overlap of the images. This still leaves some artifacts though, so I will need to explore different blending options.

Junction Hollow during the Day

This is a panorama taken from the balcony of Roberts overlooking Junction Hollow, the Carnegie Museums, and the Cloud Factory.

Junction Hollow at Night

This is taken from the same location at night, using 2 second exposures. One of my bells and whistles will be having a day to night blend.

Purnell

This is Purnell taken from outside the UC.

Bells and Whistles for Part 1

Fake Graffiti

This is a bunch of MATLAB info messages in a terminal being projected onto the side of Purnell

Day to Night Panorama

This is the same location as the panoramas above, only this time, its blending both day and night. I just took the above panoramas, picked correspondance points, warped them to align, and then used an alpha mask to fade between them.

Part 2

Methods

I used the given Harris function to get the original points. ANMS then reduces it to the blue points shown above. After creating the normalized descriptors, I reduce the points again by only keeping those for which the best descriptor match is more than twice as good as the next best. Those are the red points. Finally, iterating through RANSAC 1000 times results in the quite accurate green points.

Results

These are the same panoramas as before, but automatic. The stitching is probably actually more accurate, because I wasn't careful picking the points by hand. Notice also that the stitching exposes a pretty aweful barrel distortion in my camera.

Bells and Whistles Part 2

Automatically find and stitch panoramas in a folder

The above images were all placed together in a folder. I wrote a function to iterate through, comparing each image to each other image with Harris through RANSAC. It created a union-find array to store matches. I chose matched panoramas to be those where more than 10 points matched after RANSAC. I ran out of time, so right now it only stitches pairs of images together, but in theory, the same union-find array could be used to stitch all matching sets. The results are below. There were no false positives, but as you can see, the second Purnell stitch failed for some reason.