Color correction for contrast modification

The results below compare two formulas for color correction used in combination with a simple tone mapping that modifies image contrast (Equation 4 in the paper). Images on the left were generated using the formula that does not preserves luminance of the tone-mapped images (Nonlinear, Equation 2 in the paper), and images on the right were generated using the luminance preserving formula (Linear, Equation 3 in the paper).

The columns labeled s=c use the same color correction factor "s" as the contrast compression factor "c". For non-linear formula, this is equivalent to applying the same tone-curve to the red, green and blue color channels. The columns labeled "s=exp. fit" use the best fitting function for the s=f(c) relation that was found in our experimental study. The images in column s=1 preserve color ratios (saturation left unmodified).

The middle columns shows a reference, not modified image. In case of HDR images, this is the best exposure correction (manually selected). All images were generated assuming the sRGB display model.

To observe

Luminance preserving formula results in hue-shifts, especially for red and blue colors. It is therefore less suitable for tone-mapping. The color correction based on the experimental data results in overall better colors than the simple assumption that s=c.

Additional comments

Note that on some displays (especially LCD) color appearance may change depending on the position on the screen and viewing direction. For the best viewing, make sure that the screen is seen from the perpendicular angle. If you see a difference between reference images in the middle column (they are the same), try scrolling the page.

The color matching criterion is the image that appears the closest to the reference image. The critertion IS NOT the preferred or the most natural image.

Click on an image to see its full size version. To compare two or more images, open them in separate tabs in your browser, then altrenate between the tabs.

Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6


Reduced contrast (c=0.3)
Nonlinear, s=1
Nonlinear, s=c
Nonlinear, s=exp. fit
Reference
Linear, s=exp. fit
Linear, s=c
Reduced contrast (c=0.6)
Enhaced contrast c=1.6