En el procesamiento de imágenes , la interpolación bicúbica suele elegirse en lugar de la interpolación bilineal o del vecino más cercano en el remuestreo de imágenes , cuando la velocidad 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 tener diferentes artefactos de interpolación , según los valores b y c elegidos.
Cálculo
Supóngase que los valores de la función y las derivadas , y son conocidos en los cuatro vértices , , y del cuadrado unitario. La superficie interpolada puede entonces escribirse como
El problema de interpolación consiste en determinar los 16 coeficientes . Al hacer coincidir los valores de la función con los de la función se obtienen cuatro ecuaciones:
Asimismo, ocho ecuaciones para las derivadas en las direcciones y :
Las expresiones anteriores han utilizado las siguientes identidades:
Este procedimiento produce una superficie en el cuadrado unitario que es continua y tiene derivadas continuas. La interpolación bicúbica en una cuadrícula regular de tamaño arbitrario se puede lograr juntando dichas superficies bicúbicas, asegurándose de que las derivadas coincidan en los límites.
Agrupar los parámetros desconocidos en un vector
y dejar que
el sistema de ecuaciones anterior se pueda reformular en una matriz para la ecuación lineal .
Invertir la matriz da como resultado la ecuación lineal más útil , donde
α permite calcularla de forma rápida y sencilla.
Puede haber otra forma matricial concisa para 16 coeficientes:
o
donde
Extensión a rejillas rectilíneas
A menudo, las aplicaciones requieren una interpolación bicúbica utilizando datos en una cuadrícula rectilínea, en lugar del cuadrado unitario. En este caso, las identidades para y se convierten
en 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
que luego se resuelva 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 . Luego, la superficie de interpolación se convierte en
Encontrar derivadas a partir de valores de funciones
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, por ejemplo, utilizando diferencias finitas .
Para hallar cualquiera de las derivadas simples, o , utilizando ese método, encuentre la pendiente entre los dos puntos circundantes en el eje apropiado. Por ejemplo, para calcular para uno de los puntos, encuentre para los puntos a la izquierda y a la derecha del punto de destino y calcule su pendiente, y de manera similar para .
Para hallar la derivada cruzada , se toma la derivada en ambos ejes, uno a la vez. Por ejemplo, primero se puede utilizar el procedimiento para hallar las derivadas de los puntos por encima y por debajo del punto de destino, y luego utilizar el procedimiento sobre esos valores (en lugar de, como es habitual, los valores de para esos puntos) para obtener el valor de para el punto de destino. (O se puede hacer en la dirección opuesta, calculando primero y luego a partir de ellos. Los dos dan resultados equivalentes).
En los bordes del conjunto de datos, cuando faltan algunos de los puntos circundantes, se pueden aproximar los puntos faltantes mediante varios métodos. Un método simple y común es suponer que la pendiente desde el punto existente hasta el punto objetivo continúa sin cambios adicionales y usar esto para calcular un valor hipotético para el punto faltante.
Algoritmo de convolución bicúbica
La interpolación spline bicúbica 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 normalmente se establece en −0,5 o −0,75. Tenga 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 utilizamos la notación matricial para el caso común , podemos expresar la ecuación de una manera más amigable:
para entre 0 y 1 para una dimensión. Tenga 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 denota aquí por .
Para dos dimensiones aplicadas primero una vez y otra vez en :
Uso en gráficos por computadora
El algoritmo bicúbico se utiliza con frecuencia para escalar imágenes y vídeos para su visualización (consulte remuestreo de mapas de bits ). Conserva los detalles finos mejor que el algoritmo bilineal común .
Sin embargo, debido a los lóbulos negativos del núcleo, se produce un sobreimpulso (aureola). Esto puede provocar recortes y es un artefacto (consulte también artefactos de anillado ), pero aumenta la agudeza (nitidez aparente) y puede ser deseable.
^ R. Keys (1981). "Interpolación de convolución cúbica para procesamiento de imágenes digitales". IEEE Transactions on Acoustics, Speech, and Signal Processing . 29 (6): 1153–1160. Bibcode :1981ITASS..29.1153K. CiteSeerX 10.1.1.320.776 . doi :10.1109/TASSP.1981.1163711.
Enlaces externos
Aplicación de la interpolación a muestras de elevación
Teoría de interpolación
Explicación e implementación en Java/C++ de la interpolación (bi)cúbica
Función de la hoja de cálculo de Excel para la interpolación bicúbica de Lagrange