XMRM : Morphen mit Linux

ArticleCategory:

Graphics

AuthorImage:

[Photo de l'auteur]

TranslationInfo:

Original in fr Yves Ceccone

fr to en Clark Freifeld

en to de Katja Socher

AboutTheAuthor:

Von Beruf Fotograf, wechselte er zur Computergraphik und hat die Maus seitdem nicht mehr losgelassen.

Abstract:

XMRM (Multi Resolution Morphing for X) ist ein Morphingprogramm, das es erlaubt, ein mpeg Video aus zwei Bildern zu erzeugen, wobei ein Bild schrittweise (durch vielw Parameter gesteuert) in ein anderes umgeformt wird. Dieser Artikel beschreibt die prinzipiellen Funktionen des Programms (dank an die sehr vollständige Dokumentation in Englisch, die auf der XMRM Seite vorhanden ist) sowie ein Beispiel einer kleinen Animation, die zeigt, wie man leicht interessante Ergebnisse erhalten kann.

ArticleIllustration:

[illustration]

ArticleBody:

Installation

Die hier benutzte Version ist von einem RPM (auf RedHat 6.0), aber man kann auch die Quelldistribution unter http://www.cg.tuwien.ac.at/research/ca/mrm/xmrm.html. finden.
Genauso wie das Programm selbst, muß man, um die Animation als eine mpeg Datei abspeichern zu können, "tifftopnm" und "ppmtoyouvsplit" installieren, die sich beide im Paket "netpbm01mar94" befinden, das man hier finden kann: ftp://ftp.x.org/contrib/utilities/ sowie "mpeg" hier: ftp://ftp.x.org/contrib/utilities/

Die Idee

Die Art, wie XMRM arbeitet, ist wie folgt: man lädt zwei Bilder, eines wird "source" (Quelle) und das andere "destination" (Ziel) genannt. Dann zieht man durch Benutzen von Vektoren an jedem Bild, wobei jeder Punkt in der Zeile des einen Bildes mit einem Punkt im anderen übereinstimmt. Dieses Ziehen bestimmt die Kontur des Morphens. Nachdem man den Typ des Morphens ausgewählt hat sowie die Qualität und die Anzahl der Schrite (frames), "berechnet" man die Animation, die man dann als eine mpeg Datei abspeichern kann.

Menü und Hauptfunktionen.



Dieses Menü dient einer doppelten Funktion, da jeder Befehl mit einem Knopf auf der allgemeinen Oberfläche korrespondiert.



Dieses Menü erlaubt es, den "wavelet" Typ, d.h., die Art der Transformation zu wählen. Die verschiedenen Auswahlmöglichkeiten sind verschiedene Bildumwandlungsalgorithmen."RTS-Transform" ist in den meisten Fällen ausreichend, besonders für eine Vorschau. Für Hochqualitätsergebnisse wählt man aus der Reihe zwischen Biorthogonal Spline und Battle Lemarie (die vom komplexesten zum langsamsten gehen).
Die drei anderen können komische Ergebnisse erzeugen.



Dieses Menü erlaubt es, verschiedene Arbeitsfenster zu verstecken oder anzuzeigen.


XMRM benutzt das TIFF Format.





Alle deine Einstellungen, einschließlich der Vektoren, der Namen der Bilder, der Parmeter etc. kann man speichern, laden, speichern als...
Projekte werden mit der Endung .prj abgespeichert; Vektoren werden in einer getrennten Datei mit der Endung .prj.vec abgespeichert.



Tauscht die Quell- und Zielbilder sowie die Vektoren, um die Richtung des Morphens umzudrehen.



Lädt ein Schwarz/Weißbild, um die Detail Map Morph Funktion benutzen zu können.
Ein Farbbild wird in ein Schwarz/Weißbild umgewandelt.



Einfaches Morphen durch Vermischen von Quell- und Zielbild.



Dieses Feature benutzt ein Schwarz/Weißbild zusammen mit dem Quell- und Zielbild. Es erlaubt dir, das Voranschreiten der Umwandlung zu steuern. Ein weißer Bereich im Schwarz/Weißbild zeigt eine schnelle Transformation vom Quell- ins Zielbild an, während umgekehrt ein schwarzer Bereich ein langsames Fortschreiten anzeigt.



Hier wird nur das Quellbild basierend auf den Vektoren umgewandelt.
Überraschende Effekte sind garantiert!



Erlaubt es, eine Sequenz zu erzeugen, die mit den weniger detailierten Bereichen im Quellbild und im Zielbild beginnt, um in der entgegengesetzen Richtung fortzufahren und zum Beginn zurückzukehren, um den Kreis zu schließen.



Im advanced mode (fortgeschrittenen Mode) können die "wavelet-Funktionen" getrennt ausgewählt und konfiguriert werden; im einfachen Mode ist immer 1 ausgewählt:





Mit der "high quality" Option kann die Berechnung viermal so lange dauern...



Diese Option positioniert unsichtbare Vektoren an die vier Seiten der beiden Bilder (Quelle und Ziel). Dies erlaubt es, das Deformieren des Rahmens (frames) während der Umformung zu vermeiden..



Wenn dieser Knopf nicht gedrückt ist, wird normales Morphen benutzt. Diese Funktion bestimmt den Wert der Quell- und Zielbilder für jedes Bild der Animation..
Wenn er aktiviert ist, wird der fortgeschrittenere "wavelet-transformations mode" benutzt, der mit der "Advanced Mode" Option einstellbar ist.


Das Fortschreiten des Morphens




Es ist möglich, das Fortschreiten des Morphens wie folgt zu verändern: Die x-Achse stellt die Zeit oder die Position des Bildes in der Animation dar: links ist das Quellbild, rechts das Zielbild.
Auf der y-Achse ist unten das Quellbild und oben das Zielbild.
Auf diese Wiese kann man durch Folgen der drei Beispiele ein gleichmäßiges Fortschreiten erreichen, ein Fortschreiten, wo das Zielbild gegen Ende erscheint bzw. schließlich eins, wo es eine Schleife gibt. Um die Position von einem Punkt hinzuzufügen oder zu verändern, benutzt man die linke Maustaste, zum Löschen die rechte Maustaste.

Positionieren der Vektoren


[Positioning the vectors]

Sind einmal die beiden Bilder geladen, benutze die Werkzeuge Edit, delete /vector, und set /Line, um die Vektoren nachzuziehen, die die Konturen für das Morphen jedes Bildes festlegen. Je größer die Anzahl der Vektoren, desto besser ist die Morphqualität.
Es ist möglich, mehrere Nachziehungen pro Bild zu haben, z.B. gibt es in der offiziellen Dokumentation ein Beispiel eines Morphens mit einem Bären und einem Leopard, wo die Kontur des Kopfes genommen wurde sowie die Umrisse jedes Auges, für insgesamt drei Nachziehungen pro Foto.

Berechnen der Animation



Hier bestimmt man die Anzahl der Bilder (frames), aus denen die Animation bestehen wird, was bestimmt, wie lang sie ist (in Verbindung mit der Anzahl der frames pro Sekunde) und dem Rendern (fluid, jerky...) der Animation.




Hier stellt man die Anzahl der Bilder (frames) pro Sekunde (fps) ein, sowie durch Benutzen des "Cycle" Knopfes, ob die Animation sich wiederholen soll.




Die "frame preview" Option ist für das Betrachten eines bestimmten Bildes entsprechend seiner Position in der Animation bestimmt.

Speichern der Animation




"Save pics from animation"--Speichert jeden frame als eine tiff Datei, nachdem die Animation berechnet wurde. Man muß zuerst ein Verzeichnis und ein base_filename.tif auswählen. (Das Abspeichern arbeitet wie base_filename000.tif; base_filename001.tif, base_filename002.tif, etc...). "Save pics when calculate" -- Speichert dieselben Dateien, korrespondierend zu jedem Frame, aber zur gleichen Zeit, in der die Animation berechnet wird. Man muß den Dateinamen vor dem Laufen lassen von "calculate" wählen. Diese Option ergibt eine viel bessere Farbqualität in den Bildern.



Man ruft diesen Dialog durch Klicken auf "Execute xmrm_mpeg" auf. Man kann dann das erste und letzte Bild der Animation durch Benutzen des "choose start/stop frame" Knopfes wählen und durch Klicken von GO die schließliche Operation starten, um eine mpeg Animation zu erstellen.
Man kann auch eine Schleife erzeugen und mpeg_play starten, sobald die mpeg Datei erzeugt ist.

Schnelles Erzeugen eines Morphs


Zuerst sind hier die beiden Bilder, die du herunterladen kannst, wenn du die gleichen haben willst, wie in diesem Beispiel:
01.tif and 02.tif (90 kb each)

[The input files]

Klicke "Load Source" und lade 01.tif, dann "Load Destination", um 02.tif. zu laden

[]

Mit dem "Set vector" Werkzeug fahre die Umrisse des Babys nach. Um dieses Werkzeug zu benutzen, klicke die linke Maustaste, ziehe, um den Vektor zu zeichnen und laß los, wenn du die gewünschte Länge erreicht hast.
Du wirst sehen, daß einer der Pfeile oben auf dem Kopf des Babys grün ist. Dies ist ein Referenzpunkt, der dir hilft, die gleiche Anzahl von Vektoren sowohl auf dem Ziel- als auch auf dem Quellbild zu zeichnen und zu positionieren. Nachdem du das Nachzeichnen auf dem ersten Bild beendet hast, wird das Nachzeichnen einen grünen Pfeil entlang der ersten Linie haben,wenn wir auf dem zweiten beginnen und dadurch die Arbeit leichter machen.

Hier sind die Parameter, die ich benutzt habe, um ein interessantes Ergebnis zu bekommen:

- Simple morph
- Border vector
- use wavelets

- Der Kursor "wavelet interpolation levels" wird auf 3/4 erhöht.
- Der Morphingfortschritt (progress) ist rectilinear und centered
- Anzahl der frames: 50
- "Animation sequence" checked und 25 fps

Jetzt klicke auf "calculate", um die Animation zu berechnen, man kann sie mit dem "animate" Knopf anschauen und Änderungen machen. Sei vorsichtig: nochmaliges Laufenlassen von "calculate" löscht die vorherige Animation.
Wenn du ein zufriedenstellendes Ergebnis hast, klicke "save pics from animation" und wähle einen Dateinamen und ein Verzeichnis. Hierin werden die 50 .tif Dateien gespeichert, die durch den "ready" Befehl in der Dialogbox, die du mit"choose filename" öffnest, generiert werden.
Letzte Operation: Klick "Execute xmrm_mpeg", wähle filename000.tif als den START-frame und filename049.tif als den LAST-frame (letzten frame) und klicke auf "GO", um die mpeg Datei zu erzeugen. Diese Datei wird filename.mpg heißen und in demselben Verzeichnis gespeichert sein wie die 50 tif Dateien.

[small animated gif]
Leicht, nicht?
Diese Animation (in voller Größe) kann hier als mpg-Datei oder als animated gif heruntergeladen werden.

Anmerkung des Editors: Das Compilieren von xmrm macht in neueren Linuxdistributionen Probleme. Wie man diese lößt haben auf folgender Seite zusammengestellt: