POV-Ray : Newsgroups : povray.binaries.images : CIE L*C*h : Re: CIE L*C*h Server Time
7 Nov 2024 04:52:46 EST (-0500)
  Re: CIE L*C*h  
From: Mike Horvath
Date: 26 Nov 2016 17:06:15
Message: <583a0757$1@news.povray.org>
On 11/26/2016 2:28 PM, Ive wrote:
 > Am 11/26/2016 um 18:02 schrieb Mike Horvath:
 >> On 11/20/2016 7:32 AM, Mike Horvath wrote:
 >>> Done.
 >>>
 >>> https://commons.wikimedia.org/wiki/File:Cielch_color_solid_cylinder.png
 >>
 >> Done again.
 >>
 >> 
https://commons.wikimedia.org/wiki/File:SRGB_gamut_within_CIELCH_color_space_isosurface.png
 >>
 >>
 >
 > Your description on the wiki page is partial misleading and partial 
wrong.
 > It is not L*C*h, it's just LCh without asterix.
 > CIE LCh(uv) means the polar representation of the CIE Luv color space.
 > But what you are actually calculating is CIE LCh - the polar
 > representation of the CIE L*a*b color space (just for historical reasons
 > with asterix).
 > sRGB fits very well into L*a*b and Luv as both cover the full range of
 > visible colors - and there is no visa versa.
 > So the question is: why are small bits hanging out at the corners?
 > To me it indicates that there is something seriously wrong with that
 > graphical representation.
 >
 > And while I'm at it, why do you use
 > XYZEpsilon = 0.008856 and XYZKappa = 903.3
 > where the CIE recommendation is 216/24389 and 24389/27 to avoid the
 > discontinuity at the junction point for the lightness function.
 > And why do you use D65 as reference white while e,g, the ICC, Adobe, HP
 > and myself do use D50?
 >
 > And finally the appearance of your images at the page
 > https://en.wikipedia.org/wiki/HCL_color_space
 > doesn't make sense as this page is about LCh(uv) and not LCh.
 >
 > -Ive
 >
 >
 >

Thanks for clarifying the acronyms! There are so many of them...

I got my conversion formulas from here:

	https://github.com/thejoezack/colormine

I also used the following color converter to double check my results:

	http://www.easyrgb.com/index.php?X=CALC

In my prior attempt I plotted individual chunks using cylindrical 
coordinates, and colored each chunk individually. As a test, I increased 
the number of chunks to 360 * 100 * 100 = 3600000 chunks. The shape was 
identical to the one in the above image, except "grainier" and less smooth.

Epsilon, kappa and white point were all gotten from here:

	https://github.com/THEjoezack/ColorMine/blob/master/ColorMine/ColorSpaces/Conversions/XyzConverter.cs

The easyrgb.com converter says the illuminant being used is D65. I 
didn't double check to make sure it's right. Here is some sample output:

	HTTP       =  #008B76
	Web safe   =  #009966
	RGB 0-255  =     0.00   139.16   117.60
	RGB 0-FF   =       00       8B       75
	RGB 0-0.1  =  0.00000  0.54573  0.46120
	CMY 0-0.1  =  1.00000  0.45427  0.53880
	CMYK %     =  100.000    0.000   15.491   45.427
	XYZ        =    9.803   18.419   20.055
	Yxy        =   18.419  0.20306  0.38152
	CIE-L*ab   =   50.000  -50.000    0.000
	CIE-L*CH   =   50.000   50.000  180.000
	CIE-L*uv   =   50.000  -54.984    6.773
	HunterLab  =   42.917  -34.332    2.336

	Illuminant =  D65
	Observer   =  2° (1931)

I'm sure it's possible to plot invalid LCH coordinates such that parts 
of the SRGB gamut fall outside it. It's just going to be a lot of work 
tracking down those values in the image.

Mike


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.