私が見つけた2つの情報源によると、CIELAB LAB色空間では、L * = 0の値は黒に対応します。ウィキペディアの引用:
CIELABの3つの座標は色の明度を表します(L * = 0は黒を生成し、L * = 100は拡散白を示します...)
Phil Cruseの引用:
L *軸は明度を表します。これは垂直です。0からは、明度はありません(つまり、絶対黒)
ただし、そうではないようです。たとえば、L * = 0、a * = 127、b * = 0を使用すると、Mathematicaで次のようになります:
FullForm[ColorConvert[LABColor[0, 1.27, 0], "RGB"]]
(*RGBColor[0.46364605275068677, 0., 0.052627307663056185]*)
...黒ではありません。
これは、Color.jl
パッケージを使用してJuliaで(少なくともいくつかのイチジクに)再現されているため、Mathematicaのバグではないようです。
convert(RGB, LAB(0,127,0))
# RGB{Float64}(0.46778684693714695,0.0,0.04112312700274846)
同様に、LABカラースペースのカラーキューブの視覚化Neat Examples
は、のMathematicaドキュメントページのセクションにありますLABColor
。ここでは、L * = 0の面がカメラの方を向いています。
コーナーの立方体を除いて、立方体の大部分は明らかに黒ではありません。だから私の質問は:
- L * = 0設定がCIELAB色空間の黒に必ずしも対応しないのはなぜですか?L *は知覚された光度に対応するはずではありませんか?もしそうなら、なぜL * = 0サブスペースの一部が黒よりかなり明るく見えるのですか?
LAB(0,127,0)
がRGB空間に存在しないため、変換によって数値エラーが発生し、黒ではないように見えるということですか?
Manipulate[ ArrayPlot@ Table[LABColor[l, a, b], {a, -1, 1, .05}, {b, -1, 1, .05}], {{l, 0}, -1, 2} ]