In den letzten Jahren hat sich die Technologie zur digitalen Bildbearbeitung rasant entwickelt und eine der auffälligsten Technologien ist das Seam Carving. Die Technologie wurde von Shai Avidan von Mitsubishi Electric Research Laboratories und Ariel Shamir vom Interdisciplinary Center entwickelt. Seam Carving skaliert Bilder nicht nur automatisch, es kann auch ganze Objekte entfernen oder einfügen, ohne den Bildinhalt zu verzerren.
Seam Carving eröffnet die Möglichkeit, Bilder so zu skalieren, dass sie bei der Anzeige auf verschiedenen Medien, wie etwa Mobiltelefonen oder Projektionsbildschirmen, verzerrt bleiben.
Bei der Schlitzgravur können die Schlitze vertikal oder horizontal sein. Eine vertikale Naht ist ein Pfad aus Pixeln von oben nach oben im Bild, während eine horizontale Naht ein Pfad aus Pixeln von links nach rechts ist. Der Energiewert jedes Pixels wird durch einen Vergleich mit benachbarten Pixeln berechnet.
Wenn ein Bild in einer Dimension (Höhe oder Breite) verkleinert wird, wählt der Algorithmus basierend darauf, wie viele Nähte entfernt werden müssen, welche Nähte entfernt werden sollen. Dieser Vorgang kann umgekehrt werden, indem eine Dimension des Bildes vergrößert wird, indem die Lücken mit niedriger Energie repliziert und ihre Pixel mit denen ihrer Nachbarn gemittelt werden.
Bei der Berechnung der Naht geht es darum, einen Pfad mit minimaler Energie von einem Ende des Bildes zum anderen zu finden. Dies kann durch verschiedene Algorithmen erreicht werden, beispielsweise den Dijkstra-Algorithmus, dynamische Programmierung, Greedy-Algorithmen oder Graph-Cutting-Techniken.
Dynamische Programmierung ist eine Programmiertechnik, die die Ergebnisse von Unterberechnungen speichert, um die Berechnung komplexerer Ergebnisse zu vereinfachen. Am Beispiel der Berechnung vertikaler Lücken berechnen wir für jedes Pixel in einer Zeile die Energie des aktuellen Pixels plus die Summe der Energien der drei möglichen Pixel darüber. Dabei lässt sich der Prozess der Energieberechnung problemlos parallelisieren.
Wenn der Algorithmus Lücken mit niedriger Energie löscht, kann er versehentlich Lücken mit hoher Energie erzeugen. Daher sind vom Benutzer bereitgestellte Informationen erforderlich, um den Fehler zu reduzieren.
Beim Seam Carving kann der Algorithmus manchmal Nähte entfernen, die das Bild unbeabsichtigt beeinträchtigen können. In diesem Fall besteht eine Lösung für dieses Problem darin, die „Energiedifferenz“ zu prüfen, um festzustellen, ob durch das Entfernen der Lücke die Energie erhöht werden könnte. Dabei wird der Vorgang des Lückenschließens simuliert und die dabei entstehende Energieänderung untersucht.
Die Seam-Carving-Technologie wurde unter einer nicht-exklusiven Lizenz an Adobe Systems vergeben und als inhaltsbasierte Zoom-Funktion in Photoshop CS4 implementiert. Diese Technik findet sich auch in anderen gängigen Computergrafikanwendungen wie GIMP und ImageMagick.
Zukünftige Verbesserungen beim Seam Carving könnten sich auf eine bessere Darstellung von Energiefunktionen, Videoanwendungen und schnellere GPU-Implementierungen konzentrieren. Interessanter ist, dass die Anwendung neuronaler deformierbarer Felder deren Ausweitung auf kontinuierliche Bereiche wie 3D-Szenen ermöglicht.
Obwohl Seam Carving bei einigen Erkennungsalgorithmen eine schlechte Leistung zeigt, ist es in Kombination mit anderen Methoden dennoch ein effizienteres Werkzeug zur Bildanpassung.
Die Entwicklung dieser Technologie ermöglicht uns ein neues visuelles Erlebnis und eine neue Methode der Bildverarbeitung, wodurch die Schaffung digitaler Kunst nicht länger durch traditionelle Methoden eingeschränkt wird. Werden wir in Zukunft Zeuge fortschrittlicherer Technologien, die die Welt, wie wir sie sehen, neu gestalten können?