Panorama photo stitching

As you might have noticed from the pictures I have been posting, I'm getting increasingly fond of creating panorama pictures: this is done by stitching together multiple overlapping shots from a regular camera, in order to recreate the feel of a large scene that cannot be fully captured without special (and very expensive) objectives.

Microsoft Live Photo Gallery logo For every panorama picture you see on this website, until today, I have been using Microsoft's Live Photo Gallery. The program is an evolution of the photo gallery app integrated in Windows Vista. It manages a database of pictures, much like Windows Media Player keeps a library of your music and relative metadata. Additionally, Photo Gallery also allows you to tag pictures, edit their metadata and alter them in some simplified way (like adjusting the brightness or so - don't expect photoshop-like features though).

Live Photo Gallery also includes a simple "Create panoramic photo..." option that lets you choose the pictures to stitch together and then automagically figures out all the rest.

Microsoft Live Photo Gallery panorama photo interface.

The results are surprisingly good in most cases, even if there's absolutely no customization of the parameters used to generate your panorama image. So, everything was fine until this morning I discovered...

Microsoft ICE

ICE, which stands for Image Composite Editor, is a full fledged panoramic image stitcher that can be freely downloaded from its website at Microsoft Research. It is a separate application, but I suppose that the Live Photo Gallery technology is largely based on a simplified version of ICE.

Anyway, using the composite editor, you'll be able to load a bunch of photos via drag 'n drop and the application will automatically try to figure out the relative alignment and the optimal parameters to create a nice panorama for you (exactly like in Photo Gallery).

Microsoft Image Composite Editor interface.

Apart from zooming in and out on the panorama preview, you can then customize a nice set of properties, like the camera motion used when shooting the source pictures, the projection parameters and the focal point of your final picture. You can also auto-crop the panorama picture to quickly get rid of the black borders around the picture, which you have to remove manually in Photo Gallery. By the way, the ability to choose the correct projection for the picture can be very effective in reducing the final distortion: try switching from a cylindrical projection to a perspective one (or viceversa).

After twiddling with the many parameters and finding the perfect composition, ICE offers many different export options. The most common ones are simple flat image formats, like JPEG, PNG or bitmap. The image below is the panorama stitch of the photos I shot of the Danube, from the fortress of Belgrade:

The Danube from the fortress of Belgrade.

The photo is composited correctly by ICE and the color is blended much better than in the same picture processed by Photo Gallery. However, the awesomeness of ICE doesn't end here: the application can also export tiled picture data that can then be used either by Silverlight DeepZoom applications or by the special HD View picture viewer.

Pictures in HD View format can be embedded in a webpage either using a special plug-in (which is available in all major browser, except Opera unfortunately) or using the HD View Silverlight viewer. The Silverlight version is slightly less powerful than the plug-in, but runs on every browser and every platform supporting Silverlight 2.0.

EDIT: please note, in order to make the exported tiles work with HDViewSL, you'll have to select the "Deep Zoom Tileset" export mode in ICE.

Here's the same picture of the Danube in HD View:

This page requires Silverlight 2.

Get Microsoft Silverlight

Quite impressive, don't you think?  :)
The only downside is that I'll have to throw away all the panorama pictures I made till today and export them again using HD View...