Wednesday, May 20, 2015

Para ganar en el reto de los fotomosaicos


El reto de crear un programa de fotomosaicos inició el 11 de mayo y terminará el 11 de junio a las 12 de la noche. Vamos, al día siguiente (12 se junio) ya no aceptaremos ninguna participación. La colección de fotos se ha bajado 51 veces hasta este momento y si quitamos aquellos que quizás bajaron las fotos para tener una buena colección de las mismas, quizás estemos hablando de unos 30 o 35 interesados en desarrollar el software propuesto.

Cabe decir que el video y las explicaciones para hacer un fotomosaico que pueda participar en el reto son las mínimas aceptables, pero desde luego, cada programador bien podría buscar mejorar su algoritmo y hacerlo más sofisticado, más elaborado para así ganar el iPod Touch. Por ejemplo, una imagen de un interesante mosaico puede verse aquí:


Si observamos con detenimiento veremos que el autor no usa una cuadrícula, sino que desfasa los mosaicos como si fuesen tabiques en una pared. Es decir, para construir una pared no apilamos un tabique encima del otro, sino que hacemos una fila de tabiques y en la siguiente línea de tabiques, los desfasamos a la mitad de la fila original. El resultado es éste:


Esto parece ser que mejora la apariencia final del fotomosaico. Nótese en particular que en la imagen de Bobby Fischer hallamos que ciertas imágenes parecieran que tienen las sombras exactamente donde deben tenerlas, por ejemplo en el caso de la nariz, en los costados, aparece la imagen de un tablero que lleva la forma de la nariz por donde respiramos. O el autor puso esa imagen sin querer y le pasó como el burro que tocó la flauta o bien, está haciendo otra cosa.


Me di a la tarea de averiguar esto y me escribí un programa que lo que hace es pasar una imagen a tonos de gris para así poder después calcular un umbral máximo de colores. De los experimentos que hice, me da la impresión que el autor de este fotomosaico usa muy bien el blending sobre la imagen original aunque pareciese que reconoce formas para saber qué tipo de imagen poner. Desde luego es necesario hacer un análisis más cuidadoso.

Pero aparte de este fotomosaico de ejemplo, hay quienes han desarrollado otras técnicas, por ejemplo, éste:


Obsérvese que aquí los mosaicos son de diferente tamaño. Esto hace que el resultado final sea muy diferente a un fotomosaico hecho simplemente colocando una malla cuadriculada.

Nótese por ejemplo este otro y analícese:



Podrá notar que parece un fotomosaico del logotipo de Apple normal, pero cuando nos vamos acercando a los límites de la imagen, se empiezan a poner fotos más chicas. Esta idea de hacer fotomosaicos con una malla irregular suena muy interesante y entiendo que requiere de mayor programación. Uno de los mosaicos más interesantes con esta técnica es el de Steve Jobs, hecho con el programa de Artensoft (ver la ilustración inicial de este artículo).

Una imagen de Ilse con este programa puede verse aquí:


Se usó la misma colección de fotos que los que le entren al reto deben usar. Para probar, descargué la versión gratuita de Artensoft para ver qué tantas opciones me daba. Es una interesante aproximación y vale la pena que la descarguen porque da buenas ideas. Vamos, Artensoft también tiene su propio algoritmo para que no se repitan las imágenes.


Finalmente, es recomendable echarle un ojo a la versión electrónica del artículo del Dr Dobbs Journal (noviembre 2001), en un artículo que escribimos Marcelo Pérez Medel y yo, llamado "Your Own Photomosaic Engine!".

1 comment:

Luis M said...

Para la imagen de la manzana, se podría utilizar previamente un algoritmo para detectar esquinas en la imagen original (el operador de Sobel es muy sencillo => http://es.wikipedia.org/wiki/Operador_Sobel) y cuando estemos en una zona con esquina, por ejemplo, dividir nuestro tamaño de mosaico entre 2 o 3.
Un saludo.