Suppose you shoot a cubemap to be viewed inside a room with walls, ceiling and floor being screens showing the scene you shot. The monitors should obviously show the images as closely to what would be "shown" by the windows of the same sizes into the scene. This means that we shouldn't try to do any white balancing to remove any tinting.

But there's no such setting in the camera as "no white balance" or "white balance as is". Similarly, raw photos (when taking Bayer's "red" for red, average of "greens" for green and "blue" for blue), according to my experiments with LibRaw, appear to have colors very off reality: on my Canon EOS 1100D they are much too green: even if I capture a red (640 nm) laser pointer spot on the wall, there's some noticeable green. The images have to be corrected by camera-supplied coefficients to be made closer to reality. I guess this is what is called the Neutral profile in RawTherapee.

Now, how do I process the photos so that they are shown on screen as closely as possible to what actually hit the camera sensor? How can I reproduce photometrically-correct colors instead of those which the human would think there are in some particular environment condition?

  • 1
    "... raw photos, according to my experiments with LibRaw, appear to have colors very off reality..." Raw files don't have any color at all. They are simply a set of monochrome brightness values for each pixel. The color is generated by processing and comparing the differences between pixels filtered with red, green, and blue filters. For more, please see: RAW files store 3 colors per pixel, or only one?
    – Michael C
    Jun 25, 2017 at 11:18
  • 1
    What you are seeing as the 'color' of your raw files is one possible interpretation among many equally valid interpretations of the raw data generated by the application you are using to convert and view the raw file on your monitor. For more, please see: this answer to While shooting in RAW, do you have to post-process it to make the picture look good?
    – Michael C
    Jun 25, 2017 at 11:31
  • @MichaelClark "Raw files don't have any color at all" — well, they do, in a sense. Namely, you can take the raw RGBG values, take the average of the two green channels, fix possible nonlinearity of the sensor, then convert the resulting RGB triple to sRGB and show on the monitor. This is what I mean by the colors in the raw files. I guess though that this isn't a useful exercise, since apparently the transmittances of the red, green and blue filters in the matrix aren't weighted relative to each other to be meaningful in any way.
    – Ruslan
    Jun 25, 2017 at 12:01
  • 2
    Please read the opening three paragraphs of my answer to the first question linked in the first comment above for why we can't just take the values of the 'R' pixels for red light, the 'G' pixels for green light, and the 'B' pixels for blue light. Then see here for why human vision is not as simple as weighting all three equally.
    – Michael C
    Jun 25, 2017 at 12:45
  • 1
    Also keep in mind that wavelengths of light are not the same thing as color. Color is a construct of our eye/brain system of vision. It is true that we (sometimes) perceive specific wavelengths of light as a specific color (we don't perceive some wavelengths at all), but there is no corresponding single wavelength of light for many of the colors we perceive. Magenta, for example, is how we perceive a blend of near-IR and near-UV light combined.
    – Michael C
    Jun 25, 2017 at 12:58

2 Answers 2


The white balance is entirely dependant on the light available to the camera at the time the shot was taken.

Your camera or photo manipulation software will have generic defaults for 'sunny', 'cloudy', 'flash', 'tungsten', etc but the only way to truly ensure you have the correct white balance is to use a Grey Card, either somewhere in the shot you can mask out later, or in a separate test shot you can use as a 'master'.

You can achieve slightly more control if you use a full colour balance card, such as the ColorChecker Passport
There's a simple guide to its usage here - How to Use the X-Rite ColorChecker Passport to Obtain Perfect Color - too long to précis.

  • If I set white balance using a grey card, the resulting image on the screen won't round-trip. I.e. If I shoot actual scene, then shoot what the monitor presents for this shot, using the same white balance, the results will differ. I want to reproduce the colors so that they'll round-trip the shoot-display cycle.
    – Ruslan
    Jun 25, 2017 at 11:58
  • 3
    'round trip' to where? You need the entirety of your workflow correctly profiled before you start. You monitor &/or projector need to be calibrated individually using a known reference, otherwise it won't matter what white balance you use, you won't know whether it's accurate.
    – Tetsujin
    Jun 25, 2017 at 12:20
  • 2
    When shooting a scene the WB setting needs to match the light illuminating the scene. When shooting an image on a monitor, the WB setting needs to match the WB of the output of the monitor.
    – Michael C
    Jun 25, 2017 at 13:05

White balancing means making the neutral color of the scene (like a grey card) have a particular color temperature and tint in the output picture — to simulate color adaptation of human vision to the conditions of lighting in the scene.

If we take a hyperspectral photo of a grey card in a room lit by incandescent light bulbs, spectral radiance of the directions corresponding to this card will have a color temperature of about 2700 K. When doing white balancing, we normally adjust the colors in such a way that neutral colors appear as neutral on screen.

Normally, if a monitor is calibrated to a particular white point (which means its #ffffff color (the neutral white color) has chromaticity coordinates of this white point), it's assumed that the room this monitor is in is lit by an illuminant with chromaticity of this white point. This way a grey card put side-to-side with the monitor will have the same chromaticity as the white color on the screen, which enables soft proofing (when monitor brightness is adjusted to show white as the same color as a white card next to the monitor).

Now, if we want our monitor to display (as close as possible) a scene as if we are looking into it through a window, i.e. without doing scene-specific white balancing to simulate color adaptation, the settings for color balance in the camera should be such that a grey card lit by illuminant with color temperature T had the same color temperature on output. In particular, a grey card lit by illuminant with the monitor's white point (e.g. the monitor itself*) should be displayed with color proportional to #ffffff.

In particular, the above means that, if you shoot a grey card lit by your calibrated monitor on which you intend to display the scene, color balancing should be done in such a way, that mean color of this card's pixels in the photo on the screen becomes neutral (proportional to #ffffff).

When choosing color balance settings in the camera, you should choose the one closest to the white point of target monitor (e.g. "Daylight" for 6500 K-calibrated monitor). Some cameras have a "Custom White Balance" option, which lets you take a photo of a white object and use this color as the illuminant. In this case you can use the target monitor as the object.

*The monitor colors should have constant chromaticities when viewed from different angles. Many consumer monitors don't have this property even approximately, and their "white" could e.g. look blue when looked from above and red when looked from below. These aren't useful for color-correct rendering.

  • 1
    this is the only correct answer! adding to the above, in order to achieve 100% accuracy, the target cubemap screen would have to reproduce the original light intensity (which can be extreme in daylight scenes) because this influences our color perception.
    – szulat
    Feb 13, 2020 at 23:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.