Interpolación bicúbica

De Wikipedia, la enciclopedia libre
Comparación de la interpolación bicúbica con algunas interpolaciones unidimensionales y bidimensionales. Los colores Negro y Rojo/Amarillo/Verde/Azul corresponden al punto interpolado y a las muestras vecinas, respectivamente.
Sus alturas sobre la referencia horizontal corresponden a sus valores

En matemáticas, la interpolación bicúbica es una extensión de la interpolación cúbica (un método para aplicar la interpolación cúbica a un conjunto de datos dispuestos en un retículo regular bidimensional. La superficie interpolada (es decir, la forma del núcleo, no la imagen) es más suave que las superficies correspondientes obtenidas por interpolación bilineal o por interpolación por el vecino más cercano. La interpolación bicúbica se puede lograr utilizando el algoritmo de interpolación polinómica de Lagrange, spline cúbico o convolución cúbica.

En procesamiento digital de imágenes, la interpolación bicúbica a menudo se elige en lugar de la interpolación bilineal o la del vecino más cercano en procesamiento de imágenes, cuando la velocidad del proceso no es un problema. A diferencia de la interpolación bilineal, que solo tiene en cuenta 4 píxeles (2×2), la interpolación bicúbica considera 16 píxeles (4×4). Las imágenes remuestreadas con interpolación bicúbica pueden presentar artefactos de interpolación diferentes, dependiendo de los valores de los parámetros b y c elegidos.

Computación[editar]

Interpolación bicúbica en el cuadrado que consta de 25 cuadrados unitarios unidos. Interpolación bicúbica según la implementación del programa Matplotlib. El color indica el valor de la función. Los puntos negros son las ubicaciones de los datos prescritos que se interpolan. Obsérvese cómo las muestras de color no son radialmente simétricas
Interpolación bilineal en el mismo conjunto de datos que el anterior. Las derivadas de la superficie no son continuas sobre los límites del cuadrado
Interpolación por el vecino más cercano en el mismo conjunto de datos que en el ejemplo anterior

Supóngase que los valores de la función y las derivadas , y se conocen en las cuatro esquinas , , y del cuadrado unitario. La superficie interpolada se puede expresar como

El problema de interpolación consiste en determinar los 16 coeficientes . Al hacer coincidir con los valores de la función se obtienen cuatro ecuaciones:

Asimismo, se generan ocho ecuaciones para las derivadas en las direcciones e :

Y otras cuatro ecuaciones para la derivada parcial en :

Las expresiones anteriores han utilizado las siguientes identidades:

Este procedimiento genera una superficie sobre el cuadrado unidad que es continua y tiene derivadas continuas. La interpolación bicúbica en un retículo regular de tamaño arbitrario se puede lograr uniendo dichas superficies bicúbicas, asegurando que las derivadas coincidan en los límites.

Agrupando los parámetros desconocidos en un vector

y dejando que

El sistema de ecuaciones anterior se puede reformular en una matriz para la ecuación lineal .

Al invertir la matriz se obtiene la ecuación lineal más manejable , donde

lo que permite calcular de forma rápida y sencilla.

Puede haber otra forma matricial concisa para 16 coeficientes:

o

dónde

Ampliación a retículos rectilíneos[editar]

A menudo, las aplicaciones requieren interpolación bicúbica utilizando datos en una cuadrícula rectilínea, en lugar de la unidad cuadrada. En este caso, las identidades de y pasan a ser

donde es el espaciado de la celda que contiene el punto y similar para . En este caso, el enfoque más práctico para calcular los coeficientes es dejar

y luego resolver con como antes. A continuación, las variables de interpolación normalizadas se calculan como

donde y son las coordenadas y de los puntos de la cuadrícula que rodean el punto . Entonces, la superficie de interpolación se convierte en

Obtención de las derivadas de valores de funciones[editar]

Si se desconocen las derivadas, normalmente se aproximan a partir de los valores de la función en puntos vecinos a las esquinas del cuadrado unitario, utilizando por ejemplo diferencias finitas.

Para encontrar cualquiera de las derivadas simples, o , usando ese método, se calcula la pendiente entre los dos puntos "circundantes" en el eje apropiado. Por ejemplo, para calcular para uno de los puntos, se debe buscar para los puntos a la izquierda y a la derecha del punto objetivo y calcular su pendiente, y proceder de manera similar para .

Para encontrar la derivada cruzada , se debe tomar la derivada en ambos ejes, uno cada vez. Por ejemplo, primero se puede usar el procedimiento para encontrar las derivadas de los puntos por encima y por debajo del punto objetivo, luego usar el procedimiento en esos valores (en lugar de, como es habitual, los valores de para esos puntos) para obtener el valor de para el punto objetivo. O se puede hacer en la dirección opuesta, calculando primero y luego a partir de ellos, dado que ambos métodos dan resultados equivalentes.

En los bordes del conjunto de datos, cuando faltan algunos de los puntos circundantes, los puntos faltantes se pueden aproximar mediante varios métodos. Un método simple y común es asumir que la pendiente desde el punto existente hasta el punto objetivo continúa sin cambios adicionales y utilizar esto para calcular un valor hipotético para el punto faltante.

Algoritmo de convolución bicúbica[editar]

La interpolación mediante spline bicúbico requiere la solución del sistema lineal descrito anteriormente para cada celda de la cuadrícula. Se puede obtener un interpolador con propiedades similares aplicando una convolución con el siguiente núcleo en ambas dimensiones:

donde generalmente se establece en −0,5 o −0,75. Téngase en cuenta que y para todos los números enteros distintos de cero .

Este enfoque fue propuesto por Keys, quien demostró que produce convergencia de tercer orden con respecto al intervalo de muestreo de la función original.[1]

Si se usa la notación matricial para el caso común , se puede expresar la ecuación de una manera más compacta:

para entre 0 y 1 para una dimensión. Téngase en cuenta que para la interpolación de convolución cúbica unidimensional se requieren 4 puntos de muestra. Para cada consulta se ubican dos muestras a su izquierda y dos muestras a su derecha. Estos puntos están indexados de −1 a 2 en este texto. La distancia desde el punto indexado con 0 hasta el punto de consulta se indica aquí mediante .

Para dos dimensiones, se aplica primero una vez en y nuevamente en :

Uso en gráficos por computadora[editar]

La mitad inferior de esta figura es una ampliación de la mitad superior, que muestra cómo se crea la aparente nitidez de la línea de la izquierda. La interpolación bicúbica provoca un sobrepaso del color, lo que aumenta la acutancia

El algoritmo bicúbico se utiliza con frecuencia para escalar imágenes y vídeos para su visualización (consúltese remuestreo de mapas de bits). Conserva los detalles finos mejor que el algoritmo de interpolación bilineal común.

Sin embargo, debido a los lóbulos negativos del núcleo, causa sobrepaso (halos). Esta circunstancia puede causar recorte y es un artefacto (véase también artefactos de anillo), pero aumenta la acutancia (nitidez aparente) y puede ser deseable.

Véase también[editar]

Referencias[editar]

  1. R. Keys (1981). «Cubic convolution interpolation for digital image processing». IEEE Transactions on Acoustics, Speech, and Signal Processing 29 (6): 1153-1160. Bibcode:1981ITASS..29.1153K. doi:10.1109/TASSP.1981.1163711. «citeseerx: 10.1.1.320.776». 

Enlaces externos[editar]