Project 2: Panoramic Mosaic Stitching

CS 766 - Fall 2009

Faisal Khan, Varghese Mathew

Source File Explanation
load_images.m Loads all images in a given directory.
cylinder_projection.m Projects an image onto cylindrical coordinates.
model_homography.m Computes the homography between two images using SIFT.
sift The SIFT executable from the SIFT Program.
sift.m Modified version of Matlab SIFT.
sift_matcher.m Our code that does feature matching using SIFT features. Based on match.c in SIFT package.
stich.m Given two images and the homography between the, this code stitches them together using the feathering blending method.
run.m This is the core module. This code takes a set of images, and an array of pairwise homographies, and creates the panorama from them. It can create both partial and complete (full 360 degree) panoramas.
run_normal.m This is a wrapper over run.m. This code take a directory as argument, loads all the images in the directory, rotates them as specified, computes pairwise homographies and then calls run to create the complete panorama.
run_hdr.m This code is aimed towards creating high dynamic range panoramas. This takes a list of directories, and a key directory as argument. For creating HDR panorama, all constituent panoramas at different exposures should be stitched together using the same homographies. So we compute homography using the images in the key directory and then use that homography to create panoramas for images in each of the given directories in the list.

Implementation details

Step1: Images

Equipment used and parameters:

Step2: Warping each image into cylindrical coordinates.

Step3: Computing the alignment of images in pairs.

Step4: Stitching and cropping the images

Step4.5 (bonus): Shearing.

Step5: Configuring the viewer


Lathrop Hall Garden (this is our preferred image)

Lathrop Hall Panorama

View in Panorama Viewer

Indoors: CS department Conference room 4310

Note that we captured the images such that we figure
in multiple locations in this panorama !!! :D
Multiple role

View in Panorama Viewer

test image panorama

Before cropping
before cropping

After cropping

after cropping

Bonus Points:

Bonus1: HDR Panorama (partial because battery died).

The final HDR Image
HDR Panorama

The different panoramas at different exposures
HDR Panorama
HDR Panorama
HDR Panorama
HDR Panorama
HDR Panorama
HDR Panorama
HDR Panorama
HDR Panorama
HDR Panorama
HDR Panorama
HDR Panorama

Bonus2: Vertical Panorama

Here, we apply the panorama technique to stitch multiple images in the vertical direction to create a wide angle vertical image.
Vertical Stitching

Bonus3: Correcting Shear - Eagle Heights Garden

In this pictures, the shear in Y direction and our success at correcting it
using our bonus shear algorithm is distinctly visible.
Eagle Heights, Before Crop

Eagle Heights Final

View in Panorama Viewer