De acordo com duas fontes que encontrei, no espaço de cores CIELAB LAB, um valor de L * = 0 corresponde ao preto. Citando a Wikipedia :
As três coordenadas do CIELAB representam a claridade da cor (L * = 0 produz preto e L * = 100 indica branco difuso ...)
e citando Phil Cruse :
O eixo L * representa a luminosidade. Isso é vertical; de 0, que não tem leveza (ou seja, preto absoluto) ...
No entanto, este parece não ser o caso. Por exemplo, usando L * = 0, a * = 127, b * = 0 é obtido no Mathematica:
FullForm[ColorConvert[LABColor[0, 1.27, 0], "RGB"]]
(*RGBColor[0.46364605275068677, 0., 0.052627307663056185]*)
... que não é preto.
Isso não parece ser um bug do Mathematica, pois também é reproduzido (para alguns sig figs, pelo menos) na Julia usando o Color.jl
pacote:
convert(RGB, LAB(0,127,0))
# RGB{Float64}(0.46778684693714695,0.0,0.04112312700274846)
Da mesma forma, visualizar o cubo de cores do LAB Colorspace está na Neat Examples
seção da página de documentação do Mathematica LABColor
. Aqui está, com a face L * = 0 da superfície apontando para a câmera:
Com exceção do cubo na esquina, a maioria dos cubos não é preta. Então, minha pergunta é:
- Por que uma configuração L * = 0 não corresponde necessariamente ao preto no espaço de cores do CIELAB? L * não deveria corresponder à luminosidade percebida? Se sim, então por que algumas partes do subespaço L * = 0 parecem consideravelmente mais brilhantes que o preto?
LAB(0,127,0)
não existe no espaço RGB e, portanto, a conversão resulta em erros numéricos que fazem com que ela pareça não preta?
Manipulate[ ArrayPlot@ Table[LABColor[l, a, b], {a, -1, 1, .05}, {b, -1, 1, .05}], {{l, 0}, -1, 2} ]