These panorama's we're all made using gradient domain blending. Instead of blending pixel values the image gradients are blended, and then the image
that best fits the blended gradients is recovered using a least squares fit. I also contrained to the entire left and right column of pixels to their original values so that
they would match up in the viewer. Gradient domain blending helps adjust for exposure difference between images. It also lets you use a very small blend width (I got
good results with just 2 pixels) without noticable seams. This helps prevent ghosting of objects that move while the photos are taken or caused by misalignments.
full resolution jpeg
Images that were significantly darker than others in the sequence tended to look a bit washed out in the panorama. I believe
this is because the gradient domain blending will try to adjust brightness by adding or subtracting a constant value accross that entire image. A better adjustment would probably be
to mutliply every pixel value in that image by some constant.
As a side effect I noticed that the the gradient domain blending actually filled in the black areas on the top of the panorama bacause the gradients along these borders
were set to zero. For some reason this didn't happen on the bottom, somehow due to the way the gradients were accumulated.
Other Bells and Whistles:
Sub-Pixel Blending
I'm in one panorama 3 times!
Sequence 1 taken with Kaidan head
full resolution jpeg image
panoramic viewer
Sequence 2 taken with Kaidan head
full resolution jpeg image
panoramic viewer
Sequence taken by hand
full resolution jpeg image
panoramic viewer