Interpolación bilineal

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 25 de noviembre de 2019; las comprobaciones requieren 2 ediciones .

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.

El principio de construcción de interpolación bilineal

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 .

Generalización de la interpolación bilineal a funciones de tres o más variables

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.

Uso de interpolación bilineal

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.

Interpolación bilineal de campos vectoriales bidimensionales

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] .

Interpolación bilineal en gráficos por computadora

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ágenes

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

  • Extrapolación de valores de píxeles de borde;
  • Refleje la imagen original alrededor de cada borde y centre alrededor de las esquinas. Los valores de píxeles que faltan son copias de los valores de píxeles del mismo borde; por lo tanto, los píxeles que quedan fuera de las coordenadas originales son interpolantes solo en una dimensión y, en la otra, copias de los valores de los bordes;
  • Teselado de la imagen original: las copias de la imagen original se "pegan" de extremo a extremo en cada borde y esquina. Como valores de color de los píxeles que faltan, por lo tanto, se utilizan los valores de los píxeles del borde opuesto. El método es adecuado si la propia imagen interpolada se utilizará para la teselación (por ejemplo, para rellenar polígonos al texturizar ).

Luego de dicho preprocesamiento, se aplica el procedimiento de interpolación bilineal en su forma original, obteniendo una imagen del tamaño esperado ( by ).

Véase también

Notas

  1. Análisis objetivo de los campos meteorológicos . Fecha de acceso: 12 de febrero de 2018. Archivado desde el original el 13 de febrero de 2018.