Wie berechnet man andere Farben mit der gleichen wahrgenommenen Helligkeit wie ein bestimmter Grauwert?

11

Dies hängt mit einer Frage zusammen, die ich auf tex.stackexchange gestellt habe und die einen Farbaspekt hat. Das Ergebnis dieser Frage ist das folgende Bild:
Wert und Sättigungskontrast

Ich habe links eine Reihe grauer Quadrate gezeichnet, rechts einen roten Ast. Das Ziel ist es, unterschiedliche rote Quadrate mit unterschiedlicher Sättigung zu haben, aber alle mit demselben Grauwert. Im hsv-Farbmodell haben sie alle das gleiche v, aber wenn ich das Bild mit Gimp in Graustufen konvertiere, werden sie nicht in das gleiche Grau konvertiert. Der visuelle Eindruck ist auch, dass die roten Quadrate rechts dunkler sind als die links.

Wie kann ich eine gewisse grau, berechnen Farben mit einem bestimmten Farbton und dem gleichen Grauwert (oder, noch besser, mit dem gleichen grauen gegeben Eindruck )? Die im Bild verwendeten Farben sind alle berechnet, daher bevorzuge ich Lösungen, die auch Berechnungen beinhalten.

Ich habe hier möglicherweise falsche Begriffe verwendet - ich bin Maschinenbauingenieur. Bitte korrigieren Sie mich gegebenenfalls oder bitten Sie um Klarstellung.


Der Vorschlag, den Lab-Farbraum zu verwenden, hat mich zu einigen Schlussfolgerungen geführt:

  • Ich kann den LWert des Lab-Modells verwenden , um einen Grauwert für verschiedene Farben festzulegen. Im hsv-Modell ist diesv . Ich bin mir nicht sicher, ob ich diese tatsächlich vergleichen darf, aber ich werde es tun, bis sich jemand beschwert.

  • Im hsv-Modell kann ich auch eine "Grundfarbe" (einen Farbton) festlegen, die ich im Lab-Modell nicht finden kann.

  • Im hsv-Modell habe ich 2 Konstanten (im obigen Bild: h= 0, v= 0,375) und eine Variable (s ).

  • Bis zu diesem Punkt habe ich nur eine Konstante im Lab-Modell. Das reicht nicht aus, um etwas Ähnliches zu generieren, wie ich es bereits mit dem hsv-Modell gemacht habe.

Ich denke, es ist Zeit für Experimente.


Erledigt! Nachdem ich den Konvertierungscode zum Laufen gebracht hatte, war es ganz einfach. Der erste Schritt bestand darin, das "Zielrot" rechts zu definieren. Ich berechnete RGB2Lab (255,0,0) und änderte den L-Wert des Ergebnisses auf das gewünschte L in der Abbildung (L = 62,5). Die Farben werden unter Verwendung einer linearen Interpolation im Laborraum von (L, 0,0) bis (L, aTarget, bTarget) berechnet. Das Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Vielen Dank!

Christoph
quelle
2
Es gibt eine Menge Dinge, die Sie vielleicht im Wikipedia-Eintrag nützlich finden, aber ich habe ( en.wikipedia.org/wiki/HSL_and_HSV#Disadvantages ) mögliche Auswirkungen auf Ihr Problem gefunden, insbesondere: "Weil HSL und HSV nur mit definiert sind In Bezug auf einige RGB-Räume handelt es sich nicht um absolute Farbräume: Um eine Farbe genau anzugeben, müssen nicht nur HSL- oder HSV-Werte angegeben werden, sondern auch die Eigenschaften des RGB-Raums, auf dem sie basieren, einschließlich der verwendeten Gammakorrektur. "
Horatio
Die naheliegende Idee ist es daher, den Gamma- und RGB-Farbraum (falls möglich!) Anzugeben, wenn Sie eine Konvertierung versuchen.
Horatio
2
Noch bessere Idee ist RGB → L * a * b * → RGB; as Lab wurde entwickelt, um das menschliche Sehen anzunähern, und Leichtigkeit ist eine seiner Dimensionen.
Jari Keinänen
@koiyu Lab ist, wie ich vorschlage, auch graue Übereinstimmungen zu finden. (Du hast mich geschlagen! Ich habe die Antwort unten verspottet, als du das gepostet hast.)
Nick
Ich habe die problematische Diskussion der Farbwahrnehmung vermieden :)
Horatio

Antworten:

10

