Marti,
I'm trying to convert from print viewing conditions to sRGB conditions
using the lcms CIECAM97s routines (see code below).
And I'm surprised that the reverse conversion of
JCh=[5.492917,55.960811,271.605300] results in XYZ=[0,0,0], which does
not seem to be plausible.
xyz=[0.735832 0.378688 3.452046] =>
JCh=[5.492917 55.960811 271.605300] =>
xyz=[0.000000 0.000000 0.000000]
If I use the CIECAM02 routines instead of 97s, then I do get plausible
results:
xyz=[0.735832 0.378688 3.452046] =>
JCh=[4.663790 36.817060 260.052607] =>
xyz=[0.448270 0.186863 2.299115]
With the CIECAM02 routines there seems to be another problem though: It
looks like the "D" factor is always computed, even if I explicitly
specify a D_value of e.g. 1.0 (which is != D_CALCULATE). The CIECAM97s
routines on the other hand do honor a user spplied D_value. In some
cases it is IMO useful to override the degree of adaptation and to
assume complete adaptation. So I'd appreciate if the CIECAM02 routines
would support a user supplied D_value too.
Regards,
Gerhard
-----------------------------------------------------------------
int main(int ac, char **av)
{
cmsJCh JCh;
cmsCIELab Lab;
cmsCIEXYZ xyz;
cmsViewingConditions svc, dvc;
LCMSHANDLE hsrc, hdst;
svc.whitePoint.X = 100*D50X;
svc.whitePoint.Y = 100*D50Y;
svc.whitePoint.Z = 100*D50Z;
svc.Yb = 20;
svc.La = 32;
svc.surround = AVG_SURROUND;
svc.D_value = 1.0;
dvc.whitePoint.X = 95.05;
dvc.whitePoint.Y = 100.0;
dvc.whitePoint.Z = 108.91;
dvc.Yb = 20;
dvc.La = 4;
dvc.surround = DIM_SURROUND;
dvc.D_value = 1.0;
/* a dark blue color */
Lab.L = 3.420672;
Lab.a = 14.969221;
Lab.b = -35.952678;
cmsLab2XYZ(NULL, &xyz, &Lab);
xyz.X *= 100; xyz.Y *= 100; xyz.Z *= 100;
hsrc = cmsCIECAM97sInit(&svc);
hdst = cmsCIECAM97sInit(&dvc);
printf("xyz=[%f %f %f]\n", xyz.X, xyz.Y, xyz.Z);
cmsCIECAM97sForward(hsrc, &xyz, &JCh);
printf("JCh=[%f %f %f]\n", JCh.J, JCh.C, JCh.h);
cmsCIECAM97sReverse(hdst, &JCh, &xyz);
printf("xyz=[%f %f %f]\n", xyz.X, xyz.Y, xyz.Z);
}
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Lcms-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lcms-user