What are the RGB values that correctly represent a 5800 K white surface on a calibrated 6500 K monitor?
Consider a high-quality monitor calibrated at the standard parameters: 6500 K, 2.2 gamma, 120 cd/m^2. Calibration is accomplished with a LaCie hardware sensor + its software, and it's quite accurate.
I intend to take a picture of the Sun through a telescope, using a safe, dedicated solar filter (full aperture Baader solar film for telescopes). The Sun's temperature is 5800 K. The filter is "white", quite decent actually, but I'm sure it's spectrum is not 100% flat - rigorously speaking it cannot be. Also, the camera may capture some infrared and so on, and further alter the color of the solar surface.
I want to process the resulting image so that, on the calibrated 6500 K monitor, the Sun's color is represented as close to original as possible. I expect the result to look like a soft creamy white.
Basically, that boils down to representing a 5800 K "white" on a 6500 K monitor. How do I do that?
I could load the image and tweak the tint settings (white balance) in software until the RGB triads on the solar disk fall in the required range, but I don't know what that range is. Sounds like there should be a formula for it somewhere ("given T1 the temperature of the monitor, then T2 white is represented when xR + yG = zB" or something like that, I'm just making stuff up).
Another approach: it would be nice if there was an app that could just generate "white" at any temperature, given that the monitor is calibrated at a certain color temperature. Then I could compare the generated white with the Sun's image, and make adjustments. But I'm now aware of any such app.
I do most of my raw file processing in Lightroom, I can use GIMP for additional color channel tricks. I'm not a photography expert, obviously, but I can follow directions. :)
The answer is: sRGB = (255, 241, 234).
The details of the calculation:
I calculated the spectrum of a blackbody at 5800 K using the Planck’s formula, then multiplied by the CIE color-matching functions of the standard 2 degrees observer and integrated over the wavelengths to get the (X, Y, Z) color. I then divided by X+Y+Z to get the chromaticity:
(x, y) = (0.3260, 0.3354)
multiplying (x, y, 1-x-y) by the XYZ to sRGB matrix, and dividing by the greatest component (R) yields:
(R, G, B) = (1, 0.8794, 0.8267)
I then gamma-encoded, multiplied by 255 and rounded to the nearest integer and got:
(R’, G’, B’) = (255, 241, 234)
Caveat: My answer is in the sRGB color space, which is almost, but not quite 6500 K with 2.2 gamma. BTW, “6500 K with 2.2 gamma” is not a color space specification: you also need the chromaticities of the primaries to get a fully-specified color space.
Whoa! Jaw dropped to the floor. That's exactly what I was asking. Thanks! BTW, at (255, 241, 234) I think it would look like white with a slight golden hue, which makes sense.
"*integrated over the wavelengths to get the (X, Y, Z) color. I then divided by X+Y+Z to get the chromaticity:*" **How did you go from a 3 vector to a 2 vector by scalar division? (Where did Z go?)**
"*I then gamma-encoded*" **Does this mean you raised R, G, and B to the power `gamma`, like this**
@kdbanman: No, I mean I transformed the linear RGB values to the sRGB non-linear representation, as per the equations (1.2) of the document you referenced. This is close to, although not exactly, a power law with exponent 1/2.2.
Thanks! I'm assuming that is a response to my `gamma` question. If you have time, how about the 3 vector to 2 vector question?
@kdbanman: Actually it's a 3-vector: (x, y, z). But z is redundant (equal to 1−x−y) and usually omitted.