Was ist eine gute Farbähnlichkeitsmetrik?

8

Ich habe einige Farben in RGB in [0,1] und möchte einen Weg finden, ihre Ähnlichkeit zu bewerten, wie sie von einem Menschen wahrgenommen wird.

Ich habe zwei Ideen, aber ich bin mir sicher, dass es auch andere Optionen gibt, bin mir aber nicht sicher, welche die beste ist oder ob es vielleicht keine beste gibt, sondern nur Kompromisse.

Meine erste Idee ist es, die RGB-Farben als XYZ-Punkte zu behandeln und ihren Abstand zu berechnen.

Eine andere Idee, die ich habe, ist, die RGB-Werte als Histogramm zu behandeln und ein Punktprodukt zu verwenden, um einen Ähnlichkeitswert zwischen ihnen zu erhalten, wobei ein größerer Wert besser ist.

Ich weiß jedoch, dass nicht alle Farbkanäle die gleiche wahrgenommene Helligkeit haben. Vielleicht sollte ich die Farbkanäle in beiden Fällen unterschiedlich gewichten?

Ich denke auch, dass ich möglicherweise eine sRGB-Korrektur für die Farbwerte durchführen müsste (z. B. sqrt für jeden Farbkanal).

Ich weiß auch, dass andere Farbräume existieren, also wäre vielleicht einer von ihnen besser darin, einen Ähnlichkeitswert zu geben.

Eine weitere Herausforderung kann darin bestehen, dass unterschiedliche Displays dieselben Farbwerte unterschiedlich anzeigen. Ich bin mir nicht sicher, ob dies in diesem Fall relevant ist.

Kann jemand Hilfe / Anleitung geben?

Alan Wolfe
quelle
4
Haben Sie einen Blick auf genommen dies ? RGB ist kein großartiger Farbraum für Vergleiche mit der menschlichen Wahrnehmung.
Asse
Gute Infos danke! Ich habe mir Cielab angesehen, aber dieser Artikel sagt, dass das nicht das Beste ist. Ich arbeite leider mit RGB-Quelldaten, muss also herausfinden, wie man von RGB zu etwas Besserem konvertiert, aber die Herausforderung scheint zu sein, dass RGB geräteabhängig ist, während zB Cielab dies nicht ist. Glücklicherweise ist eine geringere Annäherung für meine Anforderungen ausreichend, wenn die Geräteunabhängigkeit mit RGB-Quelldaten nicht wirklich realisierbar ist.
Alan Wolfe
Schauen Sie sich die Website von Bruce Lindbloom an, insbesondere die verschiedenen DeltaE-Metriken: brucelindbloom.com
David Kuri
Es gibt ein ganzes Python-Paket für die Farbwissenschaft, das einige Transformationen enthält: colour-science.org .
KAE

Antworten:

3

Ich habe einige Farben in RGB in [0,1] und möchte einen Weg finden, ihre Ähnlichkeit zu bewerten, wie sie von einem Menschen wahrgenommen wird.

Dies ist ein riesiges Thema, das lose unter dem Banner von Farbmodellen zu finden ist . Warum es nicht unbedingt eine einfachere Formation ist, liegt an der psychophysischen Natur der Farbe, dass Farbe nicht jenseits des menschlichen Organismus existiert.

Meine erste Idee ist es, die RGB-Farben als XYZ-Punkte zu behandeln und ihren Abstand zu berechnen.

Eine andere Idee, die ich habe, ist, die RGB-Werte als Histogramm zu behandeln und ein Punktprodukt zu verwenden, um einen Ähnlichkeitswert zwischen ihnen zu erhalten, wobei ein größerer Wert besser ist.

Ich weiß jedoch, dass nicht alle Farbkanäle die gleiche wahrgenommene Helligkeit haben. Vielleicht sollte ich die Farbkanäle in beiden Fällen unterschiedlich gewichten?

Der beste Rat ist, ähnlich wie bei der Kryptografie, nicht selbst zu rollen. Sie werden wahrscheinlich zu einem suboptimalen System gelangen, das im besten Fall Wände trifft, die bereits von anderen Forschern auf diesem Gebiet getroffen wurden. Wenn Sie Ihre Arbeit auf vorhandene Modelle und Forschungsergebnisse stützen, werden Sie möglicherweise feststellen, dass diese für Ihre Anforderungen genauer sind [1].

