ICC profiles and standard illuminants (scanner profiling)

I am new to scanner profiling and I need some clarification.
I want to profile my scanner in order to use it as a “poor man’s” colorimeter. I’ve got an IT8.7/2 chart and I generated an ICC profile with VueScan (I also tried CoCa/Argyll). My aim is to apply my ICC profile to my scans assuring a D65 white point. I know IT8.7/2 targets use D50 white points. Does this mean that ICC profiles generated will also be in D50? How can I get my scans standardized in D65? The information of my current ICC profile is attached in the image below. If the “Media White Point” is very close to D65, does this mean that by applying this profile to my scans the color will be based on D65?
Hope I can get some help here!

Other folk here know more about the topic than I do, but I’ll attempt an answer.

To use a scanner as a poor man’s colorimeter implies that you want to put samples in your scanner and get XYZ values of those samples.

For that to work, you need to profile your scanner, with whatever light source your scanner uses. (This is probably a horrible LED non-black-body light, but I’ll ignore that problem.)

Stick a calibrated 24-colour chart or similar into your scanner, use software to find the best transformation that generates the expected XYZ values, and save the ICC profile in a file. This is now the “input profile” for subsequent scans. Job done.

Your scanner light might approximate D50 or D65 or something else, but that doesn’t matter. The profile won’t necessarily be D50 or D65 or anything other than “your scanner’s light”.

As I say, that’s my best guess. I’m happy for it to be shot down.

I guess I got this done and got the output profile indicated above. By applying this profile to the raw IT8.7/2 target scan and measuring the color of each patch and comparing it to expected values under D50 (it8 file provided by manufacturer) I got a Delta2000 of under 5, which is fairly good.

I’m a bit confused with illuminants. By using a calibration target, does the resulting ICC profile not try to standardize colors relative to a specific illuminant when applied to an image (scanned under same conditions as the target)? In other words, wouldn’t calibrating two different scanners (probably with two different scanner lights) with the same calibration target generate similar XYZ values when measuring the color of a sample?

The ICC standard is D50. If you profile correctly, the software should handle the illuminants for you.


In other words, wouldn’t calibrating two different scanners (probably with two different scanner lights) with the same calibration target generate similar XYZ values when measuring the color of a sample?

Yes, that is the goal. The two scanners would have different profiles, of course.

As @afre says, ICC profiles assume a D50 illuminant. By making that assumption, software can tweak the resulting image to make it look as if it was illuminated by D40 or D70 or anything else.

I expect that consumer scanner lights are very far from black-body, so transforming to other illuminants probably won’t work well. Professional (very expensive) scanners may be much better.

1 Like

Okay, I’m getting there.
Would it be correct to say that after scanner calibration and embedding the resultant ICC profile into an image the color space of that image would be closer to true sRGB (will they be device-independent)? Will I be able to transform these values to CIE XYZ?

Thanks again.

This would be an input profile, not an output profile. It would describe the mapping from the scanner (device dependent) primaries to XYZ connection space (device independent). (The connection space could be CIELab, or in theory any other colorspace, but I’ve never seen an ICC profile with a connection space that wasn’t XYZ or Lab.)

An image that is encoded as XYZ can then be converted to ProPhoto or sRGB or AdobeRGB or ACES or whatever you want as a working or output space. In practice, software can convert from scanner space to a working space by “merging” two profiles, so the intermediate XYZ result isn’t actually calculated.

EDIT: I should mention that, ideally, you can get raw values from your scanner, so the data that you get is linear and with respect to the scanner primaries. I don’t think I can get that from my scanner, and the values I get are encoded as sRGB by the scanner driver software. The software has, in effect, a built-in input profile and output profile. We can still calibrate from that sRGB image, of course, but I don’t know how useful that would be.

1 Like

VueScan only produces matrix profiles, which are by far not as accurate as cLUTs. I would use Argyll.

This means that the colours produced when you apply this profile correspond to what you would see under D50 illumination of the original. If you want another illuminant you need to know the transmission/reflectance spectra of each target field. Then you can re-calculate the reference table for that illuminant. Depending on the manufacturer of the target the transmission/reflectance spectra are contained in the reference table or accompanying files.

I did this to have tungsten as illuminant since slides are made to be projected with tungsten lamps and produce the correct colors for that illuminant and not for D50. D50 is the standard in print industry.


1 Like

Since I cannot edit my post any more:
You can find the relevant formulae e.g. on the web page by Bruce Lindbloom.

Very helpful information.

Could I relate this to, for instance, Pantone colors? Pantone Black 6C has a measured sRGB value of R18/G21/B23. Can I calculate the color difference between a measured color with my profiled scanner and this color (or any other) assuming the illuminant is D50? Or should I first scan the Pantone color first with my scanner?

If everything works out, you can determine XYZ- and Lab-values for the colours measured by your scanner.


Ok. One last question. As I said before, I’m aiming to get the color difference between some measured color with my calibrated scanner and, for instance, Pantone Black 6C, which offers me an sRGB value. I want to calculate this difference using CIELab space.
As the sRGB workflow is based on D65 white point and the ICC PCS works with D50, isn’t it necessary to convert the Pantone sRGB value to XYZ and then to CIELab D50 (using, for instance, Bradford chromatic adapation) to be able to calculate?
What would the workflow be?
Thanks again.