MiMoriarty

Trucos de diseño para diseñar como locos

Ojo con las imágenes aumentadas

Hace ya algunos años trabajando en una editorial multimedia lanzamos la clásica suite doméstica para retocar fotografías. Aquella suite llevaba escondido un potente algoritmo para aumentar el tamaño de las imágenes que, según palabras del product manager al cargo del producto, era mucho mejor que el usado en la suite de Adobe.

Dado que llevo bastante tiempo usando PhotoShop, me mostré bastante escéptico al respecto del funcionamiento del algoritmo. Y la prueba in situ de la que fui testigo tampoco sirvió para convertirme en un renegado de PhotoShop. Si bien la imagen redibujada a las mismas proporciones con el algoritmo de remuestreo bicúbico que incluía PhotoShop en aquellos momentos parecía menos nítida que la redimensionada con el algoritmo incluido en nuestro software, no tuve la oportunidad de analizar con detenimiento ambas imágenes para poder salir de dudas. Mi relación profesional con dicha editorial terminó poco tiempo después, por ese motivo, no tuve oportunidad de poner mis manos sobre el programa en cuestión y verificar si realmente habían encontrado la piedra filosofal de la ampliación de imágenes. Tampoco lo he visto posteriormente en el mercado, aunque esto no es prueba de que el software no llegase a funcionar correctamente.

Algoritmos de interpolación

Aumentar documentos de imagen de mapa de bits implica dibujar píxeles nuevos tomando como referencia los datos existentes en el documento original, este proceso se denomina interpolación (o redibujado de resamplig).

El éxito a la hora de aumentar una imagen depende de la información contenida en la imagen original y aplicar el algoritmo más adecuado para dicha información

Puesto que no soy una persona hábil en matemáticas voy a evitar introducir ecuaciones que puedo explicar. Por este motivo al final de la publicación encontraréis un apartado de referencias para que todos aquellos que estéis interesados podáis acceder a una explicación más detallada. Además debo aclarar que por motivos técnicos ajenos a mi voluntad, la inmensa mayoría de los programas aquí expuestos no son multiplataforma, no me ha sido posible probar todos las aplicaciones las que doy cuenta en esta publicación. Por tanto no trato tanto de comparar resultados como de informar de las técnicas y métodos.

Existen muchos métodos diferentes de interpolación. Entre los métodos disponibles en PhotoShop encontramos los siguientes: aproximación, bilinear y bicúbica (normal, suave y enfocada). Aproximación, es el método más rápido y que genera un fichero de menor tamaño, cada nuevo píxel asume el color del píxel más cercano, es decir, en un aumento del 200% el píxel se convertiría en cuatro del mismo color. El algoritmo bilinear realiza una interpolación de los cuatro píxeles más cercanos y evalúa dos funciones de interpolación lineales, primero en un sentido y después en otro dentro de las dos dimensiones de la imagen, este proceso genera una ampliación más suavizada, y representa un gran salto de calidad respecto al algoritmo de aproximación, pero acusa una perdida progresiva de los detalles. El método seleccionado por defecto en PhotoShop es interpolación bicúbica. Este algoritmo de interpolación multivariable utiliza los valores de los dieciseis píxeles adyacentes generando una imagen más precisa y suave. Sus variantes suave y enfocada están programadas específicamente para ampliar y reducir, respectivamente, documentos de imágen.

Arriba se muestran un par de ejemplos de interpolación sobre un 200% de la imagen izquierda. En el centro es posible apreciar el funcionamiento de la interpolación por aproximación. Para aumentar la imagen de la derecha se utilizó la interpolación bicúbica. Aún tendría más calidad se se hubiera utilizado interpolación bicúbica suave, según algunas fuentes el algoritmo que mejores resultados ofrece en cuanto a aumentar imágenes se refiere.

Hay que dejar claro que antes de aumentar o disminuir una imagen conviene prepararla primero para que el proceso de interpolación trabaje con la información más limpia posible.

Una práctica muy  extendida consiste en llevar acabo el proceso de ampliación de forma escalonada, por ejemplo aumentos de 10% hasta alcanzar la resolución de imagen necesaria

La vesión 11.0.1 de PhotoShop incluida en la Suite CS4 de Adobe contiene una novedad respecto a sus anteriores entregas denominada escala según el contenido. Este proceso de escalado protege las áreas más importantes de la imagen afectando principalmente a los píxeles situados en segundo plano o áreas de menor importancia visual, de esta forma s evitan muchas de las distorsiones típicas de los procesos de escalado. Además admite la utilización de canales alfa para hacer reservas de imagen. Este algoritmo, llamado seam carving (tallado de costuras) o retargeting, fue desarrollado por Shai Avidan y Ariel Shamir para Mitsubishi Electric Research Labs y posteriormente adaptado en el popular plug-in Liquid resize.

