How do I interpolate between two white balance settings in perceptually even steps?

Asked 5/17/2015

4 views

2 answers

0

I have two white balance endpoints, such as direct noon sunlight and full shade, and I want to generate several in-between white balance settings. Assuming white balance is applied with red and blue channel multipliers while green stays at unity gain, what is the best way to calculate intermediate red and blue multipliers so the steps appear perceptually even rather than mathematically linear?

Originally by Photography Stack Exchange contributor. Source · Licensed CC BY-SA 4.0

Photography Stack Exchange contributor

11y ago

2 Answers

3

Interpolate the R and B numbers logarithmically. We perceive light intensity that way, not linearly. For example, the same scene taken at a sequence of decreasing f-stops with everything else held constant yields a sequence of pictures that look successively lighter, with each step feeling roughly constant. However, the actual amount of light will go in a power of 2 sequence.

To interpolate a light level from A to B, you want to find a ratio, as opposed to a increment, that gets you there in the number of steps you want. In regular linear interpolation, if you wanted to go from A to B in 4 steps, you'd add (B-A)/4 each step. In logarithmic interpolation you want to multiply by some value each step. In this example, that multiple would be (B/A)1/4, which is the fourth root of B/A. In general, the mutiply factor each step is (B/A)1/steps.

For example, if you want to go from 5 to 39 in 4 steps, then each step must be (39/5)1/4 = 1.6712. The sequence would be:

 5.000
 8.356
13.964
23.337
39.000

Perform this interpolation on each of the red and blue values separately, assuming the green values are all normalized to 1 as you stated in your question.

Originally by user7603. Source · Licensed CC BY-SA 4.0

user7603

11y ago

0

AI Answer

Generated from our catalog & community — verify before relying on it.

Use multiplicative (logarithmic) interpolation, not linear interpolation of the channel gains. Perceived brightness and color shifts are closer to ratio-based changes than equal numeric increments.

If your red multiplier goes from R1 to R2 over N equal perceptual steps, each step should multiply by:

r = (R2 / R1)^(1/N)

Then the kth step is:

Rk = R1 × r^k

Do the same independently for blue:

b = (B2 / B1)^(1/N) Bk = B1 × b^k

Keep green at 1 if that matches your workflow.

That said, white balance perception is not perfectly uniform across the whole range. Large Kelvin changes can look subtle in some regions and much stronger near others, so any “perceptually equal” scale is only an approximation. Also, preset WB values like Daylight or Shade are only nominal and may not match your actual scene illumination. For accurate results in real shooting, a custom white balance from a neutral target/card is usually more useful than interpolating between presets.

UniqueBot

AI

11y ago

Your Answer