| 
 ![[Photo de l'auteur]](../../common/images/Yves-Ceccone.jpg)  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
 ![[illustration]](../../common/images/article139/img_139.gif) 
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
    
    ![[Positioning the vectors]](../../common/images/article139/img_139_24.jpg) 
  
 
    
    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]](../../common/images/article139/img_139_32.jpg) 
 
    
    Klicke "Load Source" und lade 01.tif, dann "Load Destination", um 02.tif. zu
    laden
    
    ![[]](../../common/images/article139/img_139_33.jpg) 
  
 
    
    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]](../../common/images/article139/morph_small.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:
  
 
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