For this project, I had to warp multiple images together into a panorama. To do this, I first had to manually select the correct position of multiple feature points shared between two images. Once I did that, I had to compute a homography, H, from one of these images to the other one. With H, I am able to transform img1 into the plane of img2. I find the proper offset to overlay the images between eachother, and then use feathering to blend the two images together.
Rectifying an image is when you take an image with a planar surface and warp the image so that the plane of this surface is front parallel. I did image rectification with a billboard and a poster that I found in Pittsburgh.
Original Scene
Rectified Image
Original Scene
Rectified Image
I went outside for once and took a few pictures of downtown Pittsburgh and Oakland, and then stitched them together to form a panorama
Image 1
Image 2
Panorama
Image 1
Image 2
Panorama
Image 1
Image 2
Panorama
You'll notice that the yellow, vertical supports are perfectly aligned. I believe it is because I couldn't find reliable feature points near them since there are no feature points on them or in the sky.
For bells and whistles, I warped an image of my friend onto a poster to replace it, and I made graffiti on the crosswalk
Original Image
New Poster
Result
Original Image
Graffiti Image
Result
For part 2 of this project, I had to create a system that would automatically create corresponding feature points between two images. To do this, I followed the research paper "Multi-Image Matching using Multi-Scale Oriented Patches" by Brown et al. It starts with using harris corner detector to find distinct interest points. It uses Adaptive Non-Maximal Suppression to reduce the number of feature points and make sure that they are spatially well distributed. Then we must match these points together and then use RANSAC to find the correct match.
My automated panorama was not as good as my manual panorama. I believe that I was either too strict with my thresholds for feature matching, my feature descriptors weren't accurate enough, or that my image was too large (so I would need more than 500 pts from AMNS). However, I'm still satisfied with the results.
For the feature point plot, red points are points chosen by AMNS, blue points are feature matched points, and green points are the final points from RANSAC. Also, I messed up the aspect ratio from saving some of these plots
Image 1
Feature Points - im1
Image 2
Feature Points - im2
Auto-Panorama
Manual Panorama
Image 1
Feature Points - im1
Image 2
Feature Points - im2
Auto Panorama
Manual Panorama
Image 1
Feature Points - im1
Image 2
Feature Points - im2
Auto Panorama
Manual Panorama