The short version:

The issue I am having is that if I display an RGB value on the screen
and measure it's Lab value, I should be able to feed that Lab value into
LCMS, along with the monitor's profile, and get the original RGB value,
or something very close to it visually.  However, the RGB value I get
back from LCMS is off, significantly, and lighter in almost every case.

The input profile I'm using is the built-in Lab4 profile.  The output
profile I'm using is created from the monitor's profile file.  The
transform I am doing is from Lab double to RGB 8, Absolute Colorimetrix
Intent, with a No Precalc flag.

What am I doing wrong?

Thanks in advance for your help.

Michael A. Litscher
CTO, ColorMetrix Technologies, LLC


The long version:

Hardware:
Dell 2005FPW LCD connected via DVI
Nvidia 6600GT based video card
GretagMacbeth EyeOne Pro, UV cut spectrophotometer

Software:
Microsoft Windows XP SP2
GretagMacbeth Eye-One Match version 3.6
GretagMacbeth MeasureTool version 5.02
LittleCMS version 1.0.17

The Excel spreadsheet, monitor profile, lcms.dll library, and readme
file discussed can be downloaded from:
http://files.colormetrix.com/lcms_test.zip

Before opening the spreadsheet, copy the lcms.dll file to your system32
directory.  This is most likely: C:\Windows\System32

When you open the spreadsheet, Excel will ask you if you want to enable
Macros.  Enable them if you want the spreadsheet to be able to call
Little CMS from within Excel in order to perform the color calculations.

All measurements and calibrations were done in a dark room on a
warmed-up monitor within a 30 minute timespan using the same instrument
and the same calibration plaque.


First, I profiled monitor, generating a version 2 large (LUT) profile
(some camera software I use doesn't like version 4 profiles), with a
white point of 5K, a gamma of 2.2, and a luminance of 120.

Once the monitor was profiled and the new profile installed as the
default, I started up MeasureTool.  The instrument configuration was
verified to be set to eyeone, emission, spectral.  I selected Measuring,
Chart, LCD Monitor Reference 2.0.txt, which displayed a 99 swatch
chart.  I then used MeasureTool to measure each of those swatches.

I then did File..., Save As... which saved the target RGB data along
with the spectral measurement data from the instrument to a text file,
which I then imported into Excel.

In MeasureTool, I hovered the mouse pointer over each of the swatches,
which showed the L*a*b* value of the measurement.  I typed these numbers
into Excel.  I also calculated the L*a*b* numbers myself from the
spectral data, just to double-check my typing, and that Gretag and I
were on the same page, math-wise.

In Excel, I then created some macros (Tools, Macro, Visual Basic Editor)
to call into the Little CMS library in order to calculate RGB from Lab. 
To those interested in calling Little CMS from within Excel, feel free
to take a look, though I'll warn you I made no effort to optimize the code.

The issue I am having is that if I display an RGB value on the screen
and measure it's Lab value, I should be able to feed that Lab value into
LCMS, along with the monitor's profile, and get the original RGB value,
or something very close to it visually.  However, the RGB value I get
back from LCMS is off, significantly, and lighter in almost every case.

In the enclosed spreadsheet, columns A through C contain the RGB values
displayed by MeasureTool, columns E through G contain the Lab values
measured by MeasureTool using the EyeOne Pro spectrophotometer, colums I
through K contain the RGB values LCMS produces from transforming the Lab
values, and columns M through O contain the delta from the originally
displayed RGB values to the LCMS RGB values.

The input profile I'm using is the built-in Lab4 profile (the regular
Lab 2 profile yields slightly different yet very similar results).  The
output profile I'm using is created from the monitor's profile file. 
The transform I am doing is from Lab double to RGB 8, absolute
colorimetrix Intent, with a no precalc flag.

The range of errors I'm getting back are:
R -4 to +21, G -1 to +22, and B -0 to +28.

What am I doing wrong?

Thanks in advance for your help.

Michael A. Litscher
CTO, ColorMetrix Technologies, LLC


-------------------------------------------------------------------------
SF.Net email is sponsored by: 
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to