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

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, von denen ein roter Zweig nach rechts abgeht. Das Ziel sind verschiedene rote Quadrate mit unterschiedlicher Sättigung, aber alle mit dem gleichen Grauwert. Im hsv-Farbmodell haben sie alle das gleiche v, aber wenn ich das Bild mit Gimp in Graustufen konvertiere, werden sie nicht in dasselbe Grau konvertiert. Auch der visuelle Eindruck ist, dass die roten Quadrate auf der rechten Seite dunkler sind als die auf der linken Seite.

Wie kann ich bei einem bestimmten Grau Farben mit einem bestimmten Farbton und dem gleichen Grauwert (oder noch besser mit dem gleichen Graueindruck ) berechnen ? 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, also 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 eine Art Grauwert für verschiedene Farben festzulegen. Beim hsv-Modell ist dies v. Ich bin mir nicht sicher, ob ich die vergleichen darf, aber ich werde es tun, bis sich jemand beschwert.

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

  • Im hsv-Modell habe ich 2 Konstanten (im Bild oben: 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.


Fertig! Nachdem ich den Konvertierungscode zum Laufen gebracht hatte, war es ganz einfach. Im ersten Schritt wurde rechts das „Zielrot“ definiert. Ich habe RGB2Lab(255,0,0) berechnet und den L-Wert des Ergebnisses auf das gewünschte L in der Abbildung geändert (L = 62,5). Die Farben werden unter Verwendung einer linearen Interpolation im Lab-Raum von (L,0,0) bis (L,aTarget,bTarget) berechnet. Das Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Vielen Dank!

Es gibt eine Menge Dinge, die Sie im Wikipedia-Eintrag möglicherweise nützlich finden, aber ich habe ( en.wikipedia.org/wiki/HSL_and_HSV#Disadvantages ) einen möglichen Einfluss auf Ihr Problem gefunden, insbesondere: „Weil HSL und HSV rein mit definiert sind beziehen sich auf einige RGB-Räume, sind sie keine absoluten Farbräume: Um eine Farbe genau zu spezifizieren, müssen nicht nur HSL- oder HSV-Werte gemeldet werden, sondern auch die Eigenschaften des RGB-Raums, auf dem sie basieren, einschließlich der verwendeten Gammakorrektur.
Daher ist es naheliegend, beim Versuch einer Konvertierung den Gamma- und den RGB-Farbraum anzugeben (wenn möglich!).
Eine noch bessere Idee ist RGB → L*a*b* → RGB; da Lab so konzipiert ist, dass es sich dem menschlichen Sehvermögen annähert und Leichtigkeit eine seiner Dimensionen ist.
@koiyu Lab ist, wie ich vorschlage, dass auch graue Übereinstimmungen gefunden werden. (Du bist mir zuvorgekommen! Ich habe die Antwort unten verspottet, als du das gepostet hast.)
Ich habe die problematische Diskussion über die Farbwahrnehmung vermieden :)

Antworten (2)

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.

Zum Beispiel sieht ein Lab-Grau von (50, 0, 0) den Lab-Rottönen (50, 30, 0), (50, 50, 30) und (50, 50, 50) sehr ähnlich, wenn es in konvertiert wird Graustufen. Die folgenden Beispiele verwenden Photoshop (Bild > Modus > Graustufen), um von Lab in Grau zu konvertieren:Original Lab-Farben
In Graustufen konvertiert

Das sieht aus wie etwas, 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, das umzusetzen.
Folgendes habe ich gefunden: http://www.brucelindbloom.com/index.html?Equations.html . Ich weiß nicht, ob die Umrechnungen stimmen und ich habe den Eindruck, dass noch etwas Magie benötigt wird.
Diese Konvertierungsfunktionen scheinen nützlich zu sein.
Und sie sehen tatsächlich etwas geradliniger aus ...
@Nick Ich kann alle Berechnungen mit einem Taschenrechner durchführen, was gut ist. Allerdings muss ich die Farbmodellkonvertierungen in meinem LaTeX-Dokument implementieren, was mir hier und da Kopfschmerzen bereitet. Wenn es fertig ist, werde ich das Ergebnis posten und Ihre Antwort akzeptieren.
@Christoph Bravo! Vielen Dank für die Veröffentlichung des Ergebnisses und gut gemacht, dass Sie es durchgesehen haben.
@Nick Es hat sogar Spaß gemacht! Ich muss mich jedoch weiter mit dem Lab-Modell befassen. Ich weiß nicht, ob das in meinem Ergebnis gezeigte Rot so rot ist, wie Rot mit L = 62,5 wird. Im RGB-Raum kann ich sagen "255,0,0 ist maximal rot", aber ich kann diese Maximalwerte im Lab-Raum nicht angeben. Ich habe den Eindruck, dass das Rot, das ich jetzt habe, etwas zu gelblich ist. Auch bei der Konvertierung in Graustufen (mit Gimp) variieren die Werte von 59 bis 38 (war 63 bis 13, also ist dies eine Verbesserung). Farbräume sind schließlich interessant!
Es ist besser, es sich als Lch-Farbraum mit zylindrischen Koordinaten für Helligkeit, Chroma und Farbton vorzustellen. und stellen Sie sicher, dass Sie den RGB-Würfel nicht überschreiten, da er sonst auf eine falsche Farbe gekürzt wird. und es gibt verschiedene Möglichkeiten, "in Graustufen zu konvertieren". Wenn Ihr Farbraum es also anders macht als Ihr Graustufenkonverter, funktioniert es nicht.

Der obige Rat von Nick funktioniert also nur für 50 % Leuchtdichte. 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 es auf dem Bildschirm mit dem Auge tun.

Wenn Sie alle gewünschten Farben erstellen und dann ein graues Element (Illustrator) oder eine Ebene (Photoshop) mit ihrem Transparenzmodus auf „Farbe“ (oder Sättigung oder Farbton) legen, werden alle Elemente darunter ihre Leuchtkraft offenbaren.

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

Nun, das Problem ist: Mit all den oben genannten Methoden werden Sie allen Elementen die "gleiche Leuchtkraft innerhalb des verwendeten RGB-Profils" geben, dh dasselbe Grau für das ausgewählte "Gerät", und das Schlimmste daran: Das Auge ist ein Gerät , und es gibt Unterschiede.

Sie können verschiedenen Menschen die gleichen Farben zeigen und sie werden nicht die gleiche "Ebenheit" wie andere finden.

Hinzu kommt, dass Sie diese Farben im ausgewählten Gerät als "gleiche Leuchtkraft" einstellen und nicht nur alle "geschätzt" werden, sobald Sie sie in einem anderen Gerät anzeigen, schlägt der Effekt fehl, da jedes Gerät hat seine eigene Fähigkeit, die roten, grünen oder blauen Elemente mit unterschiedlichen Intensitäten zu beleuchten, so dass Sie zB rote Elemente erhalten könnten.

Wenn Sie, wie oben vorgeschlagen, einen Übergang von einem Grau zu einer Farbe vornehmen, müssen Sie außerdem sicherstellen, dass das graue Element in jedem Kanal mindestens 1/255 Minimum hat (dh nicht länger grau), oder die Software wird das ursprüngliche Grau als betrachten 0-Hue, was Ihnen rötliche Mitteltöne gibt (weil eine Mischung zwischen 0-Hue und jeder anderen Farbe auf halbem Weg zu einem Rot ist)

Ich bin seit den 90er Jahren Experte in der Druckvorstufe und mein Rat lautet: Wenn Sie sich für die Mathematik entscheiden, sollten Sie die Mathematik für das Auge (visuelle Fähigkeiten) sowie die für das Gerät verwenden, das Sie zeigen werden diese Nummern an.

Viel Glück.