10
\$\begingroup\$

The idea is simple:

  1. Take a RAW photo of a real color chart outside to get a white point of D65.
  2. Use that to get an accurate color correction matrix for the camera sensor.
  3. Use the same camera to take a picture of the chart as displayed on the screen.
  4. Find the color correction matrix of the monitor, and load it into an ICC profile

In theory this be a fast way to get the correct color correction matrix of a monitor, with only a DSLR and a chart, and without additional expensive hardware.

So, what aspect of calibration am I missing?

\$\endgroup\$

8 Answers 8

1
\$\begingroup\$

There's some good detail in the other answers but I wanted to point out the challenges belied by your approach:

  1. Take a RAW photo of a real color chart outside to get a white point of D65.

How are you measuring the D65 light, to know that it's actually D65? If you've got a spectrophotometer to measure the light, surely that can be used to calibrate the display. I suspect it would be easier to shoot indoors with D65-balanced lights (well, assuming you've measured the lights to know their color output and any correction necessary for them).

  1. Use that to get an accurate color correction matrix for the camera sensor.

If you've got the software to generate a color profile (exactly what a "color correction matrix" is), then you've probably also got a colorimeter or spectophotometer. So I will instead assume that you are thinking of simply adjusting curves to a set of numbers to make the DSLR image match the color chart.

It's worth pointing out that a ColorChecker Classic chart (such as I'd guess you're shooting) has 24 colors, whereas software meant to do this will instead make hundreds of color measurements. Your result will be significantly less accurate.

  1. Use the same camera to take a picture of the chart as displayed on the screen.

The first problem you'll encounter here: how do you know what color temperature you're working with? Sure, the monitor says "6500" or "D65," but how have you measured this to verify it's what it claims?

How are you setting and adjusting the brightness, contrast, and red, green, and blue values of the monitor to maximize what the monitor is actually capable of creating?

When we talk about calibrating a display, there are actually two parts to be done: calibration and profiling. Calibration is the process of setting the monitor to its best values to maximize what the display is capable of, and the colorimeter or spectrophotometer is doing the hard work here of analyzing the color coming off the screen and determining how to eek out just that little bit more, turning a good display into a great one, or even a mediocre display into a good one.

By simply "using the same camera to take a picture of the chart as displayed on the screen" you are completely bypassing this part of the process, which obviously means you're going to get an inferior result.

The second part, profiling, is effectively mapping what the monitor is producing to what the ideal result is. Here, again, a colorimeter or spectrophotometer is going to take hundreds of measurements to determine exactly what the monitor is capable of producing. A comprehensive look at what the monitor can produce creates a profile with a far more comprehensive result.

  1. Find the color correction matrix of the monitor, and load it into an ICC profile

How are you reading your color correction data to build an ICC profile? It's been years since I seriously worked with color management software, but I suspect it's still true that you'll need to spend some big bucks to manipulate and use external data to build a new profile. And though my experience with profile manipulation is minimal, what I found and what other experts recommend is that if the profile isn't providing the results you expect it's because the profile was created incorrectly; going through the process again is far more likely to yield success than trying to fix a bad profile.

In other words, to build a good profile you need a good calibration. To get a good calibration you need a spectrophotometer or colorimeter.

\$\endgroup\$
5
\$\begingroup\$

In theory, this seems fine for approximately reasonable results, but a cheap color calibration device gives you steps 1 and 2 already done, plus 3 done with many, many more samples than a color chart, and 4 done automatically.

I'm willing to bet that inaccuracies in the first steps plus the limited number of samples add up to (to put it mildly!) less-than-ideal results. With a "real" colorimeter costing under $100, I'm not sure it's even worth the time in doing it another way.

Plus, you're inherently limited by the native "device color space" of your DSLR — the way digital sensors are designed to measure color, and the particular idiosyncrasies of your specific camera. You couldn't accurately calibrate any aspects of the monitors' colors that don't happen to match that in the same way. This is a limitation in colorimeters vs. photospectrometers as well, but at least the colorimeters are made for it.

\$\endgroup\$
8
  • 1
    \$\begingroup\$ Considering that the gamut of even entry level DSLR's far exceeds that of adobeRGB, I think the last point is moot. Regarding the first two points - 100$ is still 100$ :) \$\endgroup\$ Commented Jul 6, 2014 at 4:30
  • 3
    \$\begingroup\$ @nbubis - so is a reliable calibrated colour chart that's in date (about $100, I mean). You can't just use any old thing if you want better than eyeballing. \$\endgroup\$
    – user28116
    Commented Jul 6, 2014 at 4:55
  • 3
    \$\begingroup\$ I believe the assumption is "I have a colour chart anyways, can I use it for this purpose as well?", less than having to buy the equipment. \$\endgroup\$
    – Cornelius
    Commented Jul 7, 2014 at 10:05
  • \$\begingroup\$ In theory, this seems fine - only if you never saw how camera response curves look like. lmao \$\endgroup\$ Commented Jul 31, 2023 at 0:25
  • \$\begingroup\$ the native color space - there's no native colour space for a camera. \$\endgroup\$ Commented Jul 31, 2023 at 0:26
4
\$\begingroup\$

Taking an image "Outside" does not guarantee you D65 color temperature, unless measured. Also without having drivers adjusted to provide a D65 simulation on your monitor, the results can not be accurate enough to be called calibration. Even with the cheap calibration devices available it is difficult to sometimes get an accurate match between monitor and print, due to back light and ambient light issues. But even these cheap methods are better and more predictable than what your attempting. Eyeballing a displays color and judging it correct based on on or two images is like a blind man describing an elephant by touching a small part of the animal. You will soon find out that what worked once won't work very often, and your savings in cash is removed by additional adjustments, tweaks and problems.

\$\endgroup\$
2
  • \$\begingroup\$ No one said anything about "eyeballing". A least squares fit to the color correction matrix is what I proposed. \$\endgroup\$ Commented Jul 7, 2014 at 1:30
  • 3
    \$\begingroup\$ D65 - outdoors is eyeballing. \$\endgroup\$ Commented Jul 8, 2014 at 0:47
2
\$\begingroup\$

The color temperature of the light and the angle it hits the color charts change the way the raw will look.

Take one photo, then rotate the card 90 degrees and take another photo. Then rotate it 90 degrees again. All three will look different. Of course you also have to have a meter to measure the color temperature of the light since it is not constant depending on time to day, humidity, dust in the air, etc.

And you need to calibrate your camera. Different Canons will show colors different in RAW. And cameras that use a Sony sensor will display different also. Although much information is given in some cameras reviews, does that apply to your camera and lens. If you change lens you will have a different color rendering in the raw file. Some lens are more contrasty and more saturated colors. Some are flat. Some are warmer or cooler.

I would hate to deal with all those unknowns when attempting to calibrate a monitor. But if I have a wide gamut monitor, I can calibrate it. Then use it to develop profiles for my camera and each lens. Which is important if you are making prints from your photos. Of course you have to know what light will be used where your prints are displayed as it will change the color of your print (and also your monitor).

If you are not printing, then the calibration does not matter. You will be using the lowest common denominator (sRGB) to be viewed on dispaly devices each of which may be different.

\$\endgroup\$
1
\$\begingroup\$

"Take a RAW photo of a real color chart outside to get a white point of D65"

The simple fact that you have a blue sky will contaminate the real color chart with a blue-ish cast... making the following other steps error-prone.

\$\endgroup\$
1
\$\begingroup\$

Colour chart photographed by camera is a real world object which is characterized by it's reflectance spectrum. Camera does not have human metamerism so even if a human eye sees different spectrums as same colour the camera will almost always map them different colours and vice versa.

Same colour chart cannot be displayed by monitor without:

  1. knowing reflectance spectrums of all patches
  2. converting those reflectance spectrums to monitor colour using 3 transfer functions

(1) is obtainable from the colour checker OEM of course. You never mentioned anything about how you are going to obtain those transfer functions though. Actually, those are the functions which you want to get in the end.


But let's suppose that you want to simply use target profile transfer functions, sRGB for example. You are then getting incorrect image on your monitor which you want to correct using your camera.

First thing to notice is that every CIE1976 (or whatever coordinates you want to use) colour will be displayed the same way regardless of it's spectral composition. So, your artificial ritual to somehow get two related data sets to compare already sounds fishy because a very different colour checker might still produce exactly the same result on the monitor (and by extension it would also will look exactly the same in person because sRGB represents human metamerism, unless the sRGB coordinates get negative (i.e. out of gamut)).

Your camera then records the signal which is effectively a composition of monitor emission functions and camera sensitivity functions.

You cannot deduce anything from that composition of functions. To demonstrate that you get different colour checker with same CIE1976 colours and somehow you get same image on the monitor but different image of the colour checker as recorded by camera.

In fact, even if you somehow knew spectral response of your camera in advance it would still not get you anywhere further.

So, in short: either interpretation of your suggestion leads to unsolvable problem.


However, if you need to calibrate many similar displays with same camera, you can calculate a correction using spectrometer and apply it when measuring colour. This is effectively how 3 channel display colorimeters work - you specify the display type before measurements and they approximately know how their sensor would behave in combination with that specific type of display.


On an unrelated note, your question is a classic XY-problem.

\$\endgroup\$
0
\$\begingroup\$

If a DSLR could be used for calibrating color displays, a DSLR would not need white balance in the first place.

The problem with color balance is that color is a continuous spectrum, our eye receptors have broad and overlapping sensitivities across that spectrum, and the sensitivities of camera sensors are still different (and change over model and over time: in CCD times, color masks were more discriminative, but they were changed to be less discriminating and more light admitting in order to reduce luminance noise atlow exposures associated with higher ISO values).

The overlaps in wavelength sensitivities of a screen and the human eye receptors and of the human eye and a camera's Bayer mask, and of a camera's Bayer mask and the screen are correlated but not in a definite relation.

The same goes for printer inks. That's the reason why CMYK color prints of color charts are useless for color calibration purposes. There may be light situations where the color print looks just like the chart to the human eye, but that does not mean it looks the same to a DSLR camera, and it does not mean that the equivalence extends to other light situations.

\$\endgroup\$
-3
\$\begingroup\$

Calibrating a monitor with a DSLR is simple. However: You must NEVER EVER use a photo of a colour chart. Instead: You should use a test picture of well-defined colour values (generated by a program) with shades of grey, all relevenat colours (the values taken to the extremes). This picture should be shown on the monitor. Take a photograph of the monitor IN ABSOLUTE DARKNESS (no ambient light) with your DSLR. The DSLR should have white balance automatic SWITCHED OFF. Instead. it should be set to fixed neutral. In this photo, then, measure the averages especially of the grey zones using a program to average out portions of a picture. Re-adjust the monitor, compensating for the detected colour cast. Repeat process, until neutral. Finish. Works VERY well. Burkhard Meißner

\$\endgroup\$
2
  • 1
    \$\begingroup\$ You state one must never use a photo of a color chart, but you don't answer the OP's question, "why not?" The question isn't how, it's why not. \$\endgroup\$
    – scottbb
    Commented Sep 9, 2021 at 0:19
  • \$\begingroup\$ What is white balance fixed neutral? Actually monitors may vary in their white balance - and no camera I owned at least in the last 10 years had a setting called neutral. What would probably help is a kelvin value here. \$\endgroup\$ Commented Sep 12, 2021 at 21:55

Your Answer

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

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