Menurut dua sumber yang saya temukan, dalam ruang warna CIELAB LAB nilai L * = 0 sesuai dengan hitam. Mengutip Wikipedia :
Tiga koordinat CIELAB mewakili kecerahan warna (L * = 0 menghasilkan hitam dan L * = 100 menunjukkan putih difus ...)
dan mengutip Phil Cruse :
Sumbu L * mewakili Lightness. Ini vertikal; dari 0, yang tidak memiliki cahaya (yaitu hitam absolut) ...
Namun, ini tampaknya tidak terjadi. Misalnya, menggunakan L * = 0, a * = 127, b * = 0 yang diperoleh dalam Mathematica:
FullForm[ColorConvert[LABColor[0, 1.27, 0], "RGB"]]
(*RGBColor[0.46364605275068677, 0., 0.052627307663056185]*)
... yang bukan hitam.
Tampaknya ini bukan bug Mathematica, seperti juga direproduksi (setidaknya beberapa ara, setidaknya) di Julia menggunakan Color.jl
paket:
convert(RGB, LAB(0,127,0))
# RGB{Float64}(0.46778684693714695,0.0,0.04112312700274846)
Demikian juga, memvisualisasikan kubus warna LAB Colorspace ada di Neat Examples
bagian halaman dokumentasi Mathematica LABColor
. Ini dia, dengan L * = 0 permukaan menunjuk ke kamera:
Dengan pengecualian kubus di sudut, mayoritas kubus jelas tidak hitam. Jadi pertanyaan saya adalah:
- Mengapa pengaturan L * = 0 tidak harus sesuai dengan hitam dalam ruang warna CIELAB? Bukankah L * seharusnya sesuai dengan persepsi luminositas? Jika demikian, lalu mengapa beberapa bagian dari subruang L * = 0 tampak jauh lebih terang daripada hitam?
sumber
LAB(0,127,0)
tidak ada dalam ruang RGB, dan karenanya konversi menghasilkan kesalahan numerik yang menyebabkannya tampak non-hitam?Manipulate[ ArrayPlot@ Table[LABColor[l, a, b], {a, -1, 1, .05}, {b, -1, 1, .05}], {{l, 0}, -1, 2} ]
Jawaban:
Apa pun ruang warna "RGB" (sRGB?) Yang Anda masukkan sebagai tujuan di Mathematica, ia memiliki rentang warna terbatas yang dijelaskan oleh nilai R, G, dan B, biasanya serupa dengan apa yang dihasilkan oleh monitor, printer dapat mencetak dll dan jauh lebih kecil dari Lab. Karena hanya ada jumlah nilai terbatas (256 per saluran warna dalam 8-bit), ruang warna RGB mencoba untuk tidak membuang nilai pada warna yang tidak dapat direproduksi untuk menghindari efek samping yang buruk.
Konversi dari Lab ke RGB berakhir dengan warna gamut dan program kemudian mencoba memetakan warna Lab ke warna terdekat yang ada dalam ruang warna RGB target, biasanya dengan memangkas nilai apa pun <0 atau> 1 ke 0 dan 1.
Jika Anda cenderung bermain dengannya, ini adalah alat yang hebat di web, CIE Color Calculator oleh Bruce Lindbloom, yang dapat digunakan untuk konversi interaktif cepat
sumber
Jawabannya cukup sederhana: Warna yang Anda tentukan tidak valid (tidak ada). Ketahuilah bahwa mungkin dalam banyak model warna untuk menentukan "warna" yang tidak ada.
Khususnya Anda menentukan L * = 0 (tidak ada cahaya), tetapi Anda juga menentukan * = 1.27. Bagaimana bisa ada komponen warna jika tidak ada cahaya?
Jika Anda memeriksa tabel berikut (dari beberapa karya saya yang tidak dipublikasikan), Anda akan melihat bahwa untuk nilai di bawah L * = 3.14 saturasi maksimum adalah nol (seperti untuk L * = 100).
Tabel menunjukkan saturasi maksimum yang dapat dilihat untuk warna
h
(vertikal) pada intensitas yang berbedaL
(horisontal). Maksimum dicetak dalam huruf tebal.Sumber tabelnya adalah: [Int10] International Color Consortium. Spesifikasi ICC.1: 2010 (Versi profil 4.3.0.0), 12 2010. [Online: http://www.color.org/ spesifikasi / ICC1v43_2010-12.pdf; Stand 15. November 2011].
sumber