Cosas tendiendo a cero

“She was a mink handjob in sarcophagus heels”

Interpolación en ampliación de imágenes

Publicado por Griseo Mitran en Febrero 21, 2008

La interpolación es una parte de las matemáticas (más concretamente de los métodos numéricos) por la que dada una nube de puntos (tal que a un xi le corresponde un yi) buscamos una función que nos una dichos puntos en el intervalo donde estén esos puntos.Es una técnica muy útil cuando uno quiere aproximar un nuevo punto a esa nube, es decir cuando dado un nuevo xi se quiere encontrar un yi tal que sea acorde con la forma del resto de puntos de la nube.

¿Para que nos puede servir esta utilidad? Pues hay múltiples aplicaciones: diseños de carreteras, estadística, diseño de gráficos en tres dimensiones,… El campo que voy a explicar en esta sección es el de ampliación de imágenes.

En el campo de la fotografía la interpolación se usa comúnmente para encontrar pixeles a partir de un conjunto de pixeles dados. Es decir cuando tienes una imagen tienes un conjunto, A, de pixeles, pero cuando la amplias si no la dotas de nuevos pixeles saldrán los mismos pixeles de antes más grandes, por tanto para ampliar una imagen de forma que siga conservando parte de su calidad es necesario “inventar” nuevos pixeles dependiendo del tipo de ampliación que le demos.

Existen diversos procedimientos de aproximación que se usan en este campo, he aquí algunos de los más famosos:

  • Interpolación por aproximación: Es de los métodos más antiguos. Su algoritmo es muy sencillo, se basa en obtener el promedio de los valores de los 2 pixeles más próximos para rellenar los huecos resultantes de la ampliación.
  • Interpolación bilineal: Es una mejora de la interpolación por aproximación, la mejora consiste que en vez de buscar el promedio de los valores de los 2 pixeles más próximos busca el de los 4 pixeles más próximos.
  • Interpolación bicúbica: Es el método de interpolación estándar (tambien llamado como promedia 16 pixeles adyacentes), se usa en programas como Adobe Photoshop o el Paint Shop Pro (dos programas muy demandados). Existen variantes de ésta, como la bicúbica enfocada o suavizada. La interpolación bicúbica es un tipo de interpolación espline, su algoritmo es mucho más complejo que los dos tipos anteriores. Básicamente el resultado de dicha interpolación son polinomios de grado 3 para cada intervalo de puntos, con una constante, a, tal que -1<= a < 0.
  • Interpolación en escalera: Es una de las variantes de la interpolación bicúbica. La interpolación en escalera es similar a la interpolación bicúbica salvo porque se va interpolando en incrementos de un 10% en cada paso con respecto al anterior.
  • Interpolación S-Spline: es una interpolación especial que ademas determina el color de un pixel desconocido basándose en el color de los pixeles que hay a su alrededor. Este método de interpolación nos da como resultado polinomios de grado 1 para cada intervalo de puntos, con varios coeficientes exponenciales. Se usa en programas como PhotoZoom o S-Spline (indudablemente).
  • Interpolación por Filtros Cúbicos Paramétricos de Mitchell-Netravali: Es una de las mejores interpolaciones, se encuentra a mitad de camino entre la acentuación de detalles (ringing) y la suavización de los mismos. Es un método bueno tanto para ampliación de imágenes como para reducción de éstas.
  • Interpolación Lanczos: Es un algoritmo de código libre y está disponible de forma gratuita en programas como IrfanView y en GIMP 2.3 (y posteriores versiones del mismo). Se basa en la calidad de la imagen y da resultados similares al método de Mitchell-Netravali. Lo malo de este algoritmo de interpolación es que los resultados pueden tener errores acumulados. En este método tridiagonalizamos una matriz de grandes dimensiones, encontrando una matriz con tridiagonal (diagonal principal, diagonal superior a la principal, y diagonal inferior a la principal) y simétrica. Para esa tridiagonalización se usan algoritmos de ortogonalización como el de Gram–Schmidt, dichos algoritmos de ortogonalización se basan en los datos del paso anterior al que hay que calcular. Así que si los primeros datos tienen errores numéricos, los siguientes los acumularan.
  • Interpolación Genuine Fractals: Para terminar, este método de interpolación que es considerado como el mejor de los actuales para la ampliación de imágenes. Su código no es libre, y el programa que lo usa es Genuine Fractals (como no). Esta disponible como plugin para Adobe Photoshop (pero aún así es necesario instalar el programa). Y aunque en algunas ocasiones Lanczos y Mitchell-Netravali obtienen mejores resultados, Genuine Fractals suele dar en la mayoría de casos ampliaciones de mayor calidad (hasta un 700% sin degradar la imagen). Es un programa relativamente caro (entre 200 y 350 euros dependiendo de la versión (normal o PrintPro)) con respecto a sus competidores Lanczos y Mitchell-Netravali.

Una respuesta a “Interpolación en ampliación de imágenes”

  1. Griseo Mitran Ne-Moro Dijo:

    Éste fue mi trabajo de métodos numéricos. Ya que termine la asignatura y tal he decidido colgarlo aquí y en mi blog de Sueños / Bridge of Jehennam (aunque en el blog de Sueños / Bridge of Jehennam lo colgaré seguramente mañana).

    El trabajo consistía en hacer como una especie de entrada de blog sobre algo relacionado con lo que se da en métodos numéricos. El trabajo me terminó gustando tanto que he decidido colgarlo como entrada.

Escribe un comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>