High Dynamic Range Tone Mapping/Rendering (HDR)

Go to this page for iCAM06, the latest HDR code.


The use of an image appearance model for rendering high dynamic range images is a natural application. High dynamic range rendering can be thought of as an extreme form of gamut mapping, where we are trying to match the appearance of a scene that might contain over 5 orders of magnitude of light on a display that might only reproduce 2 orders of magnitude. How do we "render" those images such that they produce the same perceptual response, or so that they appear the same?

More details on using an appearance model for this type of application can be found in our CIC11 paper:

G.M. Johnson and M.D. Fairchild, “Rendering HDR images,” IS&T/SID 11th Color Imaging Conference, Scottsdale, 36-41 (2003). Download

The HDR Photographic Survey

If you are looking for the online database of HDR images created during Mark Fairchild's journey's around the country, please click here for the HDR Photographic Survey.

RIT/MCSL HDR Image Database

To further our research on this topic, we had two high-school interns collect a series of images for us over the course of last summer. Brandon Dilmore and Srikant Yennamandra collected 75 HDR scenes taking multiple exposures with a Nikon D1 digital camera. The multiple images were then combined into HDR images using Greg Ward's Photosphere program. Please feel free to use these images as you see fit.

The MCSL HDR image database is encoded in the Radiance RGBE format (rle). To facilitate the use of this format in Matlab, Lawrence Taplin kindly wrote a function to read these images:


Other Image Sources

So the RIT images are not enough to quench your thirst for HDR images? You can try these sights as well:

Paul Debevec

Erik Reinhard

Greg Ward

Laurence Meylan

Hebrew University

Stanford University


If you have any additional HDR scenes that you would like me to link to, just send me a note. Additionally, we can probably arrange for some image hosting if necessary.

Source Code

The source code to iCAM is freely available. It is our hope that others contribute to the code with further improvements. Most of this code has been written by Garrett, so email him if you have a problem. Also, Mathematica is a pretty wacky language that is very useful for prototyping, but difficult to figure out what is going on. As such...the Mathematica images do not exactly match the IDL and Matlab ones...but should be close. It is the thought that counts.


Thanks for Frank Iannarilli of Aerodyne Research, Inc. we have an updated Mathematica notebook that is compatible with Mathematica Version 6. Click below to download the notebook and/or a PDF file showing it's contents. No images are imbedded in the notebook itself to mimize file size.

This is a new and improved HDR tone mapping notebook, as of April 2003, so if you have the original, please take a look at this one.

High Dynamic Range Tone Mapping (Mathematica)


All the original images were generated using the IDL code, which should be thought of as the "baseline." It currently varies slightly from the Mathematica code, only in as much as we have no idea what Mathematica is doing sometimes, and there are a few scale differences. In the past we have used IDL for most of the development, but now that Matlab is officially back on the Mac we have been working mostly on that. We'll try to keep the IDL code up to date.

High Dynamic Range Tone Mapping (IDL)


Here is the Matlab source code for performing high-dynamic range tone mapping. This code was ported by Garrett and Lawrence, and should be identical to the IDL code. You need to have the image processing toolkit installed to run this code (and maybe the statistics toolkit too). This is the current state of the art, and should be used when possible. It was last updated on March 23, 2004. The recent additions include an automatic scale function, to deal with normalized input images.

High Dynamic Range Tone Mapping (Matlab)

MSVC (Windows)

Below is the source and executable iCAM implementation for Microsoft Visual C, kindly donated to the site from Kim Jin-Seo. I have not personally run the code, mostly because I don't generally touch Windows with a long stick...but I certainly appreciate the code.

iCAM (Microsoft Visual C)

OpenEXR Tools

Billy Biggs has written a nice series of OpenEXR tools that includes some iCAM and other rendering bits. His code is available at http://scanline.ca/exrtools/

Any questions and comments about the source code should be addressed to Garrett M. Johnson. Last updated 18-sep-08

Copyright 2010 RIT Munsell Color Science Laboratory. All rights reserved.