For this part, I shot pictures of the campanile, VLSB, and lower Sproul with 2 different perspectives.
To recover the homography between the photos, I hand selected points from each photo then used this equation to find the homography matrix:
h33 is set automatically to 1.
Below is before and after pictures of the campanile rectified to its the right face
Below is before and after pictures of VLSB rectified to its 2nd window
For this part, I used the provided harris helper code then removed all the points with a corner strength less than 1.2.
Afterwards, I used ANMS to prune the points.
To find matching points, I sampled an 40x40 feature descriptor around each point and downsampled it to a 8x8 pixel space. I normalized the feature descriptor and matched points based on whether there feature descriptors had a SSD error of over 0.675 or not.
To align the images, I randomly chose 4 points from points that had matches and calculated the homography between them and their matches. I applied the homographies to the points and found the inliers, which were points that were less than 10 pixels away from their matches. I ran this loop 10000 times then chose the biggest set of inliers and used that to make my homography.
Here are some merged images with the hand selected points first and automatic points second