Interpolación bicúbica

extensión de la interpolación spline cúbica

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.

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 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:

  1.  
  2.  
  3.  
  4.  

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

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  

Y otras cuatro ecuaciones para la derivada parcial en  :

  1.  
  2.  
  3.  
  4.  

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