Gradient Domain High Dynamic Range Compression Raanan Fattal Dani Lischinski Michael Werman
The Dynamic Range Problem What’s wrong with these images? What would your eye see? How could you put all this information into one image?
Whole Image Solutions Tone Reproduction Curves Examples Re-mapping of luminance values Easy to compute Suffer from quantization Examples Linear scaling Gamma correction More sophisticated models…
Ward Larson Model One of the best total image methods Based on models of display capabilities and human vision Still suffers from loss of local contrast Notice washed-out appearance of the outside area
Local Solutions Tone Reproduction Operators Older Methods Take local context into account Attempt to solve the local contrast problem Older Methods Based on estimating illuminance and reflectance for each part of the image Suffer from artifacts, dark halos
Low Curvature Image Simplifier Tumblin and Turk, 1999 Scale luminance of smoothed image Add back details 8 parameters Computationally intensive
Gradient Domain Method
Basic Assumptions The eye responds more to local intensity differences than global illumination A HDR image must have some large magnitude gradients Fine details consist only of smaller magnitude gradients
Basic Method Take the log of the luminances Calculate the gradient at each point Scale the magnitudes of the gradients with a progressive scaling function (Large magnitudes are scaled down more than small magnitudes) Re-integrate the gradients and invert the log to get the final image
1D Example Original Signal F(x) - Dynamic range: 2415:1
1D Example ln F(x)
1D Example F’(x)
1D Example G(x) = F’(x) after applying the attenuating function
1D Example I(x) = Integrate G(x)
1D Example eI(x) - New dynamic range: 7.5:1
Changes for 2D Use gradients instead of derivatives May produce a non-integrable vector field after scaling Transform scaled vectors into a conservative field whose gradients are closest to G(x)
Attenuation Map
Attenuation Details Images contain edges at multiple levels of detail How do we handle this? Compute gradients for many different resolutions of the image The set of different resolution images composes a Gaussian pyramid
Creating the Final Image How do we recombine the different resolution levels? Start with coarsest image Calculate scaling factors Linearly interpolate those factors for each point in the next image, and multiply with the local scaling factor Apply the combined factors to the highest resolution image
The Attenuation Function α = average gradient magnitude for each level times 0.1 β = adjustable gain (between 0.8 and 0.9)
Performance On an 1800 MHz Pentium 4: Computing a 512x384 image takes 1.1 seconds Computing a 1024x768 image takes 4.5 seconds LCIS takes 8.5 minutes to compute a 751x1130 image
Examples Streetlight on a foggy night Dynamic range 100,000:1
Examples Stanford Memorial Church DR 250,000:1
Applications Enhancing contrast for LDR images Combining photographs of different exposure levels to enhance detail or stitch together for panoramas Medical image enhancements
Panoramas
Medical Imaging
Questions / Credits Any questions? All pictures in this presentation are from the original paper