Aufmacher Artikel

Black & White

Morphen in der Praxis

01.10.2003 Um Menschen in Tiere zu verwandeln, brauchen Zauberer einen kleinen Stab und einen guten Spruch. Unter Linux gehts noch einfacher: Dank PanoTools, Xmorph und XMRM darf man die Verwandlung sogar mitverfolgen.

Musikvideos und Horrorfilme machen es vor: In der Verwandlung verändert sich des Menschen Antlitz. Dabei werden die Bilder nicht nur einfach übergeblendet, sondern gleichzeitig auch verformt. So entsteht der Eindruck einer Veränderung der Gestalt (griechisch morphe). An den Programmen PanoTools, xmorph und xmrm zeigt dieser Artikel, wie einfach Sie Morph-Sequenzen erzeugen und – dank der Videoschnittprogramme Cinelerra und MainActor – in eigene Filme einbauen.

Vorbereitungen

Das Ausgangsmaterial bilden stets zwei Fotos. Ideal sind Portraits, aber auch andere Kombinationen sind möglich. Die genannten Programme setzen Ihrer Phantasie keine Grenzen – der Verwandlung eines Hundes in einen Schuhkarton steht nichts mehr im Weg.

Als Beispiel dienen die Aufnahmen zweier Gesichter: Für ein optimales Ergebnis sollten die Personen auf beiden Fotos in die gleiche Richtung schauen und die Bilder sowohl in ihrer Helligkeit als auch in ihren Abmessungen übereinstimmen. Um die Fotos anzupassen, empfiehlt sich die Bildbearbeitung Gimp [4]. Dort ändern Sie die Größe nachträglich über Bild/Skalieren....

PanoTools

Die PanoTools von Helmut Dersch wurden schon im letzten Heft vorgestellt. Eigentlich dienen sie der Erstellung von Panoramafotografien – aber etwas versteckt finden Sie dort eine leistungsfähige Funktion zum Morphen.

Die PanoTools liegen unter [1] zum Download (hinter dem Link Linux Version Version 2.6b1 (no plugin)). Entpacken Sie das Archiv in ein Verzeichnis Ihrer Wahl. Aus dem dabei erstellten Unterverzeichnis PTLinux kopieren Sie (als Root) die Datei libpano12.so in das Verzeichnis /usr/lib. Überprüfen Sie, ob die Programme im Unterverzeichnis Helpers ausführbar sind.

Erstellen Sie ein neues Projektverzeichnis, in dem Sie beide Ausgangsfotos ablegen. Öffnen Sie ein Terminal-Fenster und wechseln Sie in das Verzeichnis PTLinux – eventuell müssen Sie den Pfadnamen noch an Ihre Bedingungen anpassen. Starten Sie die Hilfsanwendung PTPicker durch Eingabe von

java -jar ptpicker.jar

Wenn nichts passiert, fehlt Ihrem System eine installierte Java-Laufzeitumgebung (JRE, Java Runtime Environment). Die brauchen alle in Java geschriebenen Programme; sie liegt den meisten Linux-Distributionen bei.

Abbildung 1

Abbildung 1: PTPicker aus den PanoTools nach dem Start

Unter PTPicker wählen Sie File/New. Die meisten der nun abgefragten Werte können Sie ignorieren. Stellen Sie unter Focal Length die Brennweite der Kamera und unter Image Count den Wert 2 ein. Klicken Sie auf OK und speichern Sie das neue Projekt in Ihrem Projektverzeichnis. Vergeben Sie dabei explizit die Dateiendung .txt.

Abbildung 2

Abbildung 2: Dies sind die Standardeinstellungen für die Erzeugung einer Morph-Sequenz unter PTPicker

Um die Bilder zu laden, wählen Sie unter Left Image/Image0 das erste Bild und unter Right Image/Image1 das zweite Bild aus. Die dabei erscheinende Warnmeldung können Sie ignorieren.

Abbildung 3

Abbildung 3: Das Endbild der Sequenz wird PTPicker über das entsprechende Menü bekannt gemacht

Im nächsten Schritt machen Sie dem Morpher klar, welche Punkte des Ausgangsbildes welchen Punkten des Zielbildes entsprechen. Dazu setzen Sie Kontrollpunkte: Suchen Sie markante Stellen des Gesichtes im linken Bild, z. B. die Nase. Fahren Sie mit dem Mauszeiger an diese Position – die eingebaute Lupenfunktion hilft Ihnen dabei. Sobald Sie mit der Maustaste klicken, erscheint auch im rechten Bild ein Kontrollpunkt. Schieben Sie ihn dort ebenfalls auf die Nasenspitze. Wiederholen Sie diesen Vorgang mit weiteren markanten Stellen, wie Ohren, Augen- und Mundwinkeln oder Grübchen. Je mehr Punkte sie setzen, desto hochwertiger wird das Ergebnis. PTPicker hat keine Rückgängig-Funktion: Sichern Sie daher regelmäßig Ihre Arbeit.

