Please refer http://www.cs.washington.edu/homes/cyy/590ss/project1 if the java viewer doesn't work locally.
All pictures were taken on the morning of Martin Luther King Day (1/15) 2001, except for the sequence E, HUB lawn, which is given as the test sequence. To avoid stitching images with different exposures, I fixed the camera setting (exposure and shutter speed) when I took the images. The map on the left shows the location where the sequences were taken. The names of the sequences listed below link to the panorama viewer with the image of half resolution. Scroll down to the sequence you want to look. For each sequence, there is a lower-resolution stitched image. Click that lower-resolution image to see the image of full resolution. There are three resolutions for LivePicture Panorama viewer, full, half and 1/3. Pick up the one which works on your computer.

Nikon Coolpix 990 with Kaiken Head
A Parrington
B Clark Hall
C Quad
D Circle
E Hub lawn
F Grail
G Fountain
H Physics Building

Hand-held Canon Powershot G1
1 Gate
2 Denny Hall
3 Henry Art Gallery
4 Sieg Hall
5 Geophysics


Nikon Coolpix 990 with Kaiken Head
Generally speaking, the alignment of the sequences with Kaiken head is very smooth. Same set of parameters is good enough for all sequences. After stitching, I ran an additional pass to remove the invisible parts of the image. It usually shrinked the image height by 4 pixels or so. I rescaled the image such that the height is back to 512.

As I siad, I fixed the camera setting to avoid the problem with different exposure. It turns out that part of the image are over-illuminated and saturated, especially when the camera faces towards the sun (Did I say sun in Seattle?). That is becase I didn't adjust the exposure setting. I finally found that the indoor scene will yield the best result. It is because the dynamic range of the indoor scene is usually smaller than outdoor scene such that one camera setting is enough for all angles. Unfortunately, I only have one indoor sequence, grail.

I spent most of time on the test sequence, HUB lawn, to deal with its exposure problem. The following are two images from that sequence. The result of alignment is not very good.

warp06.tga                   warp05.tga



The alignment of the above two images



Result of stitching


To correct the effect of different exposures. I first calculate the color histogram for the overlap part of two images, f(I) and g(I). I then use LK algorithm to estimate the contrast adjustment a and brightness adjustment b such that these two histograms match the best. That is, find a and b such that L2 norm of f(aI+b)-g(I) is minimum. The following figure shows the matching of the histograms.



Note that the histigrams are accumulated. The original histograms have some high frequency portion, which is not good for LK procedure. The accumulated histogram is smooth and better for LK. The following is the result of adjusting warp06.tga to match the histogram of warp05.tga.

  



The alignment of the above two images


The process doesn't only help the alignment but also estimate the brightness adjustment. However, if I run it on the whole sequence. The accumulated error will make the brightness of the final image is quite different from the first image though the brightness is smooth inbetween.


Result of running the algorithm for whole sequence


To correct this, I only ran the algorithm for those pairs with signficant brightness difference.

Result of only running the algorithm on the pairs with significant brightness difference


A more principle approach would be optimize u, v, a and b at the same time, that is, we optimize for I0(x+u, y+v)-[aI1(x, y)+b]. However, my implementation doesn't work quite well.

Parrington full resolution half resolution 1/3 resolution

Clark Hall full resolution half resolution 1/3 resolution

Quad full resolution half resolution 1/3 resolution

Circle full resolution half resolution 1/3 resolution

Hub Lawn full resolution half resolution 1/3 resolution

Grail full resolution half resolution 1/3 resolution

Fountain full resolution half resolution 1/3 resolution

Physics Building full resolution half resolution 1/3 resolution



Hand-held Canon Powershot G1
The results for hand-held camera are not as good as the ones with tripod. Most of the problems come from the inputs don't follow the assumption of translation model. The following two partial image pairs show that there is no way to align them by using pure translation model. The first two sequences are especially bad because my frozen hands shook on that 40F morning.

  
There exist some rotations which are not along the major axis,
which can't be modeled using the translation model.


Another result of shaking hand is that we lost large portion of the image. The following is the example of the outputs at each step. We can see the big difference of the height of the first and final image after stitching. After shearing, there are large invisible are on the top . To get the resolution of 512-pixel height without resampling a lot, I use 640x480 resultion as the input and crop the final result such that its height is 512.


The stitching result


After shearing and cuting off the part below the baseline


After removing the invisible part, rescaling and adjusting brightness by PaintShop



Gate full resolution half resolution 1/3 resolution

Denny Hall full resolution half resolution 1/3 resolution

Henry Art Gallery full resolution half resolution 1/3 resolution

Sieg Hall full resolution half resolution 1/3 resolution

Geophysics full resolution half resolution 1/3 resolution