This is the second part of the panorama stitching project where I created a system for automatically stitching images into a mosaic.
Here we used Harris corner detector as mentioned during the lectures. The idea is that if a window made small shifts in different directions, the avg changes of its intensity would be large in all directions if it contains a corner. Below are the points retrieved using the provided code get_harris_corners:
In order to get the points to be more evenly distributed, Adaptive Non-Maximal Suppression is applied:
Below are the feature descriptors sampled from my lewis, evans, and workstation images:
Here I implemented the feature matcher by using computing simple SSDs and applying a threshold of 0.4.
Here I implemented the ransac algorithm to find the best homography:
Below are the resulting panoramas stitched automaticly (left), and manually (right):
The automatic alignment saved me so much pain and made the panorama stitching process a lot more scalable in real life. The indexing of arrays (especially with the provided harris function having x and y flipped) really took me a long time, yet in the end the learning experience of implementing a research paper was very enjoyable!