Create Gigapixel Panoramas

Capture
The capture platform is a Meade LX200 telescope mount. The telescope was removed to accommodate a Canon 1DS Mark II with a 100–400mm zoom lens. Custom software was developed to control the system. The ASCOM SDK was used to control the Meade mount, the Canon SDK was used to control the camera. The camera was typically set to ISO 50, Aperture Priority - f11, and RAW capture. Multiple SanDisk 4GB CF cards were used per shoot.




Top of page

Picture Loading
We used Adobe's DNG convertor to convert Canon's CR2 files to DNG. A DNG reader was developed using the excellent WIC APIs to parse the DNG file.
Top of page

Raw Processing
Demosaicing to convert the RAW files to color images was done using this algorithm.
Top of page

Chromatic Aberration
Some of the images had significant chromatic aberration. We used a new technique, (available soon), to characterize and remove the chromatic aberration.
Top of page

HDR Conversion
The color converted 16 bit sensor images are divided by their exposure times to create floating point HDR images.
Top of page

Image Alignment
We use a customized image stitcher to align the images. The algorithm works by automatically generating and matching feature points.
Top of page

HDR Refinement
Dividing by exposure wasn't quite accurate enough to generate exactly corresponding HDR values between overlapping images. Thus, once the images are aligned we solve for a new set of exposures that make overlapping HDR values match. The algorithm is described here.
Top of page

White Balance
A single neutral point is selected in one of the images and this sets the white balance for the entire stitched panorama.
Top of page

Seam Selection
Seams between the images are selected such that they are as invisible as possible. The graph-cut algorithm described here is used. Note only seam selection is performed, no blending is done on the overlapping images. If the HDR conversion/refinement done above is accurate enough no blending should be necessary.
Top of page

Render HDR Pyramid
The HDR panorama is rendered out as a tiled pyramid. Each tile is 256x256 and stored as an 128bit floating point HDPhoto image. In order to avoid successive compress/de-compress cycles the lossless compression feature of HDPhoto is used.
Top of page

Render Tone-Map Pyramid
In order to display the 128bit HDR image it must be converted to 24bit RGB. This is done using a simple tone-mapping technique of creating a slowly varying exposure map for the image.


Squamish Wall Exposure Map
Top of page

Compress Tone-Map Pyramid
The tone-mapped pyramid is saved as 24bit RGB HDPhoto tiles.
Top of page