Morphing Marcos Pel´aez aez Calz´ on on Ignaci Ign acioo Varela are la Andr´ And r´es es Patricia Fernandez Garcia 30/10/2010
´ Indice general 1. Introducci Introducci´ ´ on on
1.1. 1.2. 1.2. 1.3. 1.4.
3
Definic Definicion ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Usos Usos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Tecnicas ecnicas para la realizar realizar el morphing morphing . . . . . . . . . . . . . . 5 Factores que que intervien intervienen en en la realizaci´ realizaci´on on de un buen morphing 6
2. Programa Programass utilizado utilizadoss para la realizac realizaci´ i´ on on de morphing
9
2.1. 2.1. Gimp Gimp - GAP GAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1. 2.1.1. Realiz Realizaci aci´ o´n de morphing usando GAP . . . . . . . . . 10 on 2.2. Norrkros Norrkrosss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3. Interpolac Interpolaci´ i´ on usando morphing: interpolaci´ on on on de edades
26
4. Herramientas Herramientas adicionales adicionales utilizadas
30
1
´ Indice de figuras 1.1. Escena Escena del del videojuego videojuego Prototype en la que el brazo del protagonista tagonista est´ a cambiando de forma. . . . . . . . . . . . . . . . 1.2. Ejemplo Ejemplo de morphing morphing por p or el m´ etodo etodo de mallado. mallado. . . . . . . . 1.3. Ejemplo Ejemplo de morphing morphing por p or el m´ etodo etodo por definici´ definici´ on on de puntos. 1.4. Morphing por el m´etodo etodo de mallado. . . . . . . . . . . . . . . 1.5. Morphing por el m´etodo etodo de definici´on on de segmentos. . . . . . 1.6. Morphing por el m´etodo etodo de definici´on on de puntos. . . . . . . . 2.1. 2.2. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7.
Apariencia Apariencia del programa programa Gimp Gimp versi´ versi´ on on 2.6.8. . . . . . . . . . Im´ Im a´genes para el ejemplo de morphing. . . . . . . . . . . . . . agenes Ventana entana en la que vamos a definir los puntos puntos de morphing. morphing. . . Puntos Puntos de morphing morphing definidos definidos para 40 fotogramas. fotogramas. . . . . . . Realizando Realizando el morphing: morphing: creando creando fotogramas. fotogramas. . . . . . . . . . Ventana entana de reproducci´ reproducci´ on on de la animaci´on on del morphing. . . . Resultado Resultado final del morphing por el m´etodo etodo de definici´ definici´on on de puntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8. 2.8. Im Im´ a´genes para el proceso de morphing. . . . . . . . . . . . . . agenes 2.9. Visual Visualiza izaci´ ci´ on del programa antes de comenzar el morphing. . on 2.10. Segmentos definidos sobre las im´agenes. agenes. . . . . . . . . . . . . 2.11. 2.11. Mo Morph rphin ingg al 38 % y al 50 %. . . . . . . . . . . . . . . . . . . . 2.12.. Morphi 2.12 Morphing ng al 75 % “lobo sonriend sonriendo” o” y reprodu reproductor ctor de la anianimaci´ on. on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.13. Opciones para visualizar la animaci´on. on. . . . . . . . . . . . . . 2.14. Definici´on on de los puntos puntos de morphing morphing y result resultado ado final al 50 %. 2.15. Definici´on on de puntos puntos de morphing morphing y result resultado ado final al 50 %. .
4 5 6 7 8 8 10 11 12 14 15 16 17 19 20 21 21 22 23 24 25
3.1. 3.1. Im´ Imagenes a´genes utilizadas para la interpolaci´on on de edades usando Norrkross. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2. 3.2. Im Im´ a´genes utilizadas para la interpolaci´on agenes on de edades usando GAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3. Inter Interpolac polaci´ i´ on on de edades. . . . . . . . . . . . . . . . . . . . . . 29
2
Cap´ıtulo 1
Introducci´ on 1.1.
Definicion
La palabra morph viene de metamorphosis que quiere decir cambio en la forma . Se trata de una t´ecnica por la cual podemos transformar una imagen en otra mediante complejos pasos con el fin de visualizar el resultado final como una secuencia de fotogramas en los cuales podemos ver como el objeto principal de la imagen cambia de forma para dar lugar a otro diferente [1]. Seg´ un Yongyue Zhang , “el morphing se logra mediante el acoplamiento de im´agenes en las cuales hay una interpolaci´on de color. A medida que el morphing procede, la imagen original es gradualmente distorsionada hasta que desaparece por completo a medida que aparece otra imagen diferente en su lugar. As´ı que los primeros fotogramas del proceso se parecen mas a la primera imagen, a la mitad del proceso se tiene una mezcla por igual entre las dos im´agenes, y desde la mitad hasta el final del proceso los fotogramas cada vez se van pareciendo mas a la segunda imagen. As´ı, es un proceso completo que consiste en ir ajustando las dos im´agenes de manera que tengan la misma forma” Mas t´ ecnica y resumidamente, se trata de una t´ ecnica en la que definiendo una serie de puntos fijos a tomar como referencia sobre el objeto que se va a realizar el morphing, cambiar´ a su composici´ on geom´ etrica para dar lugar a otro objeto diferente.
Otro t´ermino que merece ser tenido en cuenta es wrapping . Este t´ermino se refiere a, seg´un Thalmann , “una transformaci´ on geom´etrica en dos dimensiones que distorsiona y genera una imagen cuando es aplicada a otra imagen”. El wrapping es similar al morphing, con la diferencia que ninguna imagen se va desvaneciendo poco a poco y solo una de ellas es cambiada de forma.
3
Figura 1.1: Escena del videojuego Prototype en la que el brazo del protagonista est´a cambiando de forma.
1.2.
Usos
El morphing es probablemente la t´ecnica mas usada para producir efectos especiales en la industria del entretenimiento. Hoy en d´ıa es muy utilizado en animaci´ on, cine, v´ıdeos musicales, etc, y sus primeras apariciones pudieron verse en pel´ıculas como Terminator o The Abyss, dirigida por el ya conocido por su inter´ es en efectos especiales computacionales James Cameron, o el famoso v´ıdeo musical Black or White de Michael Jackson. Pero hay otro campo en el que el morphing ha tomado especial protagonismo, y es en el ambiente de la industria del los videojuegos. Debido a los grandes avances computacionales tanto a nivel de software y de hardware, las plataformas de los video juegos hacen uso de esta t´ecnica en un gran porcentaje de los t´ıtulos, como es el caso del videojuego Prototype [3], en el que el cuerpo del protagonista puede cambiar de forma en el momento en el que el jugador lo decida. Sin embargo, el morphing no solo est´a limitado a la industria del entretenimiento. Es tambi´en una herramienta muy u ´ til para estimular proyectos basados en multimedia, tales como libros electr´onicos, presentaciones..., y tambi´ en para construir modelos para la visualizaci´ on y simulaci´on de prototipos.
4
1.3.
Tecnicas para la realizar el morphing
El morphing puede realizarse con dos m´etodos diferentes: uno que est´a basado en el mallado de la imagen y otro que est´a basado en la caracter´ısticas de las im´agenes: etodos en los que se define una matriz M´ etodo de mallado: son m´ uniforme para cada imagen sobre la cual va a trabajar el algoritmo del morphing para asemejar las diferentes regiones de una imagen respecto de la otra. En este m´etodo el color de cada p´ıxel es interpolado en cada fotograma desde el valor de la primera imagen al valor de la segunda, es decir, mezcla las dos im´agenes gradualmente y va calculando el color resultante mediante interpolaci´on. No es un m´etodo muy efectivo a la ora de transformar caras, ya que habr´ıa que definir gran cantidad de regiones y muy bien seleccionadas, lo cual es muy dif´ıcil, y adem´as tiende a eliminar algunas caracter´ısticas de la imagen. Como ejemplos de morphing basados en m´etodos de mallado tenemos herramientas de software como Xmoprh o Gtkmorh (para la plataforma Linux).
Figura 1.2: Ejemplo de morphing por el m´etodo de mallado. En la figura 1.2 se puede ver un ejemplo de morphing con este m´etodo. Vemos como efectivamente no es muy efectivo, ya que el morphing se basa en la interpolaci´on de color entre ambas im´agenes. M´ etodo basado en las caracter´ ısticas de las im´ agenes o m´ etoetodo en el do por definici´ on puntos o segmentos: se trata de un m´
que se quiere hacer coincidir ciertas caracter´ısticas de ambas im´agenes, definiendo estas por puntos, llamados puntos de inter´ es. Por lo tanto, 5
este m´ etodo trata de asemejar unos determinados puntos con otros. En ocasiones, tambi´ en se pueden marcar los puntos de inter´ es mediante segmentos, con lo que el algoritmo de morphing tendr´a en cuenta para cada unos de ellos todos los puntos que definen a esos segmentos. En este m´etodo se tiene una interpolaci´on geom´etrica del objeto, es decir, lo que se interpola es la forma del objeto adem´as del color, no solo el color como ocurre en el m´etodo del mallado, con lo cual este m´etodo es mas efectivo. Como ejemplos de morphing basados en el m´ etodo por definici´o n de puntos tenemos herramientas de software como Gimp, mediante un plugin llamado GAP, el cual es multiplataforma.
Figura 1.3: Ejemplo de morphing por el m´etodo por definici´ on de puntos. En la figura 1.3 se puede ver un ejemplo de morphing con este m´etodo. Vemos como el resultado es mucho mas real que por el m´etodo anterior, ya que a la mitad del proceso se aprecia una imagen perfectamente formada.
1.4.
Factores que intervienen en la realizaci´ o n de un buen morphing
La tarea mas dif´ıcil a la hora de realizar alguna de las t´ecnicas de morphing es indicar las regiones o puntos de inter´es o puntos de morphing entre cada imagen. Lo que hace que el morphing parezca lo mas real posible es la coincidencia entre diferentes caracter´ısticas de ambas im´agenes y a menudo no es f´acil hacer coincidir esas caracter´ısticas en im´agenes en las que no hay demasiada relaci´on entre ellas. Como ya se ha dicho anteriormente, la mejor manera de lograr un buen morphing es mediante el m´etodo por definici´on de puntos o l´ıneas (siendo 6
mas efectivo el de puntos). Una vez que estos puntos o l´ıneas son fijados, la aplicaci´ on que realice el morphing calcula como debe deformar la imagen inicial para hacerla coincidir con la forma de la imagen final. Cuantos mas puntos de morphing seleccionemos, mas real ser´a la transformaci´ on, pero como siempre que se gana en calidad se pierde en rapidez, cuanto mejor sea el morphing m´as tiempo se necesitar´a para calcularlo a nivel computacional.
Los factores principales que hacen que el morphing sea lo mas real posible son: Usar el m´etodo por definici´on de puntos o l´ıneas. Definir el mayor n´umero posible de puntos de morphing o puntos de inter´es. Los objetos de las im´agenes deben tener caracter´ısticas comunes. El fondo de la imagen es muy importante. Si este solo tiene un color, el morphing puede centrarse mas en el objeto principal. Usar im´agenes con las mismas dimensiones. A medida que se tengan mas en cuenta estos factores, mas lento ser´a el morphing, pero dar´a mejores resultados.
Figura 1.4: Morphing por el m´etodo de mallado. En la figura 1.4 se pueden ver las mallas que cubre las dos im´agenes a partir de las cuales se realizar´a el morfing. El color de cada regi´o n de la malla de la imagen inicial se interpolar´a con la regi´ on correspondiente de la malla de la imagen final. En la figura 1.5 se pueden ver los segmentos que definen los puntos de inter´ es o puntos de morphing entre las dos im´agenes. A parte de interpolar el color, se interpolar´a la forma de ambos objetos de acuerdo a los segmentos definidos.
7
Figura 1.5: Morphing por el m´etodo de definici´on de segmentos.
Figura 1.6: Morphing por el m´etodo de definici´on de puntos. En la figura 1.6 se pueden ver los puntos que definen los puntos de inter´es entre las dos im´agenes. El efecto es ligeramente mejor que con segmentos, pues el algoritmo interpolador que usa el morphing puede calcular la recta o curva que mejor se aproxime. L´ogicamente, esto requiere mayor coste computacional.
8
Cap´ıtulo 2
Programas utilizados para la realizaci´ on de morphing 2.1.
Gimp - GAP
Uno de los programas que se han usado para la realizaci´on de este trabajo es el programa de edici´on de im´agenes digitales en forma de mapa de bits Gimp con el plugin GAP . Es un programa de licencia GPL y es multiplataforma. Permite tratar las im´agenes como capas1 , de manera que cada objeto de la imagen resultante puede ser tratado de forma independiente. El nombre de GAP viene de Gimp Animation Package y es una herramienta adicional que puede usarse para crear y editar animaciones a partir de im´agenes est´aticas con Gimp. Tanto Gimp como el plugin GAP pueden descargarse libremente de la p´agina oficial [4].
1
Las capas toman un gran protagonismo a la hora de hacer morphing con este programa.
9
Figura 2.1: Apariencia del programa Gimp versi´on 2.6.8. 2.1.1.
Realizaci´ on de morphing usando GAP
A la hora de trabajar con Gimp tenemos que tener muy claro el concepto de capa . Seg´ un su documentaci´on, este programa tiene 21 modos de capas, tambi´ en llamados “modos de fusi´on”. Al seleccionar un modo de capa, cambia la apariencia de la capa o de la imagen, seg´un la capa o capas subyacentes. Para que funcione el modo de capa, tiene que haber al menos dos capas. Estos modos de capas no son mas que una manera de indicarle a Gimp como combinar el p´ıxel de la capa superior con el p´ıxel que est´a colocado en las mismas coordenadas de la capa inferior. A la hora de hacer morphing hay que tener muy claro este concepto, como veremos a continuaci´on. ¿Por que GAP? Ya se ha visto que hay varios m´etodos para realizar un morphing y que el mas efectivo es el m´etodo por definici´on de puntos1 . GAP es una herramienta que nos permite realizar morphing con este tipo de m´etodo, aun que tambi´en podemos hacerlo por definici´on de segmentos, y muy r´a pido a la hora de tratar las im´agenes, aunque no tanto a la hora de realizar el morphing como consecuencia del m´etodo utilizado. 1
Como ya se vio en los factores a tener en cuenta para un buen morhping 1.4
10
Im´ agenes para el ejemplo Las dos im´agenes usadas para hacer el porphing, mostradas en la figura 2.2, tendr´a n un tama˜ no de 321x400 p´ıxeles y un formato JPG. Estas dos im´agenes son casi perfectas (ver 1.4) para la realiaci´on del morphing, ya que el fondo es el mismo en ambas y el objeto principal reune muchas caracter´ısticas en com´un.
Figura 2.2: Im´ agenes para el ejemplo de morphing.
Comenzando el proceso Una vez abierta la aplicaci´on, tenemos que tener en cuenta que tiene que estar en pantalla el panel donde se visualizan las capas. Si no es as´ı vamos a la ventana general en Ventana → Di´ alogos empotrables → Capas. Una vez aqu´ı procedemos a realizar los pasos necesarios para hacer el morphing: 1 Abrimos la imagen inicial Abrir
→
Ruta ImagenInicial
2 Deberemos a˜ nadir a ImagenInicial una canal de transparencia para poder realizar el morphing. Para ello vamos a Capa → Transparencia → A˜ nadir canal alfa . 3 Abrimos la imagen final Abrir → Ruta ImagenFinal. Se abrir´a una nueva ventana. Seleccionamos la imagen, la copiamos y cerramos la ventana. 4 En la ventana de la ImagenInicial hay que a˜ nadir una nueva capa Capa → Capa nueva . Hay que tener en cuenta que la nueva capa tiene que 11
Figura 2.3: Ventana en la que vamos a definir los puntos de morphing. tener el mismo tama˜ no que la capa en la que est´a la ImagenInicial, en este caso de 321x400, y en Tipo de relleno de la capa seleccionamos Transparencia. 5 Una vez creada la nueva capa tenemos que pegar la ImagenFinal que se copi´o en el paso 3 Edicion → Pegar. 6 En el di´alogo de capas nos aparecer´a una nueva capa, en cuya descripci´on pondr´ a Selecci´ on flotante (Capa pegada). Tenemos que a˜nadir esa nueva “capa pegada” a la capa creada en el paso 4. Para ello seleccionamos la “capa pegada” y vamos a Capa → Anclar capa. 7 Ya tenemos la imagen inicial y final en dos capas. Ahora vamos definir los puntos del morphing. Para ello vamos a Video → Morph → a una ventana con las dos im´agenes sobre las que Morph. Aparecer´ vamos a trabajar tal y como se muestra en la figura 2.3. 8 Una vez en la ventana en la que se realiza el morphing 2.3 tenemos varias opciones. Entre las que nos interesan destacamos las siguientes: •
umero de puntos que definir´an los bordes ShapePoints indica el n´ de las im´agenes, que se ponen autom´aticamente al presionar sobre el bot´on Forma. 12
•
on Establecer para colocar los puntos de morphing. La colocaci´ de estos puntos funciona de la siguiente manera: cada imagen actua como un espejo de la otra, de manera que si se coloca un punto de morphing en una de ellas aparecer´a su hom´ologo en la imagen contraria.
•
Mover sirve para mover los puntos con mayor facilidad (aun que tambi´en se pueden mover en el modo Establecer ).
•
Borrar sirve para borrar los puntos con mayor facilidad (aun que tambi´ en se pueden borrar en el modo Establecer con el bot´on
derecho). •
Ampliaci´on para ampliar/reducir la imagen.
•
Mostrar sirve para indicar donde estar´ıa el hom´ologo de un punto
colocado en una de las im´agenes. •
etodo de definici´ on L´ ıneas para poder hacer morphing por el m´ de segmentos.
•
Superficies para indicar a la aplicaci´ on el n´ umero de fotogramas
que debe realizar para luego hacer la animaci´on. •
Morph si queremos hacer morphing, tenemos que tener activada
esta opci´on. 9 Se deben indicar los suficientes puntos de morphing como para que el proceso resulte lo mas real posible tal y como se muestra en la figura 2.4 y el n´ umero de fotogramas sobre los que se va a hacer la animaci´on. Finalmente se da a Aceptar y se empezar´an a crear los fotogramas. En la figura 2.5 se ve exactamente como se van creando las capas, o fotogramas, que luego formar´ an la animaci´on. Estas capas van apareciendo en la ventana de Capas a medida que se van creando y donde ya se puede visualizar el efecto del morphing.
Este proceso tardar´a unos minutos, dependiendo de la cantidad de fotogramas que le hayamos indicado y del n´ u mero de puntos que hayamos fijado para hacer el morphing. Una vez que el proceso a terminado se podr´a ver la animaci´on en Fila una ventana tros → Animaci´ on → Reproducci´ on..., y se abrir´ donde aparecer´a la animaci´on del morphing 2.6. En esta ventana tenemos varias opciones: •
Play para mostrar la animaci´ on en modo continuo.
•
Paso al siguiente fotograma para mostrar la animaci´ o n fo-
tograma a fotograma con cada click de rat´on. 13
Figura 2.4: Puntos de morphing definidos para 40 fotogramas. •
on desde el primer Rebobinar animaci´ on para comenzar la animaci´ fotograma.
•
Desprender la animaci´ o n de la ventana de di´ alogo sirve para
separar la animaci´ on de la ventana mostr´andola a parte arrastr´ andola con el rat´on. •
Velocidad de reproducci´ on colocado abajo a la izquierda e in-
dicado con porcentajes, indica la velocidad de reproducci´on de la animaci´ on, siendo 800 % la m´ axima velocidad y 12.5 % la m´ınima. •
Barra de progreso indica el fotograma que se est´a mostrando
en cada momento. Archivo de configuraci´ on del proceso En la figura 2.3 se vieron algunas opciones que ofrec´ıa la ventana de la aplicaci´on. Entre ellas est´a la opci´on Guardar que guarda un fichero en texto plano con la configuraci´on de la ventana en ese mismo momento y las coordenadas de los puntos definidos. Su contenido es como se muestra acontinuaci´ on : GAP-MORPH workpoint file 14
Figura 2.5: Realizando el morphing: creando fotogramas.
15
Figura 2.6: Ventana de reproducci´on de la animaci´on del morphing. LAYER-SIZES: 321 400 321 400 % src width src height dst width dst height TWEEN-STEPS: 40 AFFECT-RADIUS: 100.00 % pixels INTENSITY:0 % OFF QUALITY-WP-SELECT: 0 % FALSE (faster but lower quality) POINTCOLOR: 26 255 26 CURR-POINTCOLOR: 255 255 26 % WP: src x src y dst x dst y WP: 54.074 397.926 21.852 397.074 WP: 51.481 378.296 16.296 378.926 WP: 45.185 361.630 15.926 359.667 WP: 40.370 338.296 16.667 334.111 WP: 299.741 396.074 255.296 398.185 WP: 306.407 386.074 261.963 390.037 WP: 307.889 373.852 265.667 375.222 WP: 307.148 353.852 265.296 358.556 WP: 318.370 248.704 317.630 249.407 WP: 318.370 230.667 309.111 229.407 WP: 318.370 208.074 294.296 203.852 WP: 318.370 177.704 281.704 174.185
16
Figura 2.7: Resultado final del morphing por el m´ etodo de definici´ o n de puntos. WP: 319.852 154.815 282.074 153.074 WP: 318.000 131.111 280.222 129.370 WP: 319.111 115.926 281.704 115.185 WP: 316.519 102.963 282.444 98.519 WP: 313.926 92.593 279.852 88.148 WP: 309.481 81.111 276.889 75.926 WP: 304.667 72.222 273.185 67.407 WP: 291.333 60.370 264.667 52.963 WP: 281.704 51.852 259.481 40.741 WP: 272.074 43.333 249.481 32.593 WP: 270.593 34.074 242.815 26.667 WP: 267.259 24.444 235.778 22.593 WP: 263.185 15.926 236.148 15.926 WP: 256.889 7.778 238.741 8.148 WP: 251.704 0.741 238.741 0.370 ... Este fichero de configuraci´ on, al ser en texto plano, permite editarse manualmente o exportar a otros programas, de manera que se podr´ıa automatizar el proceso de alguna forma. Resultado final Despu´ es de ajustar varias veces los puntos de morphing, ya que es muy dif´ıcil que salga perfecto a la primera, se ha obtenido el resultado que se muestra en la figura 2.7.
17
2.2.
Norrkross
Para contrastar los resultados entre diferentes aplicaciones y diferentes tipos de morphing se ha elegido el programa Norrkross MorphX el cual est´a disponible para la plataforma Mac y puede descargarse libremente desde la p´agina oficial [5] . Este programa difiere del anterior en varios aspectos: Simplicidad: el trabajo con Norrkross resulta una tarea f´acil y simple,
ya que dispone de una interfaz muy intuitiva para este cometido, con lo que la realizaci´on del morphing se hace mucho mas amena. Tipo de moprhing: Norrkross utiliza un algoritmo de morphing
basado en el m´etodo de mallado, con su correspondiente t´ecnica de interpolaci´ on de color, con lo que los resultados no ser´an tan reales como los que da Gimp. Funcionalidades: al contrario que Gimp, que es un programa para el
tratamiento de im´agenes y animaciones, aqu´ı se dispone ´unicamente de las funcionalidades b´asicas para realizar el morphing sin posibilidad de poder llegar a un mejor resultado del que este nos proporciona. Comenzando el proceso
Las im´agenes usadas para el proceso de porphing tienen un formato JPG y un tama˜ no de 321x399 p´ıxeles. En la figura 2.8 se pueden ver dos de uno de los ejemplos del morphing que se va a realizar con Norrkross. Estas im´agenes han sido previamente tratadas, eliminando el fondo y dejando solo el contorno del objeto del cual se va a realizar el proceso, ya que como se ha dicho anteriormente, este programa utiliza un algoritmo interpolaci´on de color y aqu´ı es mas importante que las im´agenes tengan el mayor n´umero de caracter´ısticas comunes posibles.
Como ya se ha dicho antes, Norrkross es un programa muy simple, tanto que los pasos a seguir desde el principio al final del proceso se pueden indicar en solo unas pocas l´ıneas: Para colocar las im´ agenes hay que arrastrarlas desde su ubicaci´on hasta una de las dos divisiones del programa. La imagen colocada en la parte de la derecha ser´a la imagen inicial y la imagen colocada en la parte de la izquierda ser´a la imagen final del proceso. Una se tienen las dos im´agenes colocadas, ya est´a todo lito para comenzar a colocar los puntos de inter´ es o segmentos. 18
Figura 2.8: Im´agenes para el proceso de morphing.
Observaci´ on: Norrkross es un programa de morphing que utiliza un algoritmo de interpolaci´on de color, propio del m´ etodo de morphing basado en definici´on de malla. Sin embargo, en Norrkross no estamos trabajando con mallas, si no con puntos o segmentos, lo cual no quiere decir que est´e usando un algoritmo de interpolaci´on de color y forma propio del m´etodo por definici´ o n de puntos o segmentos, si no que estos puntos, o segmentos, definen impl´ıcitamente una malla por toda la extensi´on de la imagen. En la parte inferior vemos 5 huecos que mostrar´an las fases intermedias del proceso al 0 % (ausencia de morphing), 25 %, 50 %, 75 % y 100 %. En la figura 2.9 se el aspecto del programa antes de colocar los puntos. Se ve que en la parte inferior (la zona de previsualizaci´on del morphing a diferentes niveles) aun se encuentra vac´ıa. Inmediatamente comenzar´a a previsualizarse el morphing en esa misma zona a medida que vamos colocando mas puntos. Esta previsualizaci´o n tan r´apida es posible gracias al m´etodo de morphing utilizado, ya que a menor calidad, menor coste computacional.
En la figura 2.10 se ve una posible implementaci´on del morphing que se quiere conseguir. Aparece en la parte inferior las im´agenes previsualizadas que indican como va quedando el resultado a medida que el proceso avanza.
19
Figura 2.9: Visualizaci´ on del programa antes de comenzar el morphing.
20
Figura 2.10: Segmentos definidos sobre las im´agenes.
Figura 2.11: Morphing al 38 % y al 50 %.
21
Figura 2.12: Morphing al 75 % “lobo sonriendo” y reproductor de la animaci´ on. En la figura 2.11 se ven los resultados del morphing al 38 % y al 50 %. En la figura 2.12 se ve el proceso al 75 % y ya se aprecia un toque mas realista. Tambi´ en se muestra una imagen del reproductor de v´ıdeo que mostrar´a la animaci´ on de la secuencia completa. La visualicaci´on de la animaci´on final puede configurarse con mas detalle una vez que el morphing se haya terminado. En la figura 2.13 se ve la pantalla de configuraci´on de la animaci´on en la cual tenemos las siguientes opciones: Tama˜ no de la imagen: es posible seleccionar la anchura y altura de
la imagen en p´ıxeles. Proporciones: ajustar el porcentaje de cada imagen en el proceso del
morphing. umero de fotogramas que debe mostrar la Largo: para indicarle el n´ aplicaci´on. Velocidad: para indicar los fotogramas por segundo a los que se vi-
sualizar´ a la animaci´on. A mayor n´umero de fotogramas y mayor velocidad de animaci´on mas suave resultar´a la visualizaci´on final. Observaci´ on: una vez definidos el n´umero de fotogramas totales y el n´umero de fotogramas por segundo que se mostrar´ an, la aplicaci´on nos muestra una estimaci´on del tiempo total que durar´a la animaci´on. Reverse: para invertir el morphing, es decir, empezar´a a realizar el
proceso desde la imagen final a la inicial. on de v´ıdeo que tendr´a la QT-c´ odec: para seleccionar la codificaci´ animaci´ on. on QT-calidad: para seleccionar la calidad de v´ıdeo para la codificaci´ elegida.
22
Figura 2.13: Opciones para visualizar la animaci´on.
23
Figura 2.14: Definici´ on de los puntos de morphing y resultado final al 50 %. Otros ejemplos
A continuaci´on se muestran otros ejemplos de morphing con Norrkross. En la figuras 2.14 y 2.15 se muestra una imagen con los puntos de morphing definidos para el proceso y la animaci´o n del resultado final al 50 %. En la figura 2.14 se ve un morphing de mas calidad que el anterior debido a las caracter´ısticas de la imagen en cuanto a color de los p´ıxeles (ver 1.4).
24
Figura 2.15: Definici´ on de puntos de morphing y resultado final al 50 %.
25
Cap´ıtulo 3
Interpolaci´ on usando morphing: interpolaci´ on de edades El concepto de interpolaci´ on , matem´aticamente hablando, es la obtenci´on de puntos intermedios entre dos puntos conocidos. Por interpolaci´ on se entiende tambi´ en a una forma de aproximaci´ on de una funci´on complicada por otra mas simple. Una idea en el uso de la interpolaci´on, a parte de que ya se usa dentro del algoritmo de morphing, es la obtenci´on de la forma de un objeto en etapas intermedias a dos ya conocidas. Primero se har´ a un ejemplo con el programa ya visto anteriormente Norrkross. En la figura 3.1 se ven las im´agenes utilizadas como extremos de la interpolaci´on y el resultado del pro ceso al 50 %. Debido a las caracter´ısticas del programa utilizado, resulta un tanto dif´ıcil aproximar la apariencia de esta persona a una determinada edad dado que es un programa que utiliza interpolaci´on de color para calcular los fotogramas intermedios, con lo cual no puede hacer un “reajuste” de la forma de la cara respecto a una l´ınea de tiempo. No ocurre lo mismo utilizando GAP, ya que por sus caracter´ısticas puede calcular de una manera mas aproximada la forma de la cara de la persona que queremos identificar a una determinada edad intermedia a dos conocidas. No solamente se puede apreciar un mejor resultado, si no que debido a que Gimp a visto en la animaci´on del morphing, genera cada fotograma1 que ser´ resulta muy c´omodo poder editar cada uno de estos para introducir la edad correspondiente a cada uno de ellos mediante unos sencillos c´alculos que se explican a continuaci´on. 1
Raz´ o n por la cual el proceso del c´ alculo de morphing requiere mas tiempo
26
Figura 3.1: Im´agenes utilizadas para la interpolaci´ on de edades usando Norrkross.
Figura 3.2: Im´ agenes utilizadas para la interpolaci´on de edades usando GAP.
27
Procedimiento seguido para realizar los c´ alculos de la forma mas exacta posible
Supongamos que se tienen 2 im´a genes de una persona a los 5 y a los 23 a˜nos y se quiere tener una idea aproximada de la apariencia que pudo haber tenido a edades intermedias. Entonces, teniendo como puntos conocidos las dos im´agenes, imagen inicial y final del morphing, las cuales se pueden ver en la figura 3.2, se sacar´an las im´agenes correspondientes a las edades que faltan.
Para este caso concreto se ha usado GAP. Calculamos el rango de a˜ nos que transcurren entre la imagen inicial y la imagen final: 23 a˜ n os - 5 a˜n os = 18 a˜nos. Para que el morphing se realice de la forma mas real posible y haya tiempo para ver las edades a medica que transcurre la animaci´on se deben indicar una cantidad de fotogramas m´ ultiplos de 18. Para este caso se han elegido 54 fotogramas, de manera que cada 3 fotogramas la persona de la imagen cumple 1 a˜no. Para colocar la edad correspondiente en cada fotograma se han aprovechado las caracter´ısticas de Gimp para el manejo de capas. El procedimiento es el siguiente: •
Creamos una nueva capa encima de los fotogramas que nos ha creado el proceso de morphing. Con la capa seleccionada vamos a Capa → capa nueva, elegimos el mismo tama˜no que las dos im´ agenes de las que partimos, y en Tipo de relleno de capa seleccionamos Transparencia.
•
Sobre la nueva capa creada, seleccionamos la Herramienta de texto y colocamos el texto en una zona donde no se tape la imagen principal.
•
Para que el texto est´e colocado siempre en el mismo lugar, duplicamos la capa con Mayus+Ctrl+D y la llevamos por encima del fotograma siguiente, con lo cual solo tendremos que editar el texto de esa capa cuando sea necesario.
•
Para combinar cada fotograma con su “capa de texto” correspondiente se tienen que poner las dos capas en modo visible, y con la capa superior seleccionada vamos a Capa → Combinar hacia abajo.
•
Solo hay que repetir este proceso para los 56 fotogramas. 28
Figura 3.3: Interpolaci´ on de edades. En la figura 3.3 se ve el resultado en la ventana de la animaci´on. La interpretaci´ on es la siguiente: las dos im´agenes de los extremos son los puntos conocidos de la interpolaci´on y la imagen central es la interpolada para una edad de 14 a˜ nos.
29
Cap´ıtulo 4
Herramientas adicionales utilizadas Para la realizaci´on de este trabajo se ha utilizado, adem´as de las aplicaciones ya mencionados, software para llevar a cabo diversas tareas que citamos a continuaci´on. on del proceso seguido y las Documentaci´ on: para la documentaci´ explicaciones del funcionamiento de las herramientas utilizadas se ha utilizado Latex . o n de im´agenes se ha Edici´ on de v´ıdeo e im´ agenes: para la edici´ utilizado principalmente Gimp y para la edici´on de v´ıdeo iMovie para Mac y Openshot para Linux. on del trabajo se ha optado por utilizar Presentaci´ on: para la exposici´ tecnolog´ıa web, as´ı como Drupal , un sistema de gesti´on de contenido modular multiprop´ osito y altamente configurable con el que se puede controlar la publicaci´on de documentos, im´agenes, v´ıdeo y otros servicios, y un espacio web cedido por la la Universidad de Le´on para alojar todo este contenido.
30