Man könnte auf die historischen Entwicklungen rund um CAMs hinweisen, aber es ist hier einfacher vorzuschlagen, dass Sie das IPT-Farbcodierungsmodell und sein zylindrisches Äquivalent untersuchen, das Farbigkeit und Farbton als Winkel modelliert. Die Entwicklungen im IPT-Modell überwinden die meisten Probleme des früheren Lab-Modells und vereinfachen einige der Arbeiten in CIECAM02.

Eine weitere Herausforderung kann darin bestehen, dass unterschiedliche Displays dieselben Farbwerte unterschiedlich anzeigen. Ich bin mir nicht sicher, ob dies in diesem Fall relevant ist.

IPT und jeder RGB-Farbraum sind in der CIE-Forschung von 1931 verankert. Daher werden diese Probleme auf einer niedrigeren Ebene gelöst.

[1] Diese erweiterte Antwort ist auf den folgenden Kommentar von Herrn Wolfe zurückzuführen, um zu erklären, warum das Rollen Ihrer eigenen Lösung möglicherweise ein nicht optimaler Ansatz ist.

troy_s
quelle
3
Es ist lächerlich, Leute davon abzuhalten, mit Grafiken zu experimentieren und sie mit handgefertigten Krypto-Algorithmen gleichzusetzen.
Alan Wolfe
@AlanWolfe Angesichts der Tatsache, dass es einige extrem brillante Doktoranden gibt, die bereits unzählige Stunden und Mühe damit verbracht haben, die Probleme in der ursprünglichen Frage zu lösen, finde ich Ihren lächerlichen Kontext lächerlich. Um einen nicht davon abzuhalten, seine Stiefel zu füllen und zu versuchen, das Rad neu zu erfinden.
troy_s
Sie sollten die einfachen Hacks hören, die von aktiven Grafikforschern empfohlen werden. Wie "Punktprodukt RGB, es funktioniert wirklich erstaunlich gut" von Peter Shirley.
Alan Wolfe
2
Ich bin weitergegangen, aber es gibt eine Anwendung des Wellenfunktionskollapses für die Erstellung von prozeduralen Bildern und Inhalten. Es funktioniert teilweise durch exakt passende Pixel, funktioniert also am besten mit Pixelkunst. Ich wollte sehen, dass es in der Lage ist, ein weicheres Matching für realistischere Bilder oder für weniger strenge prozedurale Inhaltsregeln durchzuführen. Schauen Sie sich diesen Link für die grundlegende Sache: github.com/mxgmn/WaveFunctionCollapse
Alan Wolfe
2
Es ist nicht meine Arbeit, aber ich habe versucht, sie zu erweitern. Ich stimme vollkommen zu, es ist cooles Zeug! Off Topic, aber hier ist meine unabhängige Arbeit, hehe. blog.demofox.org/2016/02/22/…
Alan Wolfe
4

Wenn eine komplexe Metrik akzeptabel ist, würde ich vorschlagen, den hier beschriebenen wahrnehmungsbasierten Ansatz zu betrachten . Die Metrik dient dazu, die Wahrnehmungsdifferenz zweier Bilder zu ermitteln. Dafür gibt es zwei Haupttests: Luminanzbasiert und Farbbasiertest. Zunächst kann die Frage beantwortet werden, wie wichtig die Änderung der Luminanz ist, indem ein ungleichmäßiger Schwellenfaktor geschätzt wird, der auf der Empfindlichkeit gegenüber Kontraständerungen in Abhängigkeit von den räumlichen Frequenzen des Bildes basiert. Der zweite basiert auf dem euklidischen Abstand im CIE LAB-Farbraum, ist jedoch leicht modifiziert, um den Farbunterschied weniger wichtig zu machen, wenn die Luminanz im mesopischen und skotopischen Bereich liegt. Eine Liste der Artikel zu dieser Metrik finden Sie hier .

Reinsteam
quelle
3
Willkommen bei Computer Graphics SE! Im Allgemeinen wird von SE-Antworten nur auf Links dringend abgeraten, da sie möglicherweise unbrauchbar werden, falls diese Links jemals ausfallen sollten. Bitte fügen Sie eine kurze Zusammenfassung ihres Inhalts bei, damit die Leute immer noch herausfinden können, was genau Sie tatsächlich vorschlagen, ohne sich auf die Links verlassen zu müssen.
Martin Ender