Farben sortieren
Der Schweizer Ursus Wehrli ist für sein Projekt bekannt, unordentliche abstrakte Kunstwerke aufzuräumen. Ich möchte noch weiter gehen und nicht nur die verschiedenen Formen in eine Art von Ordnung bringen, sondern alle Pixel nach ihrer Farbe sortieren. Das ist leichter gesagt als getan.
Auf diese Idee kam ich, während ich mich vor ein paar Jahren damit beschäftigte, den besonderen Look ausgewählter Bilder zu analysieren und diesen mit Gradationskurven und LUTs nachzubauen. Meine Software visualisierte die Analyse in Farbkreisen (siehe oben), nur gelang es mir dabei nicht, die dominierenden Farben in einem einzigen Farbkreis darzustellen, wenn ich neben den Farbtönen und der Sättigung auch noch nach der Helligkeit differenzieren wollte.
Meine Leitidee war und ist, die Pixel eines Bildes so neu anzuordnen, dass sich zwei Pixel um so näher sind, je ähnlicher ihre Farbe ist. Pixel gleicher Farbe liegen nebeneinander, und im Ergebnis nehmen einzelne Farben eine um so größere Fläche ein, je öfter sie im Bild vorkommen.
Was so einfach definiert ist, lässt sich leider nicht ebenso einfach verwirklichen, und die Ursache liegt in der Natur der Farben. Im RGB-Farbmodell sind Farben durch die Helligkeit der Grundfarben Rot, Grün und Blau beschrieben. Das HSL-Modell hat die Komponenten Farbton, Sättigung und Luminanz, und im L*a*b-Modell gibt es neben der Luminanz zwei Farbkomponenten – insgesamt sind es stets drei Koordinaten, die eine Farbe eindeutig beschreiben. Die Visualisierung von drei Koordinaten führt aber naturgemäß zu dreidimensionalen Objekten wie beispielsweise einer Farbkugel, auf deren Äquator die gesättigten bunten Farben liegen; am Nordpol findet man Weiß, am Südpol Schwarz, und zur Erdachse hin nimmt die Sättigung ab, bis im Mittelpunkt der Kugel ein mittleres Grau erreicht ist.
Mein Projekt zielt dagegen darauf ab, die Farben auf einer Fläche zu sortieren. Zwar ist schon jedes gegenständliche Bild die Abbildung einer dreidimensionalen Welt in zwei Dimensionen, aber hier sollen ja nicht nur die Oberflächen, sondern das gesamte Volumen der Farbkugel zu einer Fläche ausgewalzt werden. Dafür existiert kein einfaches Verfahren.
Darin, dass es dennoch eine Lösung geben müsste, bestärkte mich der Besuch der Caspar-David-Friedrich-Ausstellung in der Hamburger Kunsthalle (ich hatte darüber berichtet). Dort wurden neben den Originalen des 1840 gestorbenen Greifswalders Neuinterpretationen seiner Themen durch zeitgenössische Künstler gezeigt. So hatte Ólafur Elíasson in einem seiner Colour experiments die Farben von Friedrichs Das Eismeer in einem Kreis angeordnet. Sein aufwendiges Verfahren nahm in diesem Fall anderthalb Jahre in Anspruch, obwohl Elíasson mit Assistenten arbeitete. So etwas schwebt mir vor, nur suche ich nach einem Algorithmus, um dieses Sortieren der Farben zu automatisieren – schließlich habe ich keine Assistenten und will auch nicht mehrere Monate auf Resultate warten. Nun findet man zwar zu einem gegebenen Bild immer irgendeine darauf abgestimmte Lösung; die Herausforderung besteht jedoch darin, eine allgemeingültige Vorgehensweise zu entwickeln, die mit jedem Bild funktioniert.
Meine beiden ersten Ideen hierzu musste ich nach gründlichem Nachdenken als offensichtlich untauglich verwerfen. Ein drittes Konzept habe ich tatsächlich implementiert, nur um festzustellen, dass es ebenfalls nicht das Gewünschte liefert. Momentan bin ich dabei, die letzten Fehler in einem vierten Ansatz zu eliminieren, und ich habe auch schon recht konkrete Vorstellungen, wie ein fünfter Algorithmus aussehen könnte. Sobald ich ein taugliches Verfahren gefunden habe, werde ich weiter darüber berichten.
Im DOCMAshop finden Sie alle Infos zum aktuellen Heft: Das ausführliche Inhaltsverzeichnis sowie einige Seiten als Kostprobe.
Ist vielleicht nicht ganz die Lösung, aber geht in die Richtung:
https://mk.bcgsc.ca/color-summarizer/?analyze
Es können bis zu 20 Farben nach ihrem jeweiligen Anteil in einem Bild mit ihrem RGB-Wert und ihrem Prozentanteil ausgegeben werden.
Wie soll das den gehen, ich habe zumindest im rgb Modell 3 Koordinaten (analog zu xyz) kann somit einen 3 dimensionalen Raum aufspannen und es kommt ja noch eine 4 Größe hinzu die Anzahl der Pixel mit derselben Farbe. Als ein Ansatz könnte man etwas machen, analog zum 2D Bild eines Farbraums aber dann wäre da noch immer die Anzahl der Pixel als „Höhe“. Gnuplot bietet für so etwas schöne Darstellungen