The goal of this project is to implement automatic panorama alignment and stitching. This is done by finding all the Harris points, using adaptive non maximal suppression, and finally RANSAC.
The coolest thing I learned is how edges or corners can be automatically detected which is different from manually selecting points as I'm used to in the previous projects. However, it is not always perfect automatically (at least in my case).
Detecting corner features in an image using the sample harris code. In the image, there are many points covering the image itself since the diameter of the points is quite large. However, the basic idea is that Harris Corners select all the potential corners in our image which is a lot.
From the Harris corners we created, we detect more spread out feature points.
From running the ANMS algorithm, we create a feature vector for the points. We will then use each of the feature vectors created from each point for comparisons.
For feature matching, we select the nearest neighbors from the points returned from the ANMS algorithm.
Now we warp the images and compare them to the manual mosaics.
Left Image
Right Image
Left Image Feature Points
Right Image Feature Points
Manual Mosaic Image
Automatic Mosaic Image
Left Image
Right Image
Left Image Feature Points
Right Image Feature Points
Manual Mosaic Image
Automatic Mosaic Image
Left Image
Right Image
Left Image Feature Points
Right Image Feature Points
Manual Mosaic Image
Automatic Mosaic Image