Sunday, October 18, 2009

Fotos recursivas con colores reales

En este enlace escribí sobre la técnica de crear imágenes recursivas a color y los problemas inherentes en este tipo de problemas de procesamiento de imágenes. Una imagen recursiva es una imagen que está hecha con pequeñas imágenes, producto de la imagen original. En la recursión la definición alcanza a lo definido. Es como si dijéramos, al definir una mesa, como una mesa es una mesa. Y aunque en la primaria nos enseñaron que lo definido no podía ser parte de la definición, las funciones recursivas permiten una definición sin ambigüedades usando lo definido en la definición.

Por ejemplo, considérese la función matemática del factorial. Podemos definir el factorial de manera recursiva de la siguiente manera:

1. El factorial de 0 (cero), que se anota como 0! = 1
2. El factorial de n, donde n es un número entero, positivo, mayor o igual a cero se define como

n! = n * (n-1)!

Dicho de otra manera, el factorial de n es n multiplicado por el factorial del entero original menos una unidad.

Así entonces, si queremos sac ar, por ejemplo, 3!, guiándonos por la definición recursiva tendremos que hacer lo siguiente:
3! = 3 * (2)!

pero ¿cuál es el valor de 2!?
2! = 2 * (1)!

Y ¿cuál es el valor de 1!?

1! = 1 * (0)!

Y ya sabemos, por la definición recursiva, que 0! = 1. Entonces, tenemos que 1! = 1 * 1 = 1 y entonces 2! = 2 * 1 = 2, y con ese mismo procedimiento hallamos que 3! = 3 * 2 = 6. Por lo tanto, 3! = 6.

Pues bien, las fotos recursivas son fotos que están creadas por fotos, particularmente en este caso se usa la misma foto, con diferentes tonalidades de color para ponerlas en lugar de usar puntos para pintar la imagen.

En el caso del color hallamos que si queremos hacer una descripción de una imagen recursiva, para cada región de la foto que tomemos deberíamos poner un punto, una foto con el color exacto del punto que corresponde. Si hacemos esto, necesitaríamos unas 16 millones de fotos con todas las tonalidades posibles, pues ésta es la cantidad de colores que pueden desplegarse en una pantalla de computadora. Obviamente esto resulta poco práctico. Así que en el programa original tomé la decisión de usar la paletta webpalette, que es de colores pastel, pero que da 216 colores posibles para abarcar la gama de colores razonable para pintar una imagen. El sistema funciona razonablemente bien, pero entonces me pregunté si sería posible crear un programa pero sin usar la webpalette, sino solamente considerando los colores que me marca el sistema en cada región. Es decir, usar colores reales, los que aparecen en la foto y colocarlos en las fotografías filtradas con esos colores para que se vea "más real", por decirlo de alguna manera.

Puse manos a la obra y en una tarde (hoy domingo), modifiqué mi programa original de fotos recursivas a colores para crear uno que geenra imágenes con colores reales.

Hice algunas pruebas y he aquí los resultados:

(dar click a la imagen o aquí para verla en grande)


La diferencia no parece ser mucha pero sí creo que mejora sustancialmente el enfoque original.

A quien le interese este software, escríbame a morsa@la-morsa.com y a vuelta de correo recibirá el software con las explicaciones del caso, las limitaciones y los problemas que hay que considerar, los cuales estoy poniendo en la ayuda y máximo en un par de días quedará todo en su lugar.

No comments: