User:Aamleshi/sandbox

HCL (Hue-Chroma-Luminance) is a color space model designed to accord with human perception of color. HCL has been adopted by information visualization practitioners to present data without the bias implicit in using varying saturation.

Overview
HCL is designed to have characteristics of both cylindrical translations of RGB color space such as HSL and HSV and L*a*b* color space. HSL and HSV color spaces have the benefit of being perceptually uniform translations of the RGB color space, but their luminance variation does not match the way humans perceive color. Perceptually uniform translations of RGB colorspace do have the benefit of outperforming RGB in cases such as high noise environments. L*a*b colorspace does correspond to the three channels of human perception, but have poor hue constancy, especially in the blue range.

HCL uses the CIELAB model defined by the International Commission on Illumination (CIE) in 1976, translated into polar coordinates. HCL preserves the L (luminance) axis of L*a*b*, but transforms ab to polar coordinates, where the distance from zero is the chroma (an alternative measure of colorfulness), and the phase (angle) is our familiar hue. The older Munsell color system is based on different mathematics, but has some similarity to HCL.

Color-making attributes
See also: Color vision

The dimensions of the HSL and HSV geometries—simple transformations of the not-perceptually-based RGB model—are not directly related to the photometric color-making attributes of the same names, as defined by scientists such as the CIE or ASTM. Nonetheless, it is worth reviewing those definitions before leaping into the derivation of our models.
 * Hue
 * The "attribute of a visual sensation according to which an area appears to be similar to one of the perceived colors: red, yellow, green, and blue, or to a combination of two of them".


 * Radiance (Le,Ω)
 * The radiant power of light passing through a particular surface per unit solid angle per unit projected area, measured in SI units in watt per steradian per square metre (W·sr−1·m−2).


 * Luminance (Y or Lv,Ω)
 * The radiance weighted by the effect of each wavelength on a typical human observer, measured in SI units in candela per square meter (cd/m2). Often the term luminance is used for the relative luminance, Y/Yn, where Yn is the luminance of the reference white point.


 * Luma (Y′)
 * The weighted sum of gamma-corrected R′, G′, and B′ values, and used in Y′CbCr, for JPEG compression and video transmission.


 * Brightness
 * The "attribute of a visual sensation according to which an area appears to emit more or less light".


 * Lightness, value
 * The "brightness relative to the brightness of a similarly illuminated white".


 * Colorfulness
 * The "attribute of a visual sensation according to which the perceived color of an area appears to be more or less chromatic".


 * Chroma
 * The "colorfulness relative to the brightness of a similarly illuminated white".


 * Saturation
 * The "colorfulness of a stimulus relative to its own brightness".

Brightness and colorfulness are absolute measures, which usually describe the spectral distribution of light entering the eye, while lightness and chroma are measured relative to some white point, and are thus often used for descriptions of surface colors, remaining roughly constant even as brightness and colorfulness change with different illumination. Saturation can be defined as either the ratio of colorfulness to brightness or of chroma to lightness.

Hue:
$$H = \arctan \left ( \frac{G-B}{R-G} \right )$$

if ((R−G) < 0 and (G−B) ≥ 0), then H = 180+H

if ((R−G) < 0 and (G−B) < 0), then H = H −180

Chroma:
$$C = \left ( \frac{Q.(|R - G| + |G -B| + |B - R|)}{3} \right )$$

Luminance:
$$L = \left ( \frac{Q.Max(R, G, B) + (1 - Q).Min(R, G, B)}{2} \right )$$

$$Q = e^{\alpha*\gamma}  $$

Q is a tuning parameter that varies luminosity between a highly saturated color and white.

$$\alpha = \frac{Min(R,G,B)}{100*Max(R,G,B)} $$

$$\gamma   $$ corresponds to the correction factor in L*a*b*

Implementations
d3.js Data Driven Documents JavaScript library

HCL colorspace for the R statistical programming language

The chroma.js JavaScript library

Other uses of HCL acronym
The terms hue, chroma and luminance or lightness can, of course, be used in other contexts. Thus a discussion of HCL may not refer specifically to cylindrical LAB

Some sources use HCL as an alternative name for the L*C*h(uv) color space, also known as the cylindrical representation or polar CIELUV