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
2001-09-10, generated by lfparser version 2.9