Bietet Farbton / Sat / Lum eine kleinere Farbpalette als RGB?

8

Alle RGB-Werte sollten eindeutig und unterscheidbar sein, was bedeutet, dass es wirklich 256 * 256 * 256 Farben gibt.

Wenn in HSL jedoch L = 0 ist, können H und S alles sein, aber Sie erhalten immer noch die gleiche Farbe (schwarz). In ähnlicher Weise spielt H keine Rolle, wenn S = 0 ist, da Sie einen reinen Grauton erhalten. Es scheint also, dass das HSL-Modell bestenfalls 256 * 256 * 256 - 256 * 256 - 256 Farben oder ~ 0,4% weniger Farben bietet. Ist das wahr?

1279343
quelle
Die Farbskalen mögen unterschiedlich sein (ich weiß nicht), aber HSL und HSV wurden als polare Transformationen von RGB entwickelt. Ihre Gedanken zu "S = 0, H spielt keine Rolle" erscheinen mir jedoch auf eine Weise falsch, die ich nicht artikulieren kann. S = 0 ist eine andere Art zu sagen, R = G = B. L = 0 wird (R = G = B = 0) und L = 1 (100%) = (R = G = B = 1). Ich bin gespannt auf die Antwort.
Horatio
@horatio Zum Beispiel, wenn R = G = B = 128, H = 0, S = 0, L = 50, wenn R = G = B = 255, H = 0, S = 0, L = 100 ...
John
Das habe ich in meinem Kommentar so ziemlich gesagt. Die beiden Antworten bestätigen meine Aussage, dass es sich um einen Isomorphismus des RGB-Farbraums handelt, wobei die "Auswahlbarkeit" durch die von den meisten Programmen auferlegten ganzzahligen Bereiche eingeschränkt ist.
Horatio

Antworten:

10

Ja und nein.

Ja:

Es bietet einen kleineren Farbbereich, vorausgesetzt, für jeden Wert sind Ganzzahlen erforderlich . In Photoshop müssen HSB-Werte beispielsweise ganzzahlig sein, und Sie werden angeschrien, wenn Sie etwas anderes versuchen:

Photoshop-Farbauswahlfehler

Ihre Mathematik scheint jedoch nicht zu stimmen. Mit RGB sind Sie auf dem richtigen Weg: Jeder Wert kann eine Ganzzahl von 0 bis 255 sein, sodass der RGB-Farbumfang aus 256³ oder 16.581.375 Farben besteht.

Für HSL sind die Werteinschränkungen unterschiedlich. H kann 0-359 sein, S kann 0-100 sein und B kann 0-100 sein. Die Anzahl der eindeutigen HSL-Tripletts beträgt also 360 * 101 * 101 oder 3.672.360. Doppelte Farben werden noch nicht berücksichtigt und wir sind bereits deutlich kleiner als RGB.

Ich bin nicht gut genug in Statistiken, um die Anzahl der eindeutigen Werte für ganzzahlige HSL zu berechnen, daher werde ich es nicht einmal versuchen

Infolgedessen kommt es zu einer Farbkollision. Sie können dies selbst versuchen, indem Sie den Wert zweier sehr enger RGB-Werte überprüfen. Zum Beispiel, #00AAAAund #00AAABsind beide auf 180 ° umgewandelt, 100%, 67% in Photoshop:

Photoshop-Farbauswahlvergleich

Nein:

Illustrator ist etwas entspannter. Es ist glücklich und bereit, Dezimalwerte für HSB zu akzeptieren:

Illustrator Farbwähler

CSS3 akzeptiert auch Dezimalwerte für hsl()und hsla(). Diese Implementierung ist es Art und Weise noch genauer als RGB, die nie Dezimalwerte annehmen sollte.

JohnB
quelle
Sehr gut ausgedrückt, danke. Ich wusste nicht, dass die Bereiche unterschiedlich waren.
1279343
3

HSL (Farbton, Sättigung, Helligkeit ) und HSB sind abgeleitete Farbmodelle des RGB-Farbmodells. Sie decken den gleichen Farbbereich (wie in der Farbskala) mit einer geringeren Anzahl von "markanten" Punkten dazwischen ab.

Das RGB-Modell definiert 256 ^ 3 oder 16.777.216 Punkte
und HSL / HSB definiert 360 * 101 * 101 oder 3.672.360 Punkte.

Sie müssten programmgesteuert herausfinden, wie viele Punkte von der HSL-Karte auf eindeutige RGB-Punkte abgebildet werden. Nicht nur die von Ihnen erwähnten Extrempunkte werden einem einzelnen Satz von RGB-Werten zugeordnet. Zum Beispiel gibt es auch viele Veröffentlichungen für einen Sättigungswert von 1% (in HSL), wie Sie hier überprüfen können .

Das ist die Theorie. In der Praxis sind die meisten Geräte immer noch nicht in der Lage, 16.777.216 "eindeutige und unterscheidbare" Farben zu verarbeiten / darzustellen, und das menschliche Auge kann dies auch nicht. In der Praxis spielt der Unterschied in der Anzahl der "unterscheidenden" Werte oft (nicht immer) keine Rolle.

John
quelle
ausgezeichnete Zusatzinformationen.
1279343