Abbildung 4

Abbildung 4: Hier wurden bereits alle Kontrollpunkte vergeben. Rot markiert ist das aktuell selektierte Knotenpaar

Vergrößern in PTPicker 

In PTPicker können Sie die Ansicht der Bilder vergrößern (View/Zoom In) und verkleinern (View/Zoom Out). Leider zeichnet PTPicker die Laufleisten dabei nicht immer korrekt neu. Das behebt ein Maximieren des Fensters über das Systemmenü.

Um drei Ecken

Haben Sie alle Punkte gesetzt, müssen Sie noch Dreiecke aufspannen: Dazu wählen Sie Edit/Triangulate. Während einer kurzen Rechenzeit ist das Programm nicht ansprechbar. Klicken Sie danach einen Punkt an, erhalten Sie das Ergebnis der Berechnung. Alternativ weisen sie die Rechtecke manuell zu, indem Sie mit gedrückter [Umschalt]-Taste jeweils drei Punkte anklicken und Edit/Set Triangle aufrufen. Über Edit/Remove Triangle lässt sich ein Dreieck wieder entfernen. Da Dreiecke nur im linken Bild erstellt werden können, müssen sie noch per Edit/Copy Triangles auf das andere Foto übertragen werden.

Abbildung 5

Abbildung 5: Die Dreiecke hat PTPicker automatisch erzeugt und auf das rechte Bild übertragen

Das Ergebnis sollte Abbildung 5 ähneln. Alle Bildteile, die unter der grauen Fläche der Dreiecke verschwinden, tauchen im Ergebnis wieder auf. Der Inhalt jedes Dreiecks wird dabei schrittweise so verzerrt und verschoben, dass er am Ende dem korrespondierenden Dreieck im Zielbild entspricht. Entscheidend ist, dass keine überlappenden Linien oder Dreiecke entstehen: In solchen Fällen erzeugt PTPicker eine Folge von schwarzen Bildern.

Stimmen alle Ihre Dreiecke, speichern Sie die Projektdatei ab. Wie erwähnt, ist PTPicker für Panoramen ausgelegt. Daher müssen Sie die Projektdatei von Hand anpassen. Bearbeiten Sie sie dazu mit einem Texteditor ihrer Wahl. Im Beispiel sehen die ersten drei Zeilen folgendermaßen aus:

p f2 w8460 h4230 v360 u10 n"JPEG"
i f0 w1280 h960 y0 p0 r0 v54.4322 n"p8120027.jpg" X0 Y0 Z0
i f0 w1280 h960 y180 p0 r0 v=0 n"p8120033.jpg" X1 Y0 Z0

Die beiden Zeilen, die mit einem i anfangen, enthalten Informationen zu den beiden Ausgangsfotos. Deren Dateinamen stehen in Anführungszeichen hinter dem n. Die erste Zeile enthält Angaben, auf welche Weise das Ergebnis erzeugt werden soll. Setzen Sie zunächst das Projektionsformat von f2 auf f0 (geradlinig). Die nächsten beiden Werte repräsentieren die Abmessungen der generierten Bilder in Pixeln: Width (Breite) und Höhe. In der Regel sollten Sie hier die entsprechenden Werte der Ausgangsbilder übernehmen. Die Zahl hinter v bezieht sich auf den horizontalen Bildwinkel (field of view), den später sichtbaren Bereich. Je kleiner der Wert, desto größer erscheint der markierte Bereich im Ergebnis. Für die ersten Gehversuche sollten Sie hier 5 Grad wählen und diese auch beim Bildwinkel der beiden Ausgangsbilder in der zweiten und dritten Zeile eintragen.

Das Ausgabeformat steht in Anführungszeichen hinter n. Neben JPEG sind PNG, TIFF und PICT möglich. Die genaue Bildfolge legen Sie mit den drei Parametern a, b und c fest: Vor dem Ausgabeformat eingefügt, steuern sie die Schrittweite der Überblendung. Für zwanzig Bildschritte sind folgende Werte notwendig: a0.0 b1.0 c0.05. Der Morpher beginnt mit dem vollständigen, ersten Bild (a0.0) und überblendet dieses dann solange um 5%, bis das zweite Bild vollständig erscheint (b1.0). Nach 20 solchen 5%-Schritten ist die Überblendung vollständig (20@L: *5%=100%).

Stellen Sie zum Abschluss noch in den letzten beiden Zeilen die Zahlen hinter y, p und r auf 0.

