The goal of this project was to create an automatic panorama stitching algorithm Given a folder of images – including images that are not a part of the panorama - the algorithm decides which images go together, and stitches them to produce the final panoramic image. To produce a good-looking panoramic image one should supply the algorithm with images that have the same point of view, different view directions, and overlapping fields of view.
Image Processing Techniques
There are 2 parts of this project:

1) Applying perspective transform to an image.

2) Creating a system for automatically stitching images.

1) Perspective Transform: To apply the corrective perspective transform to an image, first the the parameters of the transformation between each pair of images are recovered – homography in this case. After recovering the homography, this transformation is applied to one of the images. In this algorithm 'inverse warping' was used to apply the transformation. Then after placing images on top of each other accordingly, a blending algortighm is used to get rid of the stitching edges. In this implementation, a multi-scale Laplacian pyramid was used to blend.

2) Automatic Stitching: For automatic stitching, firstly the corner features are captured through 'harris' algorithm. Then Adaptive Non-Maximal Suppression was used to get ore accurate feature points. Then through a feature matching implementation, images are paired up.

The algorithm itself can be used for many other things. Here's an example of what can be done with the current algorithm: