En matemáticas , la interpolación bicúbica es una extensión de la interpolación cúbica (que no debe confundirse con la interpolación spline cúbica, consulte spline cúbica ) para interpolar puntos de datos en una cuadrícula regular bidimensional . La superficie interpolada es más suave que las superficies correspondientes obtenidas por interpolación bilineal o interpolación del vecino más cercano . La interpolación bicúbica se puede lograr utilizando polinomios de Lagrange , splines cúbicos o algoritmo de convolución cúbica .
Comparación de la
interpolación bicúbica con algunas
interpolaciones de 1 y 2 dimensiones.
Los puntos
negros y
rojos /
amarillos /
verdes /
azules corresponden al punto interpolado y a las muestras vecinas, respectivamente.
Sus alturas sobre el suelo corresponden a sus valores.
En el procesamiento de imágenes , la interpolación bicúbica a menudo se elige sobre 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 son más suaves y tienen menos artefactos de interpolación .
CálculoInterpolación bicúbica en el cuadrado
que consta de 25 cuadrados unitarios remendados. Interpolación bicúbica según la implementación de
Matplotlib . El color indica el valor de la función. Los puntos negros son las ubicaciones de los datos prescritos que se están interpolando. Tenga en cuenta que las muestras de color no son radialmente simétricas.
Interpolación bilineal en el mismo conjunto de datos anterior. Las derivadas de la superficie no son continuas sobre los límites del cuadrado.
Suponga que los valores de la función y los derivados , y son conocidos en las cuatro esquinas , , , y del cuadrado de la unidad. La superficie interpolada se puede escribir como
El problema de interpolación consiste en determinar los 16 coeficientes . Pareo con los valores de la función se obtienen cuatro ecuaciones:
Asimismo, ocho ecuaciones para las derivadas en el y el direcciones:
Y cuatro ecuaciones para el derivada parcial mixta :
Las expresiones anteriores han utilizado las siguientes identidades:
Este procedimiento produce una superficie en el cuadrado de la unidad que es continua y tiene derivadas continuas. La interpolación bicúbica en una cuadrícula regular de tamaño arbitrario se puede lograr uniendo dichas superficies bicúbicas, asegurando que las derivadas coincidan en los límites.
Agrupar los parámetros desconocidos en un vector
y dejando
el sistema de ecuaciones anterior se puede reformular en una matriz para la ecuación lineal .
Invertir la matriz da la ecuación lineal más útil , dónde
Que permite para ser calculado rápida y fácilmente.
Puede haber otra forma de matriz concisa para 16 coeficientes:
o
dónde
Extensión a rejillas rectilíneasA menudo, las aplicaciones requieren la 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 volverse
dónde 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
luego para resolver con como antes. A continuación, las variables de interpolación normalizadas se calculan como
- ,
dónde y son los y coordenadas de los puntos de la cuadrícula que rodean el punto . Entonces, la superficie de interpolación se convierte en
Encontrar derivadas a partir de valores de funcionesSi 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 encontrar cualquiera de las derivadas simples, o , usando 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 derecha del punto de destino y calcular su pendiente, y de manera similar para .
Para encontrar la derivada cruzada , tome la derivada en ambos ejes, uno a la vez. Por ejemplo, primero se puede utilizar el procedimiento para encontrar el derivadas de los puntos por encima y por debajo del punto de destino, luego utilice el procedimiento sobre esos valores (en lugar de, como de costumbre, los valores de para esos puntos) para obtener el valor de para el punto de destino. (O uno puede hacerlo en la dirección opuesta, primero calculando y entonces de aquellos. Los dos dan resultados equivalentes).
En los bordes del conjunto de datos, cuando a uno le faltan algunos de los puntos circundantes, los puntos que faltan 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 más cambios, y usar esto para calcular un valor hipotético para el punto faltante.
Algoritmo de convolución bicúbicaLa interpolación de splines bicúbicos 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:
dónde generalmente se establece en −0,5 o −0,75. Tenga en cuenta que y para todos los 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 usamos la notación matricial para el caso común , podemos expresar la ecuación de una manera más amigable:
por 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 la 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 por aquí.
Para dos dimensiones aplicadas por primera vez una vez en y de nuevo en :
Uso en gráficos por computadoraLa 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 sobreimpulso, lo que aumenta la
agudeza .
El algoritmo bicúbico se usa con frecuencia para escalar imágenes y videos para su visualización (ver remuestreo de mapa de bits ). Conserva los detalles finos mejor que el algoritmo bilineal común .
Sin embargo, debido a los lóbulos negativos en el núcleo, provoca un sobreimpulso (halo). Esto puede causar recorte y es un artefacto (ver también artefactos de timbre ), pero aumenta la agudeza (nitidez aparente) y puede ser deseable.
Ver también- Portal de matemáticas
Referencias- ^ R. Keys (1981). "Interpolación de convolución cúbica para procesamiento de imágenes digitales". Transacciones IEEE sobre acústica, habla y procesamiento de señales . 29 (6): 1153-1160. Código bibliográfico : 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 la interpolación
- Explicación e implementación Java / C ++ de la interpolación (bi) cúbica
- Función de hoja de cálculo de Excel para la interpolación bicúbica de Lagrange