hdrprep is a Perl script for registering exposure-bracketed sequences of digital photographs. This allows you to generated High Dynamic Range (HDR) images from hand-held image sequences. If you are new to HDR images, please go to WebHDR for more information.

! Please note that hdrprep DOES NOT actually create HDR images. It merely aids you in preparing your images.

Why use it?

There are several reasons why you might want to use hdrprep to register your digicam images before generating an HDR. The two most obvious ones are:

  1. Your HDR software can't do automatic image registration at all;
  2. Your HDR software is capable of auto-registration, but fails on some challenging sequences, e.g. extreme exposures;
failed registration successful registration
Left: Failed automatic alignment due to extreme exposures;
Right: Successful alignment with hdrprep.


Anti-Lamenessing Engine (dead link)
ALE is an image-processing program used for tasks such as image mosaicking, super-resolution, deblurring, noise reduction, anti-aliasing, and scene reconstruction. Its principle of operation is synthetic capture, combining multiple inputs representing the same scene.
Update Sep 2012: ALE has disappeared off the Internet, I'm afraid.
Powerful scripting language.
The Image::ExifTool library provides an extensible set of perl modules to read and write meta information in a wide variety of image, audio and video files.
Software suite to create, edit, and compose bitmap images. It can read, convert and write images in a large variety of formats.
PerlMagick is an objected-oriented Perl interface to ImageMagick. Use the module to read, manipulate, or write an image or image sequence from within a Perl script.

This software was written on LINUX, but should run on other systems as well. Please let me know.


Below is the help output.

       hdrprep : Align digicam images and fix EXIF information.
 prerequisites : ALE, Anti-Lamenessing Engine,
                 Perl::Image::ExifTool, PerlMagick

       hdrprep   [-h|--help] [-v|--verbose] \
                 [-a|--align] [-r|--redo] [-e|--exif] [-k|--keep] \
                 [-d|--directory dir] [-q|--quality qual] [-m|--mc percent ] images

-h|--help      : print this help message and exit
-v|--verbose   : verbose output
-a|--align     : align images
-r|--redo      : re-create aligned images, requires -a to be run first
-e|--exif      : fix exposure tags in EXIF header
-k|--keep      : don't remove intermediate ALE output
-d|--directory : directory for storing the aligned images in (default: aligned)
-q|--quality   : quality setting for aligned images (default: 80)
-m|--mc        : Statically sample percent % of available pixels (default: 10)



hdrprep is published under the GNU General Public License.


Related Projects

Giuseppe Rota has made some modifications to the hdrprep script: He implemented sift (from the autopano package) as an alternative alignment engine, and his version will also handle rotational mis-alignment. I intend to implement his changes into hdrprep, but am waiting for some feedback from others. Guiseppe's project page is linked here.
Please discuss any feedback or suggestions on the Google pfstools group.

Hugin which is a front-end to panotools can not only be used to stitch panoramas, but also to register the images in an HDR sequence. Read about the HDR workflow with hugin.