Implementaciones técnicas de escalamiento


15

Así que he visto bicúbicos y fractales listados como métodos para escalar fotos. ¿Cuáles son los detalles técnicos detrás de cómo funcionan y por qué / cuándo es uno mejor que el otro?


upsize: bilineal; reducción de tamaño: lanczos 3.

Respuestas:


15

En primer lugar, la ampliación de la imagen implica separar píxeles en una cantidad fija y llenar el espacio entre píxeles vecinos anteriores con contenido similar. Esto se puede hacer a través de la fabricación básica de píxeles (filtrado bicúbico), o por medios más complejos, como convertir la imagen en una representación vectorial y escalar en el espacio vectorial.

El filtrado bicúbico, junto con el filtrado bilineal, utiliza una curva de función relativamente simple para combinar los colores de los píxeles vecinos al ampliar una imagen. Bilinear usa una curva de función lineal, mientras que Bicubic usa una curva de función spline cúbica (cspline). La filtración bicúbica generalmente produce resultados más suaves, sin embargo, ambos algoritmos finalmente combinan los valores de los píxeles vecinos a través de una curva de función para "llenar los espacios" al agrandar una imagen. Cabe señalar que la escala bicúbica generalmente no tiene pérdidas, ya que solo se genera realmente el espacio entre los píxeles originales. Dependiendo de los matices de implementaciones específicas, los píxeles originales pueden cambiar ligeramente, sin embargo, en su mayor parte, los datos originales se conservan y se fabrican nuevos datos para completar a medida que se amplía la imagen.

El enfoque fractal para el escalado de imágenes adopta un enfoque completamente diferente. Se emplean algoritmos más complejos para analizar el contenido de una imagen, identificar bordes y "objetos" y, finalmente, convertir la imagen en un formato vectorial fractal. Una vez que la imagen se vectoriza, se puede escalar "sin pérdidas" en el espacio vectorial, y luego volver a renderizarla a un tamaño mayor. Los algoritmos fractales, como los fractales genuinos, utilizan un algoritmo de vector fractal para escalar una imagen mientras se mantienen los bordes suaves y afilados. Este enfoque es útil cuando su imagen inicialmente tiene bordes nítidos y reconocibles como factor clave, y es importante mantener una nitidez clara en esos bordes.

Además, Genuine Fractals intenta mantener los detalles sin bordes a través del concepto de "auto similitud", preservando los detalles al considerar que el contenido de la imagen es de naturaleza fractal y volviendo a representar el contenido sin bordes a partir de algoritmos fractales. Esto tiene el supuesto beneficio de que, en lugar de simplemente fabricar información a partir de píxeles vecinos, se puede generar nuevo contenido a partir de patrones compuestos por muchos píxeles. Este enfoque puede funcionar muy bien cuando se escala en un 200%, sin embargo, la naturaleza vectorial fundamental de la escala se hace más evidente cuando se escala a tamaños más grandes. También se debe tener en cuenta que este método de escala no es sin pérdidas, y algunos detalles de píxeles finos pueden descartarse a medida que el algoritmo intenta encontrar fractalespatrones que pueden ser replicados. El aumento de escala extremo puede resultar en una replicación visible del patrón, y los detalles de bordes finos pueden borrarse en un esfuerzo por mantener bordes suaves y nítidos en todos los tamaños de imagen.

BenVista también proporciona un algoritmo patentado denominado S-Spline. Hay poca información sobre los detalles de este algoritmo, sin embargo, parece otro algoritmo basado en la curva de función. El escalado S-Spline Max en PhotoZoom Pro, como Genuine Fractals, hace un trabajo excelente manteniendo la definición del borde. Este algoritmo también es capaz de escalar a alrededor del 200% más o menos, sin embargo, empujar este algoritmo mucho más lejos da como resultado una degradación y suavizado visibles de los detalles sin bordes. Parece que el compromiso general en los algoritmos de escalado es la definición máxima del borde o la máxima preservación de los detalles. También se debe tener en cuenta que la mayoría de los algoritmos de escalado de terceros, incluidos Genuine Fractals y BenVista PhotoZoom Pro, aplican automáticamente una máscara de enfoque a la imagen final de forma predeterminada.

Es posible usar bicubic de forma iterativa. El quid fundamental de la escala bicúbica es que fabrica más información cuanto mayor sea la escala, al máximo costo de nitidez. Al realizar una escala bicúbica en incrustaciones del 3-5%, conserva muchos más detalles originales o casi originales, y fabrica mucho menos de la imagen en cada paso. Los resultados finales de una escala bicúbica iterativa (o escalonada) pueden mantener una definición de borde considerablemente mayor, sin perder detalles finos. Sin embargo, el costo es una inversión personal mucho mayor en el escalado, ya que en este momento no hay aplicaciones prefabricadas que lo hagan por usted. Debe calcular manualmente el nuevo ancho y alto de la imagen en cada paso multiplicando el ancho o alto anterior por su porcentaje de escala y conectando ese número en su programa de edición de imágenes ' s herramienta de escala bicúbica. Los resultados finales pueden ser excelentes y tan nítidos como una imagen bicibic con máscara de enfoque. Los límites de cuánto más grande puede escalar una imagen sin detrimento visible es mucho mayor que otros algoritmos, al menos 400%, posiblemente más.


Hmm Sería bastante fácil crear esa escala iterativa de bicúbicos como una secuencia de comandos Gimp, o una acción de Photoshop ...
Lea el perfil

Lo he intentado como una acción de Photoshop, sin embargo, no tuve éxito, ya que requería información informática. Realmente no hago muchas secuencias de comandos con Photoshop, así que no estoy seguro de si admite funciones matemáticas o secuencias de comandos.
jrista

2
+1 Wow, fantástica respuesta detallada. Pensé que era una pregunta aburrida hasta que leí tu respuesta.
fmark

Acabo de probar el cambio de tamaño múltiple en Paint.net, pero los resultados no fueron como se indica en esta respuesta, la imagen redimensionada varias veces resultó tan borrosa que la misma imagen se volvió a muestrear solo una vez. Intenté con el mismo tamaño de imagen al 200% e iterativo 104% cada vez hasta alcanzar aproximadamente las mismas dimensiones de píxeles.
Jahaziel

1
Si desea un ejemplo de bicúbico iterativo hecho en una imagen que se benefició del método, mire mi análisis aquí: Estudio empírico
jrista
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.