Rectifying and stitching images
Michael Jayasuriya
Two images of zellerbach stitched together
First let's shoot some images for mosaic-ing and rectify-ing.
Images I shot
A homography relates two images by a projective transformation. Given a correspondence between points on two images, we can find the homography.

Let's start by rectifying the composition book.
Rectified composition book
Now let's stitch together some panoramas. I blended them using alpha feathering, where the left edge of the image had an alpha value of 1 (fully opaque), and the right side of the image had an alpha of 0 where it drops of linearly left to right.
Stitched images
The coolest thing I learned from this was turning the problem into a least squares problem. I didn't know how to do it at first, but seeing the matrices get reworked was cool.
Now let's do this automatically, without having to select feature points. First we need to use harris corners to get a bunch of corners on each image, in hopes of matching corners and eliminating ones that aren't great matches.
Harris corners
There are too many points here, with a bunch of them providing the same information to least squares. Let's use ANMS to narrow down the number of points by eliminating points with low suppression radius.
500 ANMS filtered points
Now let's match points from image to image by taking 40x40 patches around each point and downsampling, then comparing the sum of squared distances between the patches.
Matching features between two images

After this we run ransac to compute the best points for our mosaicing task. We do this by randomly selecting 4 points, computing a homography, and then finding how well the homography works to transform points in the first image to the second. We continuously do this and keep track of the homography matrix that has the most "inliers".
After ransac, we can mosaic our images using the techniques of warping from part a.
Autostitched images are on the left, manually selected features stitching on the right.