Existe gran cantidad de algoritmos creados para escalar imágenes, cada uno de ellos desarrollado para un propósito concreto, como por ejemplo los algoritmos de interpolación utilizados en emuladores de consolas y juegos de MS-DOS. EPX, Scale3x/AdcMAME3x, Eagle, 2xSaI y hqnx (donde n indica el factor de escalado: 2:1, 3:1, 4:1) usados en programas como ZSNES, ScummVM, MAME, Dosbox o Exult, han sido específicamente desarrollados para adaptar los bitmaps de baja resolución (líneas y curvas finas, colores contínuos, aliasing) a máquinas de prestaciones muy superiores. PixInsight es una herramienta desarrollada para trabajar con imágenes astronómicas usando versiones adaptadas de los algoritmos de interpolación por aproximación, bilinear, Spline y bicubicos. Existe además un amplio rango de funciones, filtros y algoritmos, como el Gaussian Resample, SmartEdge o RM-S-Spline que aún están en fase de desarrollo y no se integran dentro de ninguna aplicación de software.

Mención especial se merecen Lanczos resampling y la familia de algoritmos de interpolación basados en funciones spline. El algoritmo de interpolación Lanczos indica que píxeles de la imagen original y en que proporción  se utilizan para generar la imagen final. Para algunos este algoritmo es el mejor compromiso en términos de reducción de aliasing, nitidez y mínima generación de halos. La interpolación Spline es un algoritmo donde el interpolante es un tipo especial de polinomio llamado spline. La familia de interpolaciones Spline está formada por diferentes tipos: lineares, cuadráticas, cúbicas, naturales, B-spline, S-Spline, etc… Para quienes estéis relaccionados con el diseño 3D no será difícil imaginar una Spline puesto que las curvas NURBS (Non Rational Uniform  BSpline) usadas en programas como Maya, 3DMax o Softimage están compuestas por ellas. Para tener una idea de como funcionaría una interpolación spline pensad en una curva NURBS a la que le faltasen algunos puntos, bien, pues este algoritmo se encargaría de introducirlos preservando la curvatura definida por los vértices de control.

Además de redimensionar imágenes los algoritmos de interpolación se utilizan también en los motores 3D para reducir los bordes dentados en un método denominado anti-aliasing o supersampling

Otros softwares

  • Uno de los plug-ins que más adeptos está ganando día a día es Genuine Fractrals. Disponoble para PhotoShop fue desarrollado originalmente por el equipo de Steven Bender utilizando como eje centra el PIFS (Partitioned Iterated Function Systems).
  • PixInsight es un software desarrollado específicamente para el tratamiento de imágenes astronómicas. Para este trabajo emplea sus propias versiones adaptadas de los algoritmos de interpolación por aproximación, bilinear, bicúbica B-Spline, etc…
  • El Software PhotoZoom utiliza un método de interpolación con filtros S-Spline, uno de los filtros polinómicos más avanzados. Según las experiencias de personas que han tenido oportunidad de probarlo es capaz de obtener un gran nivel de detalle, aunque llevado a extremo tiende a producir un efecto acuarela en las imágenes.
  • Qimage es un software para impresión entre cuyas posibilidades está la de ampliar una imagen, usando para ello diversos algoritmos de interpolación, algunos de ellos bastante exitosos como Lanczos resamplig.
  • Optipix 3 es otro conjunto plug-ins entre los que se encuentra la opción de interpolación interactiva usando el algoritmo Lanczos resampling entre otros. El método utilizado para interpolar la imagen es un poco extraño pero después de experimentar un poco se consigue extraer un poco más de nitidez y enfoque a la interpolación bicúbica de PhotoShop, y eso que la demo que he tenido ocasión de probar tenía ya unos cuantos años. Aun así el resultado no parece demasiado prometedor y seguramente se podría conseguir un resultado parecido, sino mejor, con las herramientas que incorpora PhotoShop.
  • El editor de imágenes SAR Image Processor ofrece una amplia gama de métodos de interpolación entre los que se encuentran una adaptación de Lanczos resampling llamada Lanczos 3 o el algoritmo Iterated Function System.

De momento, mi elección es seguir usando PhotoShop. No dudo que pueda haber algoritmos más potentes o mejor capacitados para usos específicos, como los mencionados filtros para emuladores o programas dedicados a aplicaciones médicas y científicas, por nombrar algunos. Muchos de los softwares, plug-ins y algoritmos mencionados no son multilenguaje, difíciles y costosos de adquirir, y, más complicados de utilizar que los incorporados en PhotoShop. Aún así seguiré intentando encontrar aplicaciones que puedan ser útiles en este sentido, algunas de ellas mencionadas aquí, como Genuine Fractals de la que se hablan maravillas.

JoD

    Enlaces externos:

    2 comments on “Ojo con las imágenes aumentadas

    1. Arcangel
      April 25, 2010

      Gracias, Mickey

      Yo usaba siempre la interpolación bicúbica de photoshop pero ignoraba los efectos de las opciones de suavizado. Los tendré en cuenta a partir de ahora.

    2. Pingback: Más videos Youtube

    Leave a Reply

    Fill in your details below or click an icon to log in:

    WordPress.com Logo

    You are commenting using your WordPress.com account. Log Out / Change )

    Twitter picture

    You are commenting using your Twitter account. Log Out / Change )

    Facebook photo

    You are commenting using your Facebook account. Log Out / Change )

    Google+ photo

    You are commenting using your Google+ account. Log Out / Change )

    Connecting to %s

    Information

    This entry was posted on April 22, 2010 by in Conocimientos and tagged , , , , , .

    Top Rated

    April 2010
    M T W T F S S
    « Mar   May »
     1234
    567891011
    12131415161718
    19202122232425
    2627282930  
    %d bloggers like this: