Seam Carving ich huldige dir

Seam Carving ist eine Technologie um Bilder intelligent in ihrer Größe zu verändern. Dabei werden nicht einfach benachbarte Pixel zu einem gemeinsamen Farbton vereinigt. Mal angenommen man möchte die Breite des Bildes verkleinern; dann sucht sich der Algorithmus entlang einer zusammenhängenden vertikalen Linie eine Pixelfolge die man nicht unbedingt vermissen würde. Ich habe das jetzt natürlich furchtbar einfach ausgedrückt, aber so etwas schaut man sich auch besser einmal selber an! Das Geile dabei ist auf jedenfall daß wichtige Bildelemente als unantastbar markiert werden können, falls der Algorithmus es nicht schon von selbst erkennen sollte.

Als Beispiel habe ich mir mal den Broadway Tower aus der Wikimedia Commons herausgesucht:

Broadway Tower
Das Bild steht unter dieser Lizenz.

Ich erkenne hier vier wichtige Elemente: Die Wolken, der Tower, die Frau und der Boden. Ich schränke die Breite einmal auf 50% ein, links die Version mittels bikubischer Berechnung und rechts mittels Seam Carving:

seam carving vergleich

Wie man sieht ist der Algorithmus schon enorm gut. Da der Tower allerdings nun eine Basis hat, die sich nach unten hin verjüngt habe ich kurz Hand angelegt. Dazu einfach in GIMP ein zweites, transparentes Layer erstellt und in diesem die Basis (mit einer beliebigen Farbe) eingepinselt. Wer will kann noch eine zweite Farbe für unwichtige Stellen verwenden. Man kann im Dialog nämlich anwählen welche Teile des Bildes verworfen und welche geschützt werden sollen. Das Ergebnis nach 30 s Handarbeit sah dann so aus:

seam carving korrigiert

Ich bin einfach nur beeindruckt! Das hat für mich echt Zukunftspotential. Ich stelle mir vor, daß Resize-Dialoge von Grafikprogrammen in Zukunft dann eine kombinierte Bikubische/Seam Carving Größenänderung anbieten, vielleicht mit einem prozentualen Schieberegler und halt der Discard/Preserve-Funktion in Kombination. Einfach nur ein geiles Stück Algorithmus! Das ganze funktioniert natürlich auch bei vertikalen Größenänderungen.

  • Starkiller verwies mich auf eine Online-Demo. Datenschutzmäßg bedenklich da man das zu bearbeitende Bild hochladen muss, aber zur Probe gut und gerne - zumal man hier live zugucken kann welche Pixelbreite Linien entfernt werden.

  • _Liquid Resize_ als Standalone Software für Linux und Windows kommt da schon besser daher.

  • Das Beste zum Schluß, denn ich schrieb eben, daß ich das Ganze mit GIMP gemacht habe. Dafür gibt es nämlich auch ein Plugin names Liquid Rescale.

Hier noch ein Demonstrationsvideo, was die Technik sehr anschaulich zeigt. Sehr hübsch finde ich auch das Feature, daß man Menschen aus Personengruppen tilgen kann:

Freut mich richtig, das so etwas mittlerweile existent ist. Dann weiß ich ja was ich das nächste mal probiere, wenn mal wieder nicht alle Details meiner 4:3 Bilder in ein 806x190 Pixel großes Titelbild passen. :mrgreen: