Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Programación lúdica: Más sobre dithering y semitonos

Hace tiempo, un par de años, quizás más, hablamos de mi programa de semitonos. Se trata de filtrar una imagen en tonos de gris a...

lenna-semitonos00

Hace tiempo, un par de años, quizás más, hablamos de mi programa de semitonos. Se trata de filtrar una imagen en tonos de gris a una versión donde no existen esos matices, sino que solamente hay blanco y negro, tinta y no tinta, pues. La industria editorial por años manejó esta idea, pues las fotografías tenían que pasarse a blanco y negro y las impresoras para estas labores no tenían las capacidades para imprimir en color . Estrictamente estamos hablando de ditherización, aunque ésta puede incluir también difusión de errores, como en la matriz de Floyd-Steinberg, que quizás analice pronto en otro apasionante capítulo de la programación lúdica.

En el caso de los semitonos, lo que hice fue generar una biblioteca de imágenes que estaba compuesta por cuadrados, todos del mismo tamaño, en donde en cada uno de ellos había un círculo negro. Cada círculo cambiaba en su radio hasta desaparecer. Una de las imágenes era pues, un cuadro blanco (con un círculo negro infinitamente pequeño, valga la expresión). Pero una idea diferente pasó por mi cabeza mientras leía sobre este asunto en la biblia de la computación gráfica. ¿Qué tal usar una cuadrícula de 2×2 y 3×3 y poner puntos en la misma. He aquí las dos bibliotecas de imágenes:

(archivo de imágenes: img2.idx):

dithering01

(archivo de imágenes: img10.idx):

 

dithering02

La biblioteca por omisión fue ésta  (archivo de imágenes: imagen4.idx):

semitonos-imagenes

Tuve que modificar mi programa para usar una biblioteca distinta a la que tenía por omisión, que era la de los círculos negros de radios que se iban haciendo más pequeños. Una vez que esto funcionó, probé el software con la foto de Ilse para comparar resultados.

Obsérvese el procesamiento usando las diferentes bibliotecas, ¿cuál le parece mejor?

Imagen Ilse10 (usando img10.idx):

ilse10a-min

Imagen Ilse2 (usando img2.idx):

ilse2a-min

Imagen Ilse4 (usando imagen4.idx):
ilse4a-min
¿Cuál de estas imágenes le parece mejor?

A quien le interese el programa, pídamelo a [email protected] y le mandaré el programa ejecutable y las imágenes de Ilse del tamaño en que se generaron (aquí en unocero las pongo de menor resolución para que no se tarden tanto en cargar).

Comentarios