Hogar Mapa Indice Busqueda Noticias Arca Enlaces Sobre LF

Este artículo está disponible en los siguientes idiomas: English  Castellano  Deutsch  Francais  Portugues  Russian  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

[Photo de láuteur]
por Yves Ceccone

Sobre el autor:

Fotógrafo de profesión, no volvió a soltar el ratón desde el momento que se convirtió a la infografía.



Contenidos:

XMRM : Morphing bajo Linux

Resumen:

XMRM (Morphing de resolución múltiple para X) es un programa de morphing que permite crear, a partir de dos imágenes, un video en formato mpeg donde una de las imágenes se transforma progresivamente en la otra según una serie de parámetros. Este artículo describe las principales funciones del programa (gracias a la completa documentación en inglés disponible en la página de XMRM) y enseña cómo crear una pequeña animación que muestra la posibilidad de obtener resultados interesantes muy fácilmente.



 

Instalación

La versión empleada en este artículo está en formato rpm (de RedHat 6.0) pero se pueden obtener los fuentes para compilar en la página: http://www.cg.tuwien.ac.at/research/ca/mrm/xmrm.html.
Además del propio programa será necesario instalar "tifftopnm" y "ppmtoyuvsplit" para poder guardar la animación en formato mpeg. Ambas forman parte del paquete "netpbm01mar94" que se encuentra en: ftp://ftp.x.org/contrib/utilities/

 

Principio de funcionamiento

XMRM funciona de la siguiente manera: se importan dos imágenes una imagen denominada "fuente" y otra denominada "destino". Mediante vectores se realiza un trazado sobre cada imagen que determinarán los contornos del morphing. Después de elegir el tipo de morphing, la calidad, el número de fotogramas, etc, se "calcula" la animación la cual podrá guardarse en formato mpeg.

 

menú y funciones principales



Este menú se repite ya que a cada comando le corresponde un botón de la interfaz gráfica.





Este menú permite elegir el tipo de onda y por lo tanto el tipo de transformación. La elección es un tanto científica aunque el tipo "RTS-Transform" es suficiente para la mayoría de los casos en especial para las vistas previas. Para resultados de alta calidad conviene elegir entre los elementos de la lista comprendidos entre "Biorthogonal Spline" y "Battle Lemarie".
Las últimas tres opciones pueden generar resultados "graciosos"...





Este menú permite ocultar o mostrar las diferentes ventanas del entorno de trabajo.





- Carga la imagen fuente
- Carga la imagen de destino

XMRM utiliza el formato TIFF.





- Carga los vectores
- Guarda los vectores
- Guarda los vectores como...
- Elimina los vectores de la imagen fuente y de destino.





Todos los elementos incluyendo los vectores, los nombres de las imágenes, los parámetros, etc ... se pueden guardar, cargar o guardar como....
Los proyectos se almacenan con la estensión .prj en tanto que los vectores se almacenan en un archivo aparte con extensión .prj.vec.





Invierte la imagen fuente, la imagen destino y los vectores para cambiar el sentido del morphing.





Carga una imagen en blanco y negro para emplear la función "detail map morph"
Una imagen en color se convertirá en otra en blanco y negro.





Morph inicial para la fusión de la imagen fuente con la imagen de destino.





Con una imagen en blanco y negro además de la imagen fuente y la de destino, este modo permite controlar la evolución de la transformación.





En este caso únicamente se deforma la imagen fuente en función de los vectores.
¡Se garantizan efectos sorprendentes!





Permite crear una secuencia comenzando con las zonas más nítidas de la imagen fuente y las más difusas de la imagen de destino continuando en el sentido inverso para alcanzar el principio y terminar el ciclo.





En el modo avanzado las funciones de onda pueden seleccionarse y configurarse en forma individual. En el modo por defecto siempre figura el 1 seleccionado:







El tiempo de cálculo con esta opción puede verse incrementado en un factor 4...





Esta opción ubica vectores invisibles sobre los cuatro costados de las dos imágenes (fuente y destino). Esto permite evitar la deformación del marco durante la transformación.





Esta opción determina el peso de la imagen fuente y la de destino para cada imagen que compone la animación.
Cuando se encuentra activada se utiliza el modo "wavelet-transformations mode" configurable con la opción "Avanced mode".





Evolución del morphing



Es posible modificar la transición del morphing. El eje X representa el tiempo o la posición de la imagen dentro de la animación, a la izquierda se tiene la imagen fuente y a la derecha la imagen de destino.
Sobre el eje Y, la parte inferior hace referencia a la imagen fuente en tanto que la superior a la imagen de destino.
Por lo tanto, siguiendo los tres ejemplos de arriba se puede obtener una transición suave, una transición en donde la imagen de destino aparece al final y una donde se completa un ciclo.
Para agregar o modificar la posición de un punto se utiliza el botón izquierdo del ratón y para eliminarlo el botón derecho.



