viernes, 27 de agosto de 2010

C-El secreto del photoshop

El otro dia, hablando con un compañero, se vanagloriaba de las maravillas que hacia el photoshop. Para el era sorprendente que le dieras a un boton y pudieras mezclar 2 imagenes o que le dieras a otro y difuminara algunos colores para suavizar los tonos. Intente explicarle que la base de todo eso eran las matematicas y que, en realidad, los que diseñaron el programa y sus equivalentes eran mas matematicos que artistas de la imagen.
Buscando un tema para mi trabajo fin de master, me interese un poco en las imagenes y su relacion con los mensajes cifrados y estuve leyendo varios articulos interesantes sobre como se codifican las imagenes. De ahi obtuve la informacion que voy a exponeros de forma resumida para no daros el toston y que puede satisfacer vuestra curiosidad aceptablemente, asi como aportar alguna conversacion interesante, aunque no veo el marco adecuado: -Ayer me retoque los ojos rojos con una ecuacion bicubica. -Pues yo me retoque los michelines aplicando una curva de bezier.
Partiendo del origen de la informatica, que es el sistema binario, todo empezo cuando el 0 era el color blanco y el 1 el negro (o viceversa, que no lo recuerdo bien). De esta forma, cada pixel que formaba una imagen era representado por un numero binario simple y se guardaba una imagen en una matriz de numeros binarios. Asi diseñaba los primeros iconos en mi Amstrad CPC 64k y como venian definidos los primeros marcianitos.
El siguiente paso informatico fueron los 16 colores (2 elevado a 4), y cada pixel era representado por un numero con 4 digitos binarios, que representaban a los numeros del sistema hexadecimal {0,..,9,A,B,C,D,E,F}. Con estos colores se lograban verdaderas obras maestras y se empezaron a desarrollar las primeras aventuras graficas. Las fotos en blanco y negro, sin embargo, a veces tenian mucha mas calidad porque en vez de usar 16 colores, usaban 16 tonalidades en una escala de grises.
El paso siguiente fueron los 256 colores (2 elevado a 8). Esto ya daba una primera calidad en las imagenes dibujadas, pero seguia sin definir claramente las fotografias. A dia de hoy se usa para la mayoria de los iconos e imagenes que podemos observar en nuestros ordenadores por su buena relacion calidad-tamaño en memoria.
De ahi, el paso ultimo que voy a definir es el sistema RGB. Hay mas sofisticados, pero ya los usan profesionales y no es objetivo de esta entrada. El sistema RGB (Red, Green, Blue) se usa para descomponer un color en estos 3, graduando cada uno de ellos de 0 a 255. Para los que estudiamos la composicion de los colores en la escuela, nos extraña que se use el verde en vez del amarillo ya que todos sabemos que mezclando azul con amarillo resulta el color verde (tono limon, pero verde). Es algo que tengo pendiente para investigar, pero a dia de hoy no lo se.
Con este ultimo paso, se pasa de 2 elevado a 8 a 2 elevado a 24. Con esta variedad de tonalidades se consiguen practicamente todos los colores reales. Existen varias utilidades en internet donde se pueden mezclar los diferentes matices de RGB para conseguir el color deseado. Es una herramienta muy util para los colores de una pagina web donde se quieran usar varias tonalidades de un color.
Asi definimos, de manera superficial, que una fotografia digital es en realidad una matriz de numeros codificados de forma binaria. ¿Y que hace el photoshop? El photoshop usa patrones de reconocimiento de esos numeros y su relacion, usando aplicaciones que emplean algoritmos para conseguir lo deseado.
Pongamos como ejemplo lo que comentaba mi compañero sobre la suavizacion de bordes cuando retocaba una foto. El photoshop hace una pasada de reconocimiento y va calculando medias de tonalidades con respecto a los pixeles circundantes, cambiando el pixel original por esta media. Con esto se consigue que el "salto" de un borde en una figura, se "suavice".
Cuando se reduce una imagen de tamaño, se usa la misma tecnica. Se fracciona la imagen en submatrices de numeros y se hace una media de tonalidades de esas submatrices convirtiendola en un solo pixel. Podreis observar que reducir es un metodo que funciona muy bien, pero si se pretende aumentar el tamaño de la imagen... ya no queda tan bien.
Hay otras tecnicas de reduccion que se basan en que cada pixel es un numero binario. Eliminando el/los digitos menos significativos (los 0 y 1 finales de cada representacion), la variacion con el número original sera casi imperceptible para el ojo humano. Con estos bits que nos ahorramos, se reduce el tamaño de la imagen en memoria, conservando el mismo tamaño fisico.
En criptografia, tambien se ha usado este cambio, en vez de eliminacion, de los digitos menos significativos, para colocar en esas posiciones el contenido de un mensaje cifrado. De esta forma, se enviaban mensajes que eran las fotos de unas vacaciones, las cuales contenian en su interior secretos imaginables tan solo para los amantes de las novelas de espias.
Espero que el tema os haya resultado interesante.

1 comentario:

  1. Sí, interesante lo es, pero siempre se me dieron mal las matemáticas. Lástima que no me puedas explicar las dudas que me quedan con una caña delante. Queda pendiente para cuando vengas a Mallorca.

    ResponderEliminar