En las páginas de unocero hemos hablado de muchos tópicos en programación y hemos hecho incluso algunos retos al respecto. Hace tiempo se generó el reto de hacer el mejor fotomosaico y para ello se les dio a los concursantes una colección de 5544 imágenes. Aunque en número limitado, la idea era que todos los que entraran al reto de programación usaran la misma imagen y la misma colección de fotos para así poder hacer evaluaciones bajo los mismos parámetros.
Desde luego que hacer fotomosaicos requiere de muchas fotografías. Cuando inicié este proyecto compré de hecho dos colecciones de imágenes de 32 bits de color: “The Big Box of Art” y “Art Explosion”, las cuales sumadas eran alrededor de 50 mil imágenes de calidad. Pero aún con esta cantidad de imágenes, las posibilidades de repeticiones es grande, porque en las fotografías hay regiones que tienen una tonalidad, o un color determinado, y entonces, los cálculos que hace mi programa para elegir qué foto poner, pues se repiten ante la misma tonalidad o color. De hecho, si pensamos que hay 16 millones de colores, pues se necesitan muchas imágenes para hacer un mosaico razonablemente que no sea monótono, es decir, que no tenga muchas fotos repetidas.
Pero aparte de los fotomosaicos en color, también se pueden hacer en tonos de grises. Y para ello, se necesitan fotos de calidad que puedan pasarse a “blanco y negro”, aunque estrictamente estamos hablando de imágenes con 256 tonos de gris. Esto quiere decir que una imagen en promedio solamente tiene un tono de gris especpifico. Si tenemos 50 mil imágenes, en promedio habrá unas 195 imágenes por cada tono de gris y entonces las repeticiones de las mismas imágenes, en la creación de fotomosaicos, disminuye notablemente.
Convertir una imagen en color a tonos de gris no es difícil: se lee cada pixel en sus componentes (Rojo, Verde y Azul) y en ese mismo pixel se pone en cada componente el siguiente valor de Gris = (Rojo + Verde + Azul) div 3, donde “div” es la división entera. Así, me di a la tarea de pasar todas mis imágenes de color a tonos de gris. Mi software permite generar las imágenes en tonos de gris en alrededor de 16 imágenes por segundo en una máquina de escritorio con 6 núcleos, lo cual es relativamente potente y rápido. A quien le interese mi programa, puede descargar el software de este enlace.