Das Ergebnis sieht für die Portraitfotos dann folgendermaßen aus:

p f0 w1280 h960 v5 a0.0 b1.0 c0.05 u10 n"JPEG"
i f0 w1280 h960 y0 p0 r0 v5 n"p8120027.jpg" X0 Y0 Z0
i f0 w1280 h960 y0 p0 r0 v5 n"p8120033.jpg" X1 Y0 Z0

Speichern Sie Ihre Änderungen und wählen Sie in PTPicker File/Revert to Saved, gefolgt von Project/Morph. Im Terminal-Fenster verlangt das Programm die Eingabe des Zielverzeichnisses und eines Präfixes, das jeder Datei voran gestellt wird, wie z. B. meinpfad/portrait. Nach dem Drücken der Eingabetaste wird die Sequenz generiert.

xmorph

Etwas einfacher zu bedienen ist xmorph [2], das SuSE Linux beiliegt. Für das Programm gibt es verschiedene Benutzeroberflächen, es kämpft aber unter allen Varianten mit massiven Absturzproblemen. Als Ausgangsmaterial verlangt es nach zwei Bildern mit identischen Maßen im Targa-Format (TGA). Nach dem Start von xmorph laden Sie über File/Open source image... das Startbild und über File/Open destination image das Zielbild in die beiden Teilfenster. Die Bildlaufleisten lassen sich etwas untypisch mit linker und rechter Maustaste bedienen.

Abbildung 6

Abbildung 6: Die klassische Oberfläche nach dem Start von xmorph

Das Arbeitsprinzip ähnelt den PanoTools, nur werden hier statt Dreiecken Rechtecke in einem Gitter verwendet. Unter Properties können Sie für jedes Bild einstellen, welches Gitter angezeigt werden soll: rot für das Ausgangsbild (source) und grün für das Zielbild (destination). Die Knotenpunkte können Sie per Drag & Drop verschieben.

Um eine neue horizontale Gitterlinie an der Mausposition einzufügen, drücken Sie die rechte Maustaste, für eine vertikale die mittlere Taste. Sie können die Gitter wiederverwenden: Speichern Sie sie separat über File/Save source bzw. destination mesh.

Abbildung 7

Abbildung 7: Bei großen Bildern reichen die Maschen nicht mehr aus. Soll mehr als eine Linie hinzugefügt werden, stürzt xmorph ab

Liegen alle Gitterpunkte richtig, wählen Sie unter Morph Sequence/Set sequence name... das Präfix für alle Ausgabedateien und unter Morph Sequence/Set sequence number of frames... die Anzahl der zu erzeugenden Bilder. Per Morph Sequence/Warp legt xmorph die Bildersequenz im aktuellen Verzeichnis ab.

XMRM

Der Dritte im Bunde ist XMRM. Der Morpher liegt – zusammen mit einer Online-Dokumentation – unter [3]. Wählen Sie das static-Archiv und entpacken Sie es in ein Verzeichnis Ihrer Wahl. Sie starten XMRM, indem Sie auf das Programmsymbol im Dateimanager klicken. Statt auf Flächen setzt XMRM auf Vektoren: Jeder Punkt in Start- und Zielbild wird in Vektorkoordinaten aufgelöst. Aus den Differenzvektoren berechnet XMRM die nötigen Bildverformungen. Das Programm erlaubt die großzügige Beeinflussung von Berechnungsparametern und -Art.

Abbildung 8

Abbildung 8: Das Hauptfenster von XMRM. Die Schalter und Kurven steuern das gewählte Morphing-Verfahren

Abbildung 9

Abbildung 9: Nach dem Laden der Bilder öffnen sich mehrere Fenster

Erstellen Sie zunächst ein neues Verzeichnis, in das Sie die beiden Ausgangsbilder kopieren. XMRM erwartet diese im TIFF-Format. Laden Sie über File/Load Source... das Ursprungsbild und über File/Load Destination... das Zielbild. Im neuen Fenster sehen Sie eine Werkzeugpalette: Wählen Sie dort Set Vector. Fahren Sie nun mit der Maus auf das Ursprungsbild. Der Mauszeiger verwandelt sich in einen grünen Pfeil. Suchen Sie sich ein Objekt des Bildes aus – bei Portraits z. B. ein Auge. Fahren Sie dann auf dessen Rand, halten Sie die linke Maustaste gedrückt und ziehen Sie einen Pfeil auf. Sobald Sie die Maustaste loslassen, bleibt der Pfeil liegen. Für ein optimales Ergebnis versehen Sie jedes Bildobjekt mit einer Kette aus solchen Pfeilen. Beim Portrait werden die Augen, der Mund und der gesamte Kopf umrandet (Abbildung 10).

