#Assignments for Computer Vision CS543 taught by Prof.David S Forsyth (code private due to course policies)
For the high-resolution glass plate scans provided above, exhaustive search over all possible displacements will become prohibitively expensive. To deal with this case, implement a faster search procedure using an image pyramid.
An image pyramid represents the image at multiple scales (usually scaled by a factor of 2) and the processing is done sequentially starting from the coarsest scale (smallest image) and going down the pyramid, updating your estimate as you go.
Algorithm outline
The Fourier-based alignment algorithm consists of the following steps:
-For two color channels C1 and C2, compute corresponding Fourier transforms FT1 and FT2.
-Compute the conjugate of FT2 (denoted as FT2*- if you don't remember your complex numbers, look this up!), and compute the product of FT1 and FT2*.
-Take the inverse Fourier transform of this product and find the location of the maximum value in the output image. Use the displacement of the maximum value to obtain the offset of C2 from C1.
Part 1: Stitching pairs of images The first step is to write code to stitch together a single pair of images.
A: Estimate the albedo and surface normals
Given sample:

The goal of this part of the assignment is to implement the Tomasi and Kanade affine structure from motion method as described in lecture. You will be working with Carlo Tomasi's 101-frame hotel sequence.

The goal of this part is to implement a simple window-based stereo matching algorithm for rectified stereo pairs.
Original stereo image pair:
Output depth map:











