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?