Trazando los vectores



Una vez cargadas las 2 imágenes y con ayuda de las herramientas Set Vector/Line, Edit Vector y Delete Vector se podrán trazar los vectores que determinarán los contornos que se tendrán en cuenta durante el morphing de cada imagen. Cuanto mayor es la cantidad de vectores mejor será la calidad del mismo.
Es posible contar con muchos contornos en una imagen. Por ejemplo, en la documentación oficial hay un ejemplo con un oso y un leopardo donde se tienen un total de tres contornos: uno para la cabeza y otros dos para los ojos.



 

Cálculo de la animación



Aquí se puede elegir el número de imágenes que conformará la animación lo que influirá directamente en su duración (relacionada con el número de fotogramas por segundos) y del renderizado de la misma.





Desde aquí se elige la cantidad de fotogramas por segundos (fps). Activando la opción "Cycle" se logra la reproducción continua de la animación.






La opción "frame preview" permite visualizar una determinada imagen de una animación seleccionándola por su posición dentro de la misma.



 

Guardando la animación



"Save Pics from animation" guarda cada fotograma en un archivo tif después del cálculo de la animación. Previamente hay que elegir un directorio y un nombre_de_archivo.tif (los archivos quedarán almacenados de la siguiente manera: nombre_de_archivo000.tif, nombre_de_archivo001.tif, nombre_de_archivo002.tif, etc).
"Save pics when calculate" guarda cada fotograma en un archivo tif como en el caso anterior pero lo hace durante el cálculo de la animación. Por lo tanto, hay elegir el nombre del archivo antes de pulsar "calculate". Esta opción permite obtener una mejor calidad de imagen en lo que respecta a los colores.



Esta caja de diálogo se obtiene pulsando "Execute xmrm_mpeg". Con ayuda del botón "chose start/stop frame" elegir la primera y la última imagen de la animación. Pulsando "GO" se obtiene la animación en mpeg que se podrá reproducir con mpeg_play.


 

Crear un morphing rápidamente


Aquí se pueden descargar las dos imágenes si se desea utilizar las mismas que las empleadas en el ejemplo:
01.tif y 02.tif (90 kb cada una)



Pulsar sobre "load Source" para cargar la imagen 01.tif y luego sobre "load destination" para hacer lo mismo con la 02.tif.




Mediante la herramienta "Set vector" realizar un trazado alrededor del bebé.
Esta herramienta se utiliza pulsando, arrastrando y liberando alternativamente el botón izquierdo del ratón para obtener los distintos vectores de longitud deseada.
Como se puede observar uno de los vectores situados en la parte superior de la cabeza del bebé es de color verde. Se trata de un punto de referencia que nos ayudará a trazar y ubicar la misma cantidad de vectores en la imagen de destino que en la imagen fuente. Luego de haber finalizado el contorno de la primer imagen el primer trazo del contorno de la segunda está acompañado de una flecha verde lo que facilitará nuestro trabajo.

Aquí están los parámetros que utilizé para obtener un resultado interesante:

- Simple morph
- Border vector
- use wavelets

- El cursor "wavelet interpolation levels" posicionado en 3/4.
- el "Morphing-progress" rectilíneo y centrado
- Cantidad de fotogramas: 50
- "Animaton sequence" activada y en 25 fps

Pulsar ahora sobre "calculate" para generar la animación que será posible visualizar con el botón "animate" para eventualmente realizar modificaciones. ¡Cuidado! al pulsar nuevamente el botón "calculate" se borra la animación anterior.

Una vez obtenido un resultado satisfactorio, marcar "save pics from animation", elegir el nombre de un archivo y un directorio donde guardar los 50 archivos .tif que va a generar el comando "ready" de la caja de diálogo abierta por "choose filname"

Última operación: pulsar sobre "Execute xmrm_mpeg" elegir como START-frame entre los 50 archivos con extensión tif el que se denomina nombre_de_archivo000.tif y como LAST-frame el nombre_de_archivo049.tif. A continuación pulsar "GO" para crear el archivo de video mpeg que se denominará nombre_de_archivo.mpg y que se almacenará en el mismo directorio de los 50 archivos tif.




Fácil ¿no?
Esta animación se puede obtener desde aquí  

Formulario de "talkback" para este artículo

Cada artículo tiene su propia página de "talkback". A través de esa página puedes enviar un comentario o consultar los comentarios de otros lectores
 Ir a la página de "talkback" 

Contactar con el equipo de LinuFocus
© Yves Ceccone, FDL
LinuxFocus.org

Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus
Información sobre la traducción:
fr -> -- Yves Ceccone
fr -> es Walter Echarri

2001-09-10, generated by lfparser version 2.9