Frage

Ich habe ein paar Bilder gesehen, wo sie im Allgemeinen macht ein Gesicht aus zahlreichen kleineren Bildern.

Zum Beispiel, sagen sie Kachel 100 Bilder in 10x10 Raster, und irgendwie sie variieren Farbton / sat / col der kleineren Bilder, so dass, wenn die Meldung Big Picture , sehen Sie ein anderes Bild.

Die Frage läuft darauf hinaus, - sagen Sie ein Bild haben. Welche Art von Algorithmus würden Sie zu diesem Bild anwenden, so dass der durchschnittliche RGB-Wert des Bildes ist, die Sie definiert haben?

War es hilfreich?

Lösung

  1. Berechnen der Farbton / sat / Wert jeder Fliese (HSV verwenden, da hier kleine Unterschiede mehr „natürlich“ erscheinen für das menschliche Auge als im RGB-Raum)
  2. Berechnen Sie jetzt die gleichen Werte für jede n * n Kachel Ihres großen Bildes
  3. Finden Sie die Fliesen mit den nächsten HSV-Werte (mindestens sqrt((h1-h2)^2 - (s1-s2)^2 - (v1-v2)^)) und diese Fliese n * n in das Ergebnis verkleinert stempeln.

Um den HSV für eine Kachel zu finden, sollte es genug sein, um alle RGB-Werte zu summieren und dann durch die Anzahl der Pixel teilen und dass die endgültigen RGB-Tripel in HSV umwandeln. Aber um zu speichern, schlage ich vor, dass Sie versuchen, dass beide Versionen.

Siehe des Wikipedia-Artikel für RGB <->. HSV-Conversions

, um den Algorithmus zu suchen, Sie jede Kachel in einen m aufteilen m und berechnen Sie den durchschnittlichen HSV für jedes Rasterelement. Dann, wenn Sie nach einem Spiel suchen, teilen Sie das große Bild in wie üblich, sondern auch m berechnen m HSV-Werte. Wählen Sie, welche Fliese passt die meisten dieser m * m am besten. Dadurch kann der Algorithmus Fliesen wählen, die die gleiche Struktur wie das große Bild haben.

Für die besondere Note, versuchen Sie einen Gigapixel Bild erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top