In this project, I explore using homographic transformations to stitch images taken with the same center of projection into a panorama. This is similar to simulating a single image capture with a larger field of view (FOV). Using a subprogram, I manually specified match points between the two images. I used around 10-20 match points to create an overconstrained least-squares problem to get a better homographic transformation.
Another neat trick of homographic transformations is the ability to "rectify" an image to make it appear as if it were being looked at from another angle. This is commonly used to take surfaces captured at an oblique angle and warp them to look as if captured orthogonally.
These are the original images taken from the same position, rotating the camera.
Next the side images are warped to match the perspective of the middle image.
Finally, the images are blended into one image.
One drawback to the flat projection that is used is that the closer the field of view approaches 180 degrees, the larger the size of the image, due to the perspective transformation. This makes taking more than 3 photos with a normal wide angle lens not as useful.
One interesting thing I tried was to take vertical photos to take advantage of the wide field of view to expand vertical view and using the panaramo stitching to still maintain a wide horizontal field of view.
Note how close to the house this picture was taken. A normal phone camera would not be able to capture this much of the house standing from the sidewalk beside it in one shot without panorama functionality. Even wide angle lenses will warp straight lines, which is not noticeable in this stitch.
Original images were taken at an oblique angle. A homograhphic transformation was applied, using the corners of a rectanlge as the target coordinates.