von Yves Ceccone
Über den Autor:
Von Beruf Fotograf, wechselte er zur Computergraphik und hat die Maus seitdem
nicht mehr losgelassen.
Inhalt:
|
XMRM : Morphen mit Linux
Zusammenfassung:
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.
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
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)
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.
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:
Talkback für diesen Artikel
Jeder Artikel hat seine eigene Seite für Kommentare und Rückmeldungen. Auf dieser Seite kann jeder eigene Kommentare abgeben und die Kommentare anderer Leser sehen:
2001-09-04, generated by lfparser version 2.17