Luis Ballesteros

15-463 S10

Project 4

Homographies are cool, here are some things I did with them.

First I rectified this wall. This was pretty easy once I had the homography solver, and it only needed 4 control points

I also used the homographies, along with a cool blending algorithm that uses bwdist to find what the alpha should be at each point in the intersection, to make some panoramas. Piecing out the control points for these was tedious, but I want to show the importance of blending

Here are 2 panoramas of the UC. One is with 9 pictures and no blending. It looks awful! The second is with 6 pictures of the UC and with blending. It looks better. I think my blending algorithm needs some work or I need to be smarter about how I piece togetehr the images. It seems my blending algorthing breaks when attaching an image onto a concave spot. This is surely fixable, though.

You can see how inconsistent my camera was by the light variation in each picture. However, some blending makes it less noticable. This is also when I discovered a bug that my blending doesn't work on concave joins, but I'll get around to that.

Lastly, here is a really cool panorama I took of an awesome chandelier in Phipps Conservatory. I was a bit upset when looking at the pictures because I accidentally moved the center of projection, but my blending algorithm made that no problem at all.

Auto Stitching

I used the standard autostitching techniques including harris point detection, ANMS, descriptors, matching, and RANSAC. Here is the result of this process. In these first two images, red points are matched harris points after ANMS (I could probably get away with fewer). The yellow points are those whose descriptors match. The blue points are RANSAC points that agree under a common homography. Then I just passed these results through part 1 to do the stitching once I ahd the control points.

Here is the stitched result for those 2 images:

I couldn't have done it better myself!

Now where the algorithm is limited is in stitching multiple images. Since the way I did part 1 was to add new images onto an accumulator, I was limited in my approach to part 2. This is because once I had an accumulated image, running feature detection dilutes features in the interest area of the aggregate panorama. I.e. if the new image connects at the top, I will find 500 points in the new image, but 500 points throughout the whole aggregate image, less of which will be on the top since the image is bigger.

The correct solution is to use a more sophisticated algorithm. My solution is to just crank up the number of points and let RANSAC do all the work. So I created 2 aggregate images of 2 pictures each and matched one onto the other. It worked pretty well except for one spot in the middle which is acceptable because that is an artifact of moving the center of projection when taking the pictures in the first place