Los fotomosaicos los conocí gracias al
trabajo de Robert Silvers, el cual se hizo popular después de la imagen de Lady Di, publicada en la revista Newsweek hace algunos años.
La imagen de Lady Di, hecha con fotos de flores
Tiempo después fui al cine a ver la película The Truman Show y me asombró el póster de dicho filme: Es el rostro de Jim Carrey, el protagonista, hecho con fotogramas de la película. El autor es Silvers, el cual no vende un programa para hcer fotomosaicos, sino que los hace por encargo. Sin duda es uno de los mejores exponentes del tema y su trabajo lo ha patentado, aunque sus ideas no lo son, sino solamente la manera en como las hace.
El cartel original de la película The Truman Show
Lo interesante es que -aunque hacer fotomosaicos no tiene mucha ciencia- la manera en cómo hacerlos puede ser muy sofisticada. El tema básicamente trata de tomar una imagen, cuadricularla -es decir- tomar pequeñas regiones y sacar un mosaico sólido de la misma. Una vez hecho esto, hacerse de una buena colección de imágenes y entonces, buscar qué imagen es la más adecuada para sustituirla por la región de color sólido.
De un mosaico de colores sólidos a un fotomorsaico
Básicamente todos los programas usan la ecuación de la distancia euclidiana en 3 dimensiones, la cual simplemente permite calcular la distancia entre puntos considerando tres ejes perpendiculares entre sí,
x, y y
z.
Eso es lo que en mi software le he llamado una "métrica". Sin embargo, encontré que Thiadmer Riemersma, de Holanda, había hecho un estudio de cómo el ojo humano reconoce los colores, lo cual en el fondo es una modificación de la distancia euclidiana.
Yo apliqué esa fórmula y curiosamente, Riemersa leyó mi artículo del Dr. Dobbs y me escribió, indicándome que nunca pensó que su estudio pudiese usarse para un proyecto de fotomosaicos. Pienso que esto es la verdadera contribución al tema.
Ejes cartesianos en donde X, Y y Z se transforman en los colores primarios Rojo, Verde y Azul
Pero hay más que se puede hacer con los fotomosaicos. Por ejemplo , se puede hacer "blending". Esto es básicamente superponer en el mosaico la foto original, en un porcentaje, como si fuese una transparencia, de manera que algunas regiones se oscurezcan o se aclaren, haciendo un fotomosaico más suavizado. Esto, desde luego, debe hacerse con cuidado porque si se abusa entonces el blending no sirve y simplemente se ve la imagen original superpuesta con los mosaicos, como en este ejemplo
Un ejemplo burdo de blending
Aquí los colores de las imágenes dan lo mismo, porque al hacer la fusión con la imagen del personaje, no se respeta nada de cada una de las pequeñas imágenes.
Este otro ejemplo se ve mucho más sutil (del cartel de la película The Truman Show):
Un ejemplo de blending mucho mejor y más cuidado
Esto es un trabajo mucho más elaborado y deja un muy buen sabor al observador. Aquí se maneja sutilmente el blending.
Pensando en todo esto, escribí un pequeño programa que hace este blending con el fotomosaico generado. Cabe decir que hay problemas técnicos que hubo que resolver. Lo primero fue el saber que el fotomorsaico final no necesariamente tenía el mismo tamaño que la imagen original. En ese caso, había que cambiar el tamaño de esta última imagen para empatarla con la imagen del morsaico y poder entonces hacer el "blending".
Otra cosa que hice fue el poner un control para definir la cantidad de transparencia de la imagen original sobre el mosaico (o viceversa). Así, todo estaba listo. Finalmente puse un control para ver el progreso del proceso de blending. He aquí los resultados:
Programa de blending entre la imagen original y el fotomorsaico
Aquí hacemos la fusión entre la imagen de la izquierda (el fotomorsaico) con la imagen original y el resultado queda en la imagen de la derecha, que ya podemos guardar como un archivo ".jpg".
La imagen resultante es esta:
El resultado final
Quien quiera ver la imagen original, descárguela de este
sitio y quien quiera ver el Morsaico compelto, baje la imagen procesada de
aquí.