13
\$\begingroup\$

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.

Any suggestions?

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. :)

Thanks!

\$\endgroup\$

2 Answers 2

10
\$\begingroup\$

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.

\$\endgroup\$
9
  • \$\begingroup\$ 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. \$\endgroup\$ May 22, 2012 at 0:00
  • 1
    \$\begingroup\$ This is an excellent answer. I have three questions: \$\endgroup\$
    – kdbanman
    Sep 2, 2015 at 16:23
  • \$\begingroup\$ "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?) \$\endgroup\$
    – kdbanman
    Sep 2, 2015 at 16:24
  • \$\begingroup\$ "I then gamma-encoded" Does this mean you raised R, G, and B to the power gamma, like [this]? What value of gamma did you use? There seem to be many options. \$\endgroup\$
    – kdbanman
    Sep 2, 2015 at 16:24
  • \$\begingroup\$ @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. \$\endgroup\$ Sep 2, 2015 at 20:18
2
\$\begingroup\$

Are you looking to change the color of the sun in your photographs, or simply represent the color that is there accurately? The two are very different tasks. The former would probably require a lot of work, and I'm not sure it would actually be accurate. The latter is actually already taken care of for you with ICM and ICC profiles.

It should also be noted that "white" is a highly subjective thing. The "white" of your monitor would, technically, be too blue for a "true white", given that 6500k models daylight, not sunlight. The white of the sun as imaged directly, without the interference of an atmosphere or any filtration, is probably more accurately modeled at 5785 K in the photosphere on a normalized basis, but it can fluctuate between around 4000 K and 6000 K depending on location and time (sunspots tend to be cooler). There is also the Chromosphere, above the photosphere, which ranges from about 6000 K to tens of thousands of degrees Kelvin until you hit the Corona, which spikes into the millions of degrees. When you image the sun without a filter, the only time your actually photographing the photosphere would be through sunspots, otherwise the white point of the sun can fluctuate wildly over its surface. With a filter, your ultimate white point will be affected by its design and the wavelengths it actually is designed to pass through, so again nailing down an exact white point is probably going to be a tough thing to start with. A neutral, true white to the human eye is probably in the realm of 5500 K, however that actually changes depending on whether you are observing an emitter or a reflector.


Image Color Management, or ICM, is a system that is designed to manage the proper, accurate conversion of color information from one color space (say, RAW files from your camera) through the color space of your editing software (say, Photoshop, with is standard D50), to the color space of an output device (say, a computer monitor). You should not actually have to do anything specific at a low level to achieve the correct color balance, assuming your screen is indeed calibrated correctly. So long as you trust the accuracy of your imaging device, and trust the accuracy of your screen, if you use fully color-managed software like Photoshop, you should not actually have to worry about manually tweaking the color of your photos at a pixel-level. Adobe Camera Raw and Lightroom both include a color temperature adjustment tool (as well as a tint tool, however tint in photographic editing is for the opposite axis, magenta-green, and should only be used to correct the usually slight divergences along that axis most often caused by light produced from an electric gas discharge...i.e. fluorescent light.) If you set the color temperature slider to 5785 K, or within that realm, the color of the sun's photosphere as represented on your screen should indeed be very accurate for your state of calibration.

Last, but not least, you should be aware that the color balance of your photos will only be accurate as you intend them to be on your own system. The average user does not calibrate their screens, and as such, representation can vary widely. Many calibrated screens are to a 6500 K white point, however many photographers calibrate to 5000 K to match Photoshop and make natural fiber prints be more accurately represented on screen. Personally, I would consider a screen calibration to 5500 K to be more "white point balanced" than 6500 K (which is definitely bluer). If you want as much accuracy as possible, I would say calibrating your screen to 5785 K, and adjusting your photo white balance to match, would produce the most natural white possible, at least relative to the sun.


As an aside, if you really do want to manage white point conversion yourself directly on every pixel in your images, then you should look into the work done by CIE. They have been doing work on illumination, illuminants, color theory, color conversion, color modeling, and color space definition since the early-mid 20th century (1913 on). The Lab* color space (Lab) for short, is the quintessential model of human perception of light and color. It is the crux of color space conversion and transformation. XYZ is a critical modeling space that is used as an intermediary step when converting from RGB into Lab, then back out of Lab into some other color space (which may also be RGB but simply with a different white point.) You can find quite a bit of information on Wikipedia about CIE, Lab, XYZ, etc.:

\$\endgroup\$
10
  • \$\begingroup\$ Obviously, a lot of things I have not thought about, thanks for all the information, I'll have to grok it slowly. Let's say the purpose is this: Photograph a black body glowing at temperature T2, with slight color errors due to camera, filtering, etc. Display it on a screen calibrated at T1. Now the challenge is to adjust the hue (relative RGB proportions) of the image so that, on a screen with that particular calibration, the surface is as close as possible to the original hue of T2. I want to make the adjustment by actually editing the file, not by shifting the monitor's parameters. \$\endgroup\$ May 12, 2012 at 23:40
  • \$\begingroup\$ You would really only be able to do that, match the original hue (which should be called Chromaticity when discussing color spaces and transformations, as thats what it is in Lab), you will need to know either know exactly what T2 "is" to start with (which can only be done with a direct measurement), or know exactly the error of each component of your imaging device (i.e. sensor IR filter, CFA, the solar filter, quantization errors introduced during A/D conversion, demosaicing discrepancies, etc.) Neither of those are small order. \$\endgroup\$
    – jrista
    May 12, 2012 at 23:58
  • \$\begingroup\$ If you wish to accurately measure T2, you'll have to first define your limits on accuracy. Do you want it 99.9% exact? You would probably need to measure from space. Do you want it exact as it is when measured within our atmosphere? You could probably do that with a proper stand-alone device. Here is the rub, though...even if you do independently measure T2, there are going to be similar errors in precision and accuracy in those devices as well. You will have to account for those errors one way or another, which means knowing them, which puts you back to just directly correcting the camera. \$\endgroup\$
    – jrista
    May 13, 2012 at 0:01
  • \$\begingroup\$ I'm curious what level of accuracy you really need. Normalizing the calibration of your screen with the white point you assume for the photosphere should produce a pretty baseline white. You should be able to visually discern enough error that you can correct any discrepancy manually. It won't be 99.999% accurate, probably not even 99% accurate, but its highly doubtful human vision could detect the discrepancy without something to compare it with, such as a color swatch of exactly 5785 K embedded in the corner of the photo or something like that. If you do need 99%+ accuracy, well... \$\endgroup\$
    – jrista
    May 13, 2012 at 0:03
  • 1
    \$\begingroup\$ If approximation is ok, then I would just trust that your hardware is sufficiently calibrated, and let the software do most of the work. Load up your photos into a RAW editor (they would really need to be RAW...WB adjustments don't work well on images that are already demosaiced into RGB pixels), and set the white balance to 5785 K or around there. That should set the white in the photo to exactly the normative temperature of the sun's photosphere. Due to the offset whitepoint of your screen's white point at 6500k, that white might look a bit off. You could adjust by 715 K to compensate. \$\endgroup\$
    – jrista
    May 13, 2012 at 15:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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