Interpolación bilineal - en matemáticas computacionales - una generalización de la interpolación lineal de una variable para funciones de dos variables.
La generalización se basa en aplicar la interpolación lineal habitual primero en la dirección de una de las coordenadas y luego en la dirección perpendicular.
La función de interpolación bilineal tiene la forma:
e interpola los valores de la función original de dos variables en un rectángulo arbitrario por sus cuatro valores en los vértices del rectángulo y extrapola la función al resto de la superficie.
Digamos que es necesario interpolar el valor de la función en el punto . Los valores de la función en los puntos que rodean el punto y son conocidos (Fig. 1).
El primer paso interpola linealmente el valor de los puntos auxiliares y a lo largo del eje de abscisas , donde
Ahora se realiza una interpolación lineal entre los puntos auxiliares y .
Este es el valor interpolado (extrapolado) de la función , y los valores de la función de interpolación son iguales a los valores de la función interpolada en los puntos iniciales :
De otra forma equivalente, los coeficientes desconocidos de la función interpoladora ( interpolant ) se pueden encontrar a partir de resolver un sistema de ecuaciones lineales con respecto a los coeficientes de la interpolante :
En un caso particular, cuando se conocen los valores de la función interpolada en los puntos que son los vértices del cuadrado unitario con las coordenadas de los vértices (0, 0), (0, 1), (1, 0) , y (1, 1), la fórmula de interpolación bilineal se simplifica a:
O en la notación de multiplicación de vectores por una matriz :
Tenga en cuenta que el interpolante en sí no es lineal, sino bilineal:
dónde
.El resultado de la interpolación bilineal no depende del orden de los pasos a lo largo de las coordenadas. Es posible interpolar primero entre puntos dados a lo largo del eje de ordenadas y luego, habiendo obtenido dos valores auxiliares, interpolar entre ellos a lo largo del eje de abscisas .
El interpolador de interpolación bilineal se puede escribir como:
en consecuencia, el interpolante de una interpolación trilineal de una función de tres variables se escribe como:
Los coeficientes desconocidos se obtienen a partir de la solución de un sistema de 8 ecuaciones lineales utilizando los valores conocidos de la función interpolada en 8 puntos pertenecientes a los vértices de un paralelepípedo rectangular en coordenadas :
En el caso de interpolación lineal de una función de variables, el interpolante lineal será:
Los coeficientes de interpolación se obtienen a partir de la solución de un sistema de ecuaciones lineales utilizando valores conocidos de la función interpolada en los vértices de un hiperparalelepípedo rectangular.
La interpolación bilineal se utiliza en el procesamiento de datos numéricos, en meteorología e hidrodinámica , la resistencia de materiales , en gráficos por computadora , para compensar errores en el movimiento de herramientas a lo largo de coordenadas en máquinas CNC , etc.
Además de la interpolación de un campo bidimensional escalar, es decir, una función de dos variables (coordenadas), la interpolación bilineal también se utiliza para interpolar campos vectoriales bidimensionales. Con tal interpolación, se interpolan ambos componentes del campo vectorial: las proyecciones del vector en los puntos del eje de coordenadas. El resultado de la interpolación de dos funciones escalares - componentes vectoriales, genera un vector interpolado.
Este enfoque se utiliza en meteorología para construir un mapa de viento interpolado en un área rectangular basado en los datos medidos de los valores del vector de viento en los puntos de referencia que pertenecen a los vértices del rectángulo [1] .
En gráficos por computadora, la interpolación bilineal, junto con otros métodos de interpolación, se ha generalizado en el proceso de remuestreo (o, más simplemente, escalado) de imágenes. La interpolación bilineal en aplicaciones de procesamiento de imágenes se denomina comúnmente " filtrado bilineal ". El uso de este método se debe a la relativamente baja intensidad de recursos computacionales, lo que reduce el tiempo de remuestreo con una calidad de procesamiento de imágenes satisfactoria.
La necesidad de la interpolación de colores en el procesamiento digital de imágenes se debe a que con un simple aumento de imágenes sin procesar se produce una fuerte pixelación de la imagen.
La interpolación bilineal es uno de los métodos de interpolación y se utiliza para calcular los colores de los píxeles adicionales ( ) en relación con los principales de origen especificados en la imagen original con coordenadas de color conocidas y las coordenadas de color de los píxeles que se encuentran dentro del rectángulo con el las coordenadas de color dadas en sus vértices, o una coordenada de color en el caso de imágenes en escala de grises , se calculan en todos los puntos entre los puntos de anclaje, lo que permite suavizar los bordes afilados entre los píxeles de la imagen original. Los valores de la función en este caso se calculan a partir de las coordenadas de color de los puntos de referencia. En este caso, el lado del cuadrado formado por cuatro puntos principales adyacentes en consideración se suele tomar como uno solo.
La desventaja del método de interpolación bilineal al escalar imágenesEl principal inconveniente del método de interpolación bilineal al escalar imágenes es que si la imagen original se amplía por un factor de 1, el resultado será una imagen dimensionada no por píxeles, sino por píxeles.
Esto se debe a que en la imagen original, por ejemplo, hay puntos en horizontal, es decir, pares adyacentes. Cuando la imagen se amplía por un factor, se insertan puntos adicionales entre cada par de puntos principales (es decir, cuando se amplía dos veces, se inserta un punto más entre los puntos principales, cuando se amplía tres veces, dos más, etc.). En total, como resultado, el ancho de la imagen resultante será igual a la suma del número de puntos principales y adicionales:
.En pocas palabras, para los píxeles a lo largo de los bordes de la imagen (en cada fila y columna) de la imagen original, no hay ningún par con el que interpolar.
Para sortear esta limitación, en primer lugar, se suele suponer que en las imágenes de origen y recibidas, los valores de color de los píxeles se muestrean desde sus centros en lugar de desde las esquinas, es decir, por ejemplo, si tomamos la longitud absoluta y el ancho de la imagen sea 1, en una imagen de tamaño 2 por 2, las coordenadas de los puntos originales son (0,25; 0,25), (0,25; 0,75), (0,75; 0,25) y (0,75; 0,75) en lugar de ( 0; 0), (0; 0,5), (0,5; 0) y (0,5; 0,5) (corrección de muestreo). Así, se asegura el correcto centrado de la imagen durante el escalado, pero no sólo la última fila y la última columna resultan problemáticas, sino que todos los píxeles de contorno de la imagen resultante lo son por igual, porque sus coordenadas quedan fuera del rectángulo que delimita. los puntos de muestreo de la imagen original (por ejemplo, al escalar a 4 en 4, debe calcular los valores en los puntos (0.125; 0.125), (0.125; 0.875), etc.). Luego, dado que los valores en estos puntos no se pueden interpolar, debe expandir la imagen original de una de las siguientes maneras (cuya elección depende de cómo se use más la imagen):
Luego de dicho preprocesamiento, se aplica el procedimiento de interpolación bilineal en su forma original, obteniendo una imagen del tamaño esperado ( by ).