Apakah hue / sat / lum menawarkan rentang warna yang lebih kecil daripada RGB?

8

Semua nilai RGB harus unik dan dapat dibedakan, artinya benar-benar ada 256 * 256 * 256 warna.

Namun, dalam HSL, jika L = 0 maka H dan S dapat berupa apa saja, tetapi Anda masih mendapatkan warna yang sama (hitam). Demikian pula, jika S = 0 maka H tidak masalah, karena Anda akan mendapatkan warna abu-abu murni. Jadi sepertinya model HSL menawarkan 256 * 256 * 256 - 256 * 256 - 256 warna terbaik, atau ~ 0,4% lebih sedikit warna. Apakah ini benar?

1279343
sumber
Gamut mungkin berbeda (saya tidak tahu), tetapi HSL dan HSV dikembangkan sebagai transformasi kutub dari RGB. Namun, pemikiran Anda tentang "S = 0, H tidak masalah" menganggap saya salah dengan cara yang tidak dapat saya ungkapkan. S = 0 adalah cara lain untuk mengatakan R = G = B. L = 0 menjadi (R = G = B = 0), dan L = 1 (100%) = (R = G = B = 1). Saya ingin tahu tentang jawabannya.
horatio
@horatio Misalnya, ketika R = G = B = 128, H = 0, S = 0, L = 50, ketika R = G = B = 255, H = 0, S = 0, L = 100 ...
John
Itulah yang saya katakan dalam komentar saya. Dua jawaban mengkonfirmasi pernyataan saya tentang mereka menjadi isomorfisma ruang warna RGB dengan batasan pada "pickability" yang dikenakan oleh rentang integer yang dikenakan oleh sebagian besar perangkat lunak.
horatio

Jawaban:

10

Iya dan tidak.

Iya:

Ini menawarkan rentang warna yang lebih kecil dengan asumsi bahwa bilangan bulat diperlukan untuk setiap nilai . Photoshop, misalnya, membutuhkan nilai HSB menjadi bilangan bulat dan akan berteriak pada Anda jika Anda mencoba sebaliknya:

Kesalahan pemilih warna Photoshop

Namun, matematika Anda tampaknya tidak aktif. Anda berada di jalur yang benar dengan RGB: setiap nilai dapat berupa bilangan bulat dari 0-255, sehingga gamut RGB terdiri dari 256³ atau 16.581.375 warna.

Untuk HSL, batasan nilainya berbeda. H bisa 0-359, S bisa 0-100, dan B bisa 0-100. Jadi jumlah kembar tiga HSL yang unik adalah 360 * 101 * 101, atau 3.672.360. Ini belum memperhitungkan warna duplikat akun dan kami sudah jauh lebih kecil dari RGB.

Saya tidak cukup baik dalam statistik untuk menghitung jumlah nilai unik untuk HSL berbasis integer, jadi saya bahkan tidak akan mencoba

Akibatnya, akan terjadi tabrakan warna. Anda dapat mencobanya sendiri dengan memeriksa nilai dua nilai RGB yang sangat dekat. Misalnya, #00AAAAdan #00AAABkeduanya dikonversi ke 180 °, 100%, 67% di Photoshop:

Perbandingan pemilih warna Photoshop

Tidak:

Ilustrator sedikit lebih santai. Sangat senang dan bersedia menerima nilai desimal untuk HSB:

Pemetik warna ilustrator

CSS3 juga menerima nilai desimal untuk hsl()dan hsla(). Implementasi ini membuat cara yang lebih rinci dari RGB, yang seharusnya tidak pernah menerima nilai-nilai desimal.

JohnB
sumber
Sangat bagus, terima kasih. Saya tidak menyadari rentangnya berbeda.
1279343
3

HSL (hue, saturation, lightness ) dan HSB adalah model warna turunan dari model warna RGB. Mereka mencakup kisaran warna yang sama (seperti dalam gamut) dengan jumlah titik "khas" yang lebih kecil di antaranya.

Model RGB mendefinisikan 256 ^ 3 atau 16.777.216 poin
dan HSL / HSB mendefinisikan 360 * 101 * 101 atau 3.672.360 poin.

Anda harus mencari tahu secara terprogram berapa banyak titik dari peta HSL ke titik unik RGB. Tidak hanya titik ekstrim yang Anda sebutkan peta ke satu set nilai RGB. Misalnya, ada juga banyak publikasi yang memiliki nilai saturasi 1% (dalam HSL) seperti yang dapat Anda periksa di sini .

Itulah teorinya. Dalam praktiknya masih sebagian besar perangkat tidak mampu memproses / menyajikan 16.777.216 warna "unik dan dapat dibedakan" dan mata manusia tidak bisa juga. Jadi dalam praktiknya perbedaan jumlah nilai "khas" sering (tidak selalu) tidak masalah.

John
sumber
informasi tambahan yang sangat baik.
1279343