Sie können den Lab-Farbraum verwenden , um Ihre Übereinstimmungen zu finden. Farben mit demselben L-Wert wie Ihr Zielgrau sehen bei der Konvertierung in Graustufen nahezu identisch aus.

Beispielsweise sieht ein Lab-Grau von (50, 0, 0) den Lab-Rottönen (50, 30, 0), (50, 50, 30) und (50, 50, 50) bei der Konvertierung in sehr ähnlich Graustufen. Die folgenden Beispiele verwenden Photoshop (Bild> Modus> Graustufen), um von Lab nach Grau zu konvertieren: Original Lab Farben
In Graustufen umgewandelt

Nick
quelle
Das sieht nach etwas aus, das ich will! Vielen Dank. Ich kann Lab jedoch nicht direkt mit meinem Toolset verwenden, daher benötige ich eine Art Konvertierungsalgorithmus. Koiyu schlug vor, RGB -> Lab -> RGB zu konvertieren, und ich werde versuchen, dies zu implementieren.
Christoph
1
Ich habe Folgendes gefunden: http://www.brucelindbloom.com/index.html?Equations.html . Ich weiß nicht, ob die Konvertierungen korrekt sind, und ich habe den Eindruck, dass noch etwas Magie erforderlich ist.
Christoph
Diese Konvertierungsfunktionen scheinen nützlich zu sein.
Nick
Und sie sehen tatsächlich ein bisschen geradliniger aus ...
Christoph
@Nick Ich kann alle Berechnungen mit einem Taschenrechner machen, was gut ist. Ich muss jedoch die Farbmodellkonvertierungen in meinem LaTeX-Dokument implementieren, was mir hier und da Kopfschmerzen bereitet. Wenn es fertig ist, werde ich das Ergebnis veröffentlichen und Ihre Antwort akzeptieren.
Christoph
4

Der obige Rat von Nick funktioniert also nur bei 50% Luminanz. Wenn Sie einen anderen L-Wert auf verschiedene Farben anwenden, ist das Grauergebnis unterschiedlich.

Dafür muss es eine Mathematik geben, aber Sie können dies auf dem Bildschirm per Auge tun.

Wenn Sie alle gewünschten Farben erstellen und dann ein graues Element (Illustrator) oder eine Ebene (Photoshop) mit dem Transparenzmodus auf "Farbe" (oder Sättigung oder Farbton) legen, werden alle unten aufgeführten Elemente angezeigt, um die Leuchtkraft anzuzeigen.

Sie sollten sicherstellen, dass alle Farben unter diesem grauen Element eine Sättigung von 100 aufweisen. Andernfalls erhalten Sie eher graue Ergebnisse als schöne Farben.

Das Problem ist nun: Mit allen oben genannten Methoden werden alle Elemente auf die "gleiche Leuchtkraft innerhalb des verwendeten RGB-Profils" eingestellt, dh auf das gleiche Grau für das ausgewählte "Gerät", und das Schlimmste: Das Auge ist ein Gerät und es gibt Unterschiede.

Sie können verschiedenen Personen die gleichen Farben zeigen, und sie werden nicht die gleiche "Gleichmäßigkeit" wie andere finden.

Fügen Sie dies zu der Tatsache hinzu, dass Sie diese Farben im ausgewählten Gerät als "gleiche Leuchtkraft" einstellen und nicht nur alle "geschätzt" werden, sobald Sie sie auf einem anderen Gerät anzeigen, schlägt der Effekt fehl, da jedes Gerät hat seine eigene Fähigkeit, die rot-grünen oder blauen Elemente mit unterschiedlichen Intensitäten zu beleuchten, so dass Sie möglicherweise z. B. rotere Elemente erhalten.

Wenn Sie eine Mischung von einem Grau zu einer Farbe wie oben vorgeschlagen erstellen, müssen Sie außerdem sicherstellen, dass das graue Element in jedem Kanal mindestens 1/255 aufweist (dh nicht länger grau). Andernfalls betrachtet die Software das ursprüngliche Grau als 0-Farbton, wodurch Sie rötliche Mitteltöne erhalten (da eine Mischung zwischen 0-Farbton und einer anderen Farbe auf halbem Weg zu einem Rot ist)

Ich bin seit den 90er Jahren ein Experte für Druckvorstufe und mein Rat lautet: Wenn Sie mit der Mathematik arbeiten möchten, sollten Sie die Mathematik für das Auge (visuelle Fähigkeiten) sowie die für das Gerät verwenden, das Sie zeigen werden diese Zahlen auf.

Viel Glück.

Sergio
quelle