martes, abril 11, 2006

Ampliando imágenes (II)

Poco ha durado en la parrilla televisiva la serie Numb3rs. Como suelen hacer los canales de este país, Antena 3 ha quitado la serie sin previo aviso. Una pena, ya que tenía una peculiar mezcla de malaciencia y buenaciencia. Hoy voy a comentar una escena de uno de los últimos episodios que pude ver. Al inicio del mismo, el FBI estaba revisando la grabación de una cámara de seguridad para intentar identificar a unos atracadores. Explicaban que estaban probando un novedoso algoritmo elaborado por el prota matemático, para compensar la pérdida de resolución al ampliar una imagen. El joven genio explicaba que estaba basado en la interpolación, y que se generaban nuevos píxeles utilizando la información de píxeles circundantes.

Al igual que en el episodio del matemático que intentaba demostrar la Hipótesis de Riemann, hay aciertos y fallos. El principal acierto es que se nos muestra (¡por fin!) la problemática de ampliar una imagen, alejándose del tópico de series y películas policiacas en las que en unos instantes se amplía una imagen hasta poder ver al asesino en el reflejo de unas gafas o un ojo, con todo detalle. Ya comenté en un envío anterior, con algún ejemplo gráfico, la imposibilidad de obtener determinado grado de detalle de una imagen, así que simplemente lo resumiré en una frase: falta de resolución. Si amplias una fotografía clásica en papel, llega un momento en que comienzas a ver el grano de la película fotográfica. Si amplías una imagen digital, verás los píxeles que la forman. Se pueden utilizar diversas técnicas para intentar mejorar la imagen, pero el problema de fondo es la falta de información para ello, por lo que cualquier algoritmo a utilizar debe adivinar o inventar en cierta medida la información que falta. Eso es la interpolación.

Así que el comentario del matemático, sobre un algoritmo de interpolación es también acertado, salvo por un detalle: presenta el hecho de utilizar los píxeles circundantes como algo novedoso. Y esto no es así. Cualquier algoritmo de interpolación necesita datos para recrear los que le faltan. Y esos datos son precisamente los procedentes del entorno más o menos cercano. En el caso de una imagen digital, ese entorno es precisamente los píxeles de alrededor al que estamos tratando de restaurar. Todo algoritmo de interpolación lo hace. Dependiendo del mismo, podrá utilizar sólo los más cercanos, o regiones más amplias, o incluso todos los píxeles de la imagen, pero siempre tendrá que basarse en la información proporcionada por el resto de píxeles. Así que el hecho de interpolar a partir de los píxeles circundantes, dista mucho de ser un descubrimiento.

En honor a la completitud, y dado que no lo mencioné en el primer envío sobre este tema, comentaré otra técnica con la que se pueden obtener impresionantes resultados: la deconvolución. ¿Eso qué es? Bueno, en matemáticas existe algo llamado convolución, que básicamente viene a representar una mezcla o superposición de dos funciones. Pensemos en términos de funciones: la información que queremos grabar es una función, pero a ella se superpone ruido (lente desenfocada, movimiento, etc) que sería otra función. Así que lo que realmente queda grabado es la mezcla o convolución de ambas funciones. Pues bien, la deconvolución es precisamente la operación inversa de la convolución. Se trata de obtener una de las funciones originales a partir de la mezcla y la otra función. Parece bastante claro que para poder hacerlo, es necesario conocer la función no deseada, es decir el ruido. Esto es algo que no se puede saber con exactitud, pero se pueden hacer buenas aproximaciones dependiendo de si lo que queramos corregir. Así, aplicaremos distinas funciones si tenemos una imagen desenfocada o una movida, por ejemplo. Y los resultados pueden ser sorprendentes.

Pero no hay que perder de vista que el problema que resuelve la deconvolución es otro distinto: desenfoque, movimiento, distorsión producida por la atmósfera... Pero no puede hacer milagros con la falta de resolución. La pérdida de información es un proceso irreversible. En el mejor de los casos, se puede sintetizar una información parecida a la original, pero nunca podrá recuperarse por completo. Como dije en aquel envío, de donde no hay, no se puede sacar.