adjusts the colors in image to achieve a balance that simulates the effect of neutral lighting.


adjusts colors in image so that the reference color specified by ref is mapped to white.


maps the reference color ref to target.

Details and Options

  • ColorBalance is typically used for white or gray balancing, removing unrealistic color casts from images. This usually results in representing objects with neutral colors as gray.
  • ColorBalance works with images with explicit color spaces. Images with ColorSpace->Automatic are converted to "RGB" or "Grayscale" before being adjusted.
  • Either of the ref or target can be any of the following:
  • colorexplicit color
    whitepointnamed white point as used as a setting for WhitePoint
    temperaturecolor specified by a temperature
    {temperature,tint}color specified by a temperature and a tint
    {pos1,pos2,}mean color at positions posi in the original image
    markerimagemean color sampled according to a marker image
  • The mean color above is computed in the Lab color space.
  • The temperature can be specified as a value in Kelvin, typically in the range 2000 K and 20,000 K. The tint can be given in units of , typically in the range and .
  • Temperature and tint can be visualized in the MacAdam chromaticity diagram below, where the curve corresponds to a radiating blackbody and tint adjustments are moves on isothermal lines, orthogonal to the temperature curve.
  • ColorBalance takes a Method option. Possible settings include:
  • "GrayScaling"scaling the mean of the image
    "RGBScaling"scaling in the RGB space
    "LMSScaling"scaling in the LMS space
    "ChromaticityScaling"scaling of the chromaticities in the LMS space
  • With the method "LMSScaling", the scaling is performed using the Bradford transformation matrix to convert between XYZ and LMS.
  • With a given {temperature,tint} pair, Method"ChromaticityScaling" is always used; otherwise, Method->"LMSScaling" is used. »


open allclose all

Basic Examples  (1)

Automatic white balancing to correct for blue cast:

Scope  (8)

Specify the white reference using a specific color:

Specify the white region using a list of pixel positions:

Specify the white region using a marker image:

Specify the reference white temperature:

Specify the reference white temperature and tint:

Specify reference and target colors:

Perform a chromatic adaptation by specifying the reference and target WhitePoint:

Perform a chromatic adaptation by specifying the reference color and the target WhitePoint:

Options  (6)

Method  (6)

Use Method->"RGBScaling" to rescale the image in the RGB space:

When a strong color cast is present, scaling the pixels in the RGB space may not fix the color cast:

Use Method->"LMSScaling" to scale the pixels in the LMS space:

Use Method->"ChromaticityScaling" to make the average color neutral (a shade of gray):

Use "RGBScaling" with no reference or target colors:

This corresponds to transforming the max color value to 1 for each channel:

"ChromaticityScaling" typically creates a more balanced image:

Notice that it is computationally more expensive:

If the color is specified using temperature and tint, Method->"ChromaticityScaling" is used:

With no reference or target colors, available methods make assumptions about the image scene:

"RGBScaling" and "LMSScaling" assume that the image contains a white object:

"ChromaticityScaling" assumes that the average color is neutral (i.e. gray):

Applications  (4)

Underwater images  (2)

Correct a strong blue color cast, assuming there should be some white in the picture:

If white pixels are present already, Method"LMSScaling" will have little or no effect:

The default assumption of a neutral average color may yield extreme results:

Manually specify a region where the average color is computed:

Time of day  (1)

The same scene appears differently depending on its illumination:

Use a low temperature to simulate early sunrise:

5500K is the typical vertical daylight temperature:

Use a higher temperature to simulate a hazy sky:

Remove Yellowing  (1)

Correct for age yellowing in a document:

Properties & Relations  (2)

When an image has dark pixels, ImageAdjust yields a result similar to the "RGBscaling" method:

The chromatic mapping performed by ColorBalance is generally not invertible:

Possible Issues  (1)

Balancing of a scene illuminated by multiple light sources may present issues.

This scene is lit both by reflected sunlight at dusk and by incandescent light from the street lamps:

Balance using the incandescent lamps as reference:

Compare with balancing using the sky and the water reflection:

Interactive Examples  (1)

Dynamically adjust the color temperature using a mouse click to specify the reference white:

Introduced in 2015