Hace ya algunos años de esto, hice un programa de computadora que generaba fotomosaicos como en la película de Jim Carrey (The Truman Show. Pueden ver las entradas aquí, aquí y aquí.
Este trabajo me trajo algunas satisfacciones. Una de ellas es que por primera veza publiqué un artículo técnico en una revista que siempre consideré de buen nivel (ya desaparecida): Dr. Dobbs Journal. Aparte de eso, en el portal unocero he realizado algunos concursos de programación lúdica y uno de ellos era precisamente el generar un fotomosaico. El ganador hizo un trabajo notable, pues no puso imágenes como normalmente se hace, sino que puso pequeños cubitos 3D en lugar de las imágenes.
Pues bien, en el mundo de la programación, cuando se dice que un programa está terminado es porque probablemente ya sea obsoleto. Y esto me pasó a mí con mis fotoMorsaicos. En algún momento me cansé del tema y lo dejé por la paz. Sin embargo, esta es una de las tareas que dejo a mis alumnos de la asignatura en proceso digital de imágenes. Uno de mis estudiantes de ese entonces, Andrés Aldana (que ya termina ahora su doctorado), hizo un fotomosaico y noté que no se veían en general imágenes repetidas. Él me explicó que su programa no necesariamente toma la mejor imagen, sino que calcula las diez mejores imágenes para cada región del mosaico y pone alguna de ellas al azar. Esto tiene su ventaja, que no se ve el mosaico monótono. Tiene un contra, que no pone la mejor imagen siempre. Sin embargo, para todo fin práctico, me parece que la idea de Andrés es muy buena.
Pasaron los años y ahora, gracias al confinamiento por la pandemia, decidí sentarme a implementar esto. Cabe señalar que me la pasé un par de días pensando (no todo el tiempo, evidentemente), cómo hacer que la sugerencia de Andrés podía implementarse. Una posibilidad es hacer los cálculos para saber cuáles son las diez mejores fotos (en lo que se refiere a su color contra el de la región que se está analizando). Y si se tienen, por ejemplo 10 mil imágenes, guardar esos cálculos y después ordenar las imágenes de acuerdo a la métrica que indica qué foto está más cerca (en color), con cada región.
Para comprender lo que sigue, sugiero le echen un ojo a mi clase virtual en donde le explico a mis alumnos el trabajo de los fotoMorsaicos:
Sin embargo, me resultaba ridículo y oneroso, en términos de recursos, el hacer un ordenamiento de 10 mil elementos. ¿Y si usaba una colección de 30 mil o 40 mil imágenes? ¿Cuánto tardaría el asunto? No resultaba la mejor idea. Entonces se me ocurrió lo siguiente: Leo cada imagen y coloco las 10 primeras ern un arreglo. Las ordeno, de acuerdo con el criterio de la métrica (que me dice cuál es la mejor imagen cuando el calculo que hago es el menor). Así, solamente tengo que ordenar 10 imágenes. Cuando llego a la imagen 11, la pongo en lugar de la imagen 10 y vuelvo a ordenar mi pequeño arreglo, que la verdad, no le pega notablemente al desempeño del software. Y así lo hago hasta la última imagen. Cuando termino el cálculo, en mi arreglo tengo las 10 mejores imágenes para una región y de ahí, elijo una al azar y ¡listo! Morsaico terminado.
En otra entrada del blog expliqué la necesidad de tener muchas imágenes para poder procesar los fotoMorsaicos. Claramente, mientras más imágenes se tengan, mejores serán los resultados. Mis alumnos reciben de mi parte (gratuitamente, antes de que alguien brinque con algún comentario absurdo), unas 60 mil imágenes de alta resolución, las cuales compré hace años (me gasté unos 200 dólares en ellas en su momento). Estas son básicamente The Big Box of Art y Art Explosion, amén de un disco con 5600 imágenes (la primera colección que usé y un CD con 10 mil imágenes que mi hermano Juan me consiguió en un viaje a Estados Unidos, y que le costó menos de 10 dólares.
Pues bien, regresando al problema, programé la idea de Andrés e hice una prueba. Puse la imagen de Lena, que se usa como el estándar de facto del Proceso Digital de Imágenes, y generé dos fotoMorsaicos: el primero (a la izquierda), poniendo la mejor foto siempre (aunque haya repeticiones) y un segundo Morsaico, que trabaja con la idea de poner una de las 10 mejores imágenes halladas para cada región.
Los resultados ilustran qué fotoMorsaico queda mejor (ver la imagen al inicio de este artículo). Ahora bien, aquí abajo puede verse una ampliación de la parte superior izquierda de la imagen procesada.
Nótese que en el Morsaico con repetición, se ve muy, pero muy repetidas las imágenes y esto tiende a ser monótono, aunque sea la opción estricta y rigorista a seguir. No obstante esto, el morsaico con no repeticiones (aunque se ven algunas, porque el morsaico elige al azar la foto que pondrá entre 10 mejores fotos y el algoritmo del azar de pronto repetirá alguna) -en mi opinión- se ve mejor aunque el criterio de selección sea más laxo.
La pregunta sería, ¿cuál le gusta más al lector?



1 comment:
Coincido contigo .. se ve mejor a pesar de todo .
Buen trabajo Manuel.
Saludos
Pablo Davalos
Post a Comment