Damit Sie nicht immer neu ansetzen müssen, können Sie mit Set Line gleich eine ganze Kette von Vektoren ziehen. Die rechte Maustaste bricht den Vorgang ab. Je mehr Vektoren sie vergeben, desto besser das Ergebnis.

Abbildung 10

Abbildung 10: Die Bilder mit allen zugewiesenen Vektoren. XMRM sollte man nur für kleine Bildern verwenden: Da sich das Fenster kaum vergrößern lässt, wird das Setzen der Vektoren sonst zum Geduldsspiel

Sind alle Vektoren gesetzt, fügen Sie die korrespondierenden Vektoren im Zielbild ein. Das Vorgehensweise ist geich, nur der jeweils korrespondierende Pfeil im linken Bild ist grün markiert. Ein Pfeil auf der Oberlippe des Mundes sollte somit auch im Zielbild auf der Oberlippe liegen. Die Anzahl der Pfeile muss in beiden Bildern exakt übereinstimmen. Fehleingaben korrigieren Sie mit Edit Vector (verschieben) und Delete Vector (löschen).

Speichern Sie die Einstellungen über File/Save Vectors as.... Im nächsten Schritt wählen Sie das Morph-Verfahren unter Wavelet Type aus. Eine Erläuterung der einzelnen Verfahren finden Sie auf der XMRM-Homepage. Für den Anfang genügt die Voreinstellung.

Nun geht es an die Animation: Im Bereich Calculation Control legen Sie die Anzahl der Bilder fest, die berechnet werden sollen. Sobald Sie auf Calculate klicken, berechnet XMRM die Animation. Unter Animation Control bekommen Sie dann die Vorschau – entweder als Film (Animation Sequenz) oder in der Einzelbildbetrachtung (Frame Preview). Ist alles zu Ihrer Zufriedenheit, speichern Sie die berechneten Bilder über Choose Filename im TIFF-Format.

Als Film

Alle Programme geben eine Folge von Einzelbildern aus. Um einen Film daraus zu machen, sei es für eine Video-CD oder eine DVD, brauchen Sie ein zusätzliches Videoschnittprogramm. Unter Linux haben Sie derzeit die Wahl zwischen dem kommerziellen MainActor [5] und dem freien Cinelerra [6]. Installation und Bedienung beider Programme wurden bereits in Ausgabe 08/03 besprochen – hier geht es nur ums Einbinden der Bilder.

Unter MainActor 3.7, in SuSE Linux 8.2 Professional enthalten, klicken Sie auf das zweite Symbol von links in der untersten Symbolleiste (Bilder einfügen...). Im Dialog wählen Sie Bilder hinzufügen und markieren die erste Datei der Bildsequenz. Per Open lädt MainActor automatisch auch die restlichen Bilder. Nach einem Klick auf Übernehmen lässt sich die Sequenz wie ein normaler Film einfügen und bearbeiten.

Abbildung 11

Abbildung 11: MainActor 3.7 lädt die Morph-Sequenz über dieses Fenster

In der Version 5 von MainActor klicken Sie im Browser auf den Knopf links unten (Medienclips hinzufügen). Stellen Sie sicher, dass Nummerierte Dateisequenzen aktiviert ist. Im Auswahlfenster erscheint die Sequenz mit eckigen Klammern, z. B. name[0000,0025].tga. Nach der Auswahl und einem Klick auf OK wird sie wie dem Projekt ein normaler Film hinzugefügt.

Abbildung 12

Abbildung 12: MainActor 5 erkennt eine Bildersequenz automatisch

Unter Cinelerra wählen Sie File/Load files.... Im Dialogfenster markieren Sie bei gedrückter [Strg]-Taste alle Bilder der Sequenz. Wählen Sie Replace current project and concatenate tracks unter Insertion strategy. Nach einem Klick auf OK finden Sie ein neues Projekt mit der Sequenz als Film vor.

Fazit

Morphen macht Spaß. Haben Sie sich erst mal an die Programmbedienung gewöhnt, müssen schnell Bekannte und Verwandte für Verwandlungzaubereien herhalten. Und mit Kinderfotos aus dem Familienalbum lassen Sie alle "ganz schnell" alt aussehen.

Infos

[1] http://www.all-in-one.ee/~dersch/: Homepage der PanoTools

[2] http://www.ibiblio.org/pub/Linux/apps/graphics/morph: Sammlung verschiedener Morph-Programme

[3] http://www.cg.tuwien.ac.at/research/ca/mrm/xmrm.html: XMRM-Homepage

[4] http://www.gimp.org/: Gimp-Homepage

[5] http://www.mainconcept.de: MainActor-Homepage

[6] http://heroinewarrior.com: Cinelerra Homepage

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare