stringtranslate.com

Interpolación bicúbica

Comparación de la interpolación bicúbica con algunas interpolaciones unidimensionales y bidimensionales. 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 matemáticas , la interpolación bicúbica es una extensión de la interpolación spline cúbica (un método de aplicación de la interpolación cúbica a un conjunto de datos) para interpolar puntos de datos en una cuadrícula 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 interpolación del vecino más cercano . La interpolación bicúbica se puede lograr utilizando polinomios de Lagrange , splines cúbicos o algoritmos de convolución cúbica.

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

Interpolación bicúbica en el cuadrado que consta de 25 cuadrados unitarios unidos entre sí. 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 interpolan. Observe 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 en los límites de los cuadrados.
Interpolación del vecino más cercano en el mismo conjunto de datos que el anterior.

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 relacionarlos con los valores de la función se obtienen cuatro ecuaciones:

Asimismo, ocho ecuaciones para las derivadas en las direcciones y :

Y cuatro ecuaciones para la derivada parcial mixta :

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 en y otra vez en :

Uso en gráficos por computadora

La mitad inferior de esta figura es una ampliación de la mitad superior, que muestra cómo se crea la nitidez aparente 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 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.

Véase también

Referencias

  1. ^ 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