Interpolación bilineal: Mejora de la resolución y claridad de la imagen mediante interpolación bilineal
Por Fouad Sabry
()
Información de este libro electrónico
Qué es la interpolación bilineal
En matemáticas, la interpolación bilineal es un método para interpolar funciones de dos variables utilizando interpolación lineal repetida. Generalmente se aplica a funciones muestreadas en una cuadrícula rectilínea 2D, aunque se puede generalizar a funciones definidas en los vértices de cuadriláteros convexos arbitrarios.
Cómo se beneficiará
(I) Insights y validaciones sobre los siguientes temas:
Capítulo 1: Interpolación bilineal
Capítulo 2: Interpolación
Capítulo 3: Lineal interpolación
Capítulo 4: Interpolación polinómica
Capítulo 5: Polinomio de Newton
Capítulo 6: Polinomio de Lagrange
Capítulo 7: Interpolación spline
Capítulo 8: Spline cúbico de Hermite
Capítulo 9: Interpolación trilineal
Capítulo 10: Interpolación bicúbica
(II) Respondiendo al público arriba preguntas sobre interpolación bilineal.
(III) Ejemplos del mundo real para el uso de interpolación bilineal en muchos campos.
Para quién es este libro
Profesionales, estudiantes de pregrado y posgrado, entusiastas, aficionados y aquellos que quieran ir más allá del conocimiento o información básica para cualquier tipo de Interpolación Bilineal.
Relacionado con Interpolación bilineal
Títulos en esta serie (100)
Histograma de imagen: Revelando conocimientos visuales, explorando las profundidades de los histogramas de imágenes en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesBanco de filtros: Información sobre las técnicas del banco de filtros de Computer Vision Calificación: 0 de 5 estrellas0 calificacionesEn Pintura: Cerrar brechas en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesFunción de combinación de colores: Comprensión de la sensibilidad espectral en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesRetinax: Revelando los secretos de la visión computacional con Retinex Calificación: 0 de 5 estrellas0 calificacionesVisión por computador: Explorando las profundidades de la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesVisión por computadora submarina: Explorando las profundidades de la visión por computadora debajo de las olas Calificación: 0 de 5 estrellas0 calificacionesVisión estéreo por computadora: Explorando la percepción de profundidad en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesSistema de gestión de color: Optimización de la percepción visual en entornos digitales Calificación: 0 de 5 estrellas0 calificacionesDifusión anisotrópica: Mejora del análisis de imágenes mediante difusión anisotrópica Calificación: 0 de 5 estrellas0 calificacionesEcualización de histograma: Mejora del contraste de la imagen para mejorar la percepción visual Calificación: 0 de 5 estrellas0 calificacionesReducción de ruido: Mejora de la claridad, técnicas avanzadas para la reducción del ruido en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesJoint Photographic Experts Group: Liberando el poder de los datos visuales con el estándar JPEG Calificación: 0 de 5 estrellas0 calificacionesMapeo de tonos: Mapeo de tonos: perspectivas iluminadoras en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesCorrección gamma: Mejora de la claridad visual en la visión por computadora: la técnica de corrección gamma Calificación: 0 de 5 estrellas0 calificacionesHomografía: Homografía: Transformaciones en Visión por Computador Calificación: 0 de 5 estrellas0 calificacionesTransformacion afin: Desbloqueo de perspectivas visuales: exploración de la transformación afín en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesTransformación de radón: Revelando patrones ocultos en datos visuales Calificación: 0 de 5 estrellas0 calificacionesMétodo de ajuste de nivel: Avances en la visión por computadora, exploración del método de conjunto de niveles Calificación: 0 de 5 estrellas0 calificacionesFiltro adaptativo: Mejora de la visión por computadora mediante filtrado adaptativo Calificación: 0 de 5 estrellas0 calificacionesTransformación dura: Revelando la magia de Hough Transform en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesPercepción visual: Información sobre el procesamiento visual computacional Calificación: 0 de 5 estrellas0 calificacionesModelo del sistema visual humano: Comprender la percepción y el procesamiento Calificación: 0 de 5 estrellas0 calificacionesCompresión de imagen: Técnicas eficientes para la optimización de datos visuales Calificación: 0 de 5 estrellas0 calificacionesEspacio de color: Explorando el espectro de la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesPerfil de color: Explorando la percepción y el análisis visual en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesModelo de apariencia de color: Comprensión de la percepción y la representación en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesTransformación de Hadamard: Revelando el poder de la transformación de Hadamard en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesLeast Squares: Técnicas de optimización para visión por computadora: métodos de mínimos cuadrados Calificación: 0 de 5 estrellas0 calificacionesAjuste del paquete: Optimización de datos visuales para una reconstrucción precisa Calificación: 0 de 5 estrellas0 calificaciones
Libros electrónicos relacionados
Transformación lineal directa: Aplicaciones prácticas y técnicas en visión por computadora. Calificación: 0 de 5 estrellas0 calificacionesGráficos por computadora bidimensionales: Explorando el ámbito visual: gráficos por computadora bidimensionales en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesMétodo de ajuste de nivel: Avances en la visión por computadora, exploración del método de conjunto de niveles Calificación: 0 de 5 estrellas0 calificacionesHomografía: Homografía: Transformaciones en Visión por Computador Calificación: 0 de 5 estrellas0 calificacionesTransformación de radón: Revelando patrones ocultos en datos visuales Calificación: 0 de 5 estrellas0 calificacionesAlgoritmo de la línea de Bresenham: Representación eficiente de líneas con píxeles perfectos para visión por computadora Calificación: 0 de 5 estrellas0 calificacionesModelo de cámara estenopeica: Comprender la perspectiva a través de la óptica computacional Calificación: 0 de 5 estrellas0 calificacionesTransformacion afin: Desbloqueo de perspectivas visuales: exploración de la transformación afín en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesPunto de Fuga: Explorando los límites de la visión: conocimientos de la informática Calificación: 0 de 5 estrellas0 calificacionesEcualización de histograma: Mejora del contraste de la imagen para mejorar la percepción visual Calificación: 0 de 5 estrellas0 calificacionesHashing geométrico: Algoritmos eficientes para el reconocimiento y la comparación de imágenes Calificación: 0 de 5 estrellas0 calificacionesEjercicios de Análisis Numérico Calificación: 0 de 5 estrellas0 calificacionesEspacio de escala: Explorando las dimensiones en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesModelado y renderizado basado en imágenes: Explorando el realismo visual: técnicas en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesCorrelación cruzada: Desbloqueo de patrones en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesAlgoritmo de dibujo lineal: Dominar técnicas para la representación de imágenes de precisión Calificación: 0 de 5 estrellas0 calificacionesEjercicios de Geometría Analítica Básica Calificación: 0 de 5 estrellas0 calificacionesTensor trifocal: Explorando la profundidad, el movimiento y la estructura en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesCampo de movimiento: Explorando la dinámica de la visión por computadora: campo de movimiento revelado Calificación: 0 de 5 estrellas0 calificacionesGráficos por computadora de radiosidad: Avances en la visualización a través de la radiosidad en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesEl Libro de Matemática: Volumen 2 Calificación: 0 de 5 estrellas0 calificacionesPartición del espacio binario: Explorando la partición del espacio binario: fundamentos y aplicaciones en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesAjuste del paquete: Optimización de datos visuales para una reconstrucción precisa Calificación: 0 de 5 estrellas0 calificacionesEjercicios de Funciones de Variables Múltiples Calificación: 0 de 5 estrellas0 calificacionesAproximaciones de pi Usando Python y Numpy Calificación: 0 de 5 estrellas0 calificacionesIntroducción a los números complejos Calificación: 0 de 5 estrellas0 calificacionesReconstrucción tridimensional multivista: Técnicas avanzadas de percepción espacial en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesIntroducción al Análisis Matemático Avanzado Calificación: 0 de 5 estrellas0 calificacionesIntroducción a la geometría analítica Calificación: 4 de 5 estrellas4/5Mosaico de documentos: Desbloqueo de información visual a través del mosaico de documentos Calificación: 0 de 5 estrellas0 calificaciones
Inteligencia (IA) y semántica para usted
Ciencias de la Computación en la escuela: Guía para enseñar mucho más que a programar Calificación: 5 de 5 estrellas5/5Dominando ChatGPT: Desbloquea el poder de la IA para mejorar la comunicación y las relaciones: Spanish Calificación: 3 de 5 estrellas3/5Metodología de la programación Calificación: 0 de 5 estrellas0 calificacionesCómo Ganar Dinero por Internet con Inteligencia Artificial Emprende tu negocio digital con ChatGPT, Escríbelo.ia, Playground AI, You.com, Canva, Midjourney, Dall-E 2, Amazon... Calificación: 0 de 5 estrellas0 calificacionesFundamentos de Programación: Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java Calificación: 0 de 5 estrellas0 calificacionesResumen CHAT GPT IA Revolución en 2023: Guía de la Tecnología CHAT GPT y su Impacto Social: Resumen Tecnológico, #1 Calificación: 0 de 5 estrellas0 calificacionesMáquinas como yo Calificación: 4 de 5 estrellas4/5Máquinas predictivas: La sencilla economía de la inteligencia artificial Calificación: 5 de 5 estrellas5/5Klara y el Sol Calificación: 5 de 5 estrellas5/5Introducción a la ingeniería Calificación: 0 de 5 estrellas0 calificacionesEl mito de la inteligencia artificial: Por qué las máquinas no pueden pensar como nosotros lo hacemos Calificación: 5 de 5 estrellas5/5Cómo usar Chatgpt para tu negocio Calificación: 0 de 5 estrellas0 calificacionesLaravel: Curso práctico de formación Calificación: 0 de 5 estrellas0 calificacionesChat GPT-4 para Principiantes: Chat GPT, #1 Calificación: 0 de 5 estrellas0 calificacionesMonetización de ChatGPT: aproveche el poder de AI: Spanish Calificación: 1 de 5 estrellas1/5Inteligencia Artificial Calificación: 4 de 5 estrellas4/5R en profundidad: Programación, gráficos y estadística Calificación: 0 de 5 estrellas0 calificacionesAprendizaje automático y profundo en python: Una mirada hacia la inteligencia artificial Calificación: 0 de 5 estrellas0 calificacionesIntroducción a la computación cuántica para ingenieros Calificación: 0 de 5 estrellas0 calificacionesInteligencia artificial: Casos prácticos con aprendizaje profundo Calificación: 4 de 5 estrellas4/5Cómo triunfar en Instagram usando ChatGPT: La guía definitiva para crear contenido impactante con ChatGPT Calificación: 0 de 5 estrellas0 calificacionesEscritura Creativa en la Era de la IA: Dominando la Colaboración con ChatGPT para Crear Libros Impactantes Calificación: 4 de 5 estrellas4/5Big data: La revolución de los datos masivos Calificación: 4 de 5 estrellas4/5GuíaBurros: Inteligencia Artificial: Su lado oscuro y el fin del principio Calificación: 0 de 5 estrellas0 calificacionesProgramacion Orientada a Objetos y Estructura de Datos a Fondo Calificación: 0 de 5 estrellas0 calificacionesMetodología de la Programación Orientada a Objetos Calificación: 0 de 5 estrellas0 calificacionesInteligencia artificial: la cuarta revolución industrial Calificación: 0 de 5 estrellas0 calificacionesArquitectura de computadoras Calificación: 0 de 5 estrellas0 calificaciones
Comentarios para Interpolación bilineal
0 clasificaciones0 comentarios
Vista previa del libro
Interpolación bilineal - Fouad Sabry
Capítulo 1: Interpolación bilineal
La interpolación bilineal es una técnica para interpolar funciones de dos variables (por ejemplo, x e y) mediante interpolación lineal repetida. A menudo se aplica a funciones muestreadas en una cuadrícula rectilínea 2D, pero se puede extender a funciones especificadas en los vértices de cuadriláteros convexos arbitrarios.
La interpolación bilineal se logra empleando interpolación lineal en una dirección y luego en la otra. Aunque cada paso es lineal en términos de valores muestreados y posición, la interpolación en su conjunto es cuadrática en términos de la ubicación de la muestra.
La interpolación bilineal es uno de los métodos de remuestreo fundamentales en la visión por computadora y el procesamiento de imágenes, donde también se conoce como filtrado bilineal y mapeo de texturas bilineales.
Supongamos que queremos determinar el valor de una función desconocida f en la posición (x, y), y).
Se supone que conocemos el valor de f en los cuatro puntos Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1) y Q22 = (x2, y2).
Primero, realizamos una interpolación lineal a lo largo del eje x. Esto lleva a
{\displaystyle {\begin{aligned}f(x,y_{1})={\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{11})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{21}),\\f(x,y_{2})={\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{12})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{22}).\end{aligned}}}A continuación, interpolamos a lo largo del eje Y para obtener la estimación adecuada:
{\displaystyle {\begin{aligned}f(x,y)&={\frac {y_{2}-y}{y_{2}-y_{1}}}f(x,y_{1})+{\frac {y-y_{1}}{y_{2}-y_{1}}}f(x,y_{2})\\&={\frac {y_{2}-y}{y_{2}-y_{1}}}\left({\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{11})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{21})\right)+{\frac {y-y_{1}}{y_{2}-y_{1}}}\left({\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{12})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{22})\right)\\&={\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}\left(f(Q_{11})(x_{2}-x)(y_{2}-y)+f(Q_{21})(x-x_{1})(y_{2}-y)+f(Q_{12})(x_{2}-x)(y-y_{1})+f(Q_{22})(x-x_{1})(y-y_{1})\right)\\&={\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}{\begin{bmatrix}x_{2}-x&x-x_{1}\end{bmatrix}}{\begin{bmatrix}f(Q_{11})&f(Q_{12})\\f(Q_{21})&f(Q_{22})\end{bmatrix}}{\begin{bmatrix}y_{2}-y\\y-y_{1}\end{bmatrix}}.\end{aligned}}}Tenga en cuenta que el resultado es idéntico si la interpolación se realiza primero a lo largo de la dirección y y luego a lo largo de la dirección x.
Alternativamente, la solución al problema de interpolación se puede expresar como un polinomio multilineal.
{\displaystyle f(x,y)\approx a_{00}+a_{10}x+a_{01}y+a_{11}xy,}donde los coeficientes se determinan a través de una solución de sistema lineal
{\displaystyle {\begin{aligned}{\begin{bmatrix}1&x_{1}&y_{1}&x_{1}y_{1}\\1&x_{1}&y_{2}&x_{1}y_{2}\\1&x_{2}&y_{1}&x_{2}y_{1}\\1&x_{2}&y_{2}&x_{2}y_{2}\end{bmatrix}}{\begin{bmatrix}a_{00}\\a_{10}\\a_{01}\\a_{11}\end{bmatrix}}={\begin{bmatrix}f(Q_{11})\\f(Q_{12})\\f(Q_{21})\\f(Q_{22})\end{bmatrix}},\end{aligned}}}dando el resultado
{\displaystyle {\begin{aligned}{\begin{bmatrix}a_{00}\\a_{10}\\a_{01}\\a_{11}\end{bmatrix}}={\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}{\begin{bmatrix}x_{2}y_{2}&-x_{2}y_{1}&-x_{1}y_{2}&x_{1}y_{1}\\-y_{2}&y_{1}&y_{2}&-y_{1}\\-x_{2}&x_{2}&x_{1}&-x_{1}\\1&-1&-1&1\end{bmatrix}}{\begin{bmatrix}f(Q_{11})\\f(Q_{12})\\f(Q_{21})\\f(Q_{22})\end{bmatrix}}.\end{aligned}}}La respuesta también se puede expresar como una media ponderada de los valores f (Q):
{\displaystyle f(x,y)\approx w_{11}f(Q_{11})+w_{12}f(Q_{12})+w_{21}f(Q_{21})+w_{22}f(Q_{22}),}Si la suma de los pesos es 1 y se cumple el sistema lineal transpuesto
{\displaystyle {\begin{bmatrix}1&1&1&1\\x_{1}&x_{1}&x_{2}&x_{2}\\y_{1}&y_{2}&y_{1}&y_{2}\\x_{1}y_{1}&x_{1}y_{2}&x_{2}y_{1}&x_{2}y_{2}\end{bmatrix}}{\begin{bmatrix}w_{11}\\w_{12}\\w_{21}\\w_{22}\end{bmatrix}}={\begin{bmatrix}1\\x\\y\\xy\end{bmatrix}},}dando el resultado
{\displaystyle {\begin{aligned}{\begin{bmatrix}w_{11}\\w_{21}\\w_{12}\\w_{22}\end{bmatrix}}={\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}{\begin{bmatrix}x_{2}y_{2}&-y_{2}&-x_{2}&1\\-x_{2}y_{1}&y_{1}&x_{2}&-1\\-x_{1}y_{2}&y_{2}&x_{1}&-1\\x_{1}y_{1}&-y_{1}&-x_{1}&1\end{bmatrix}}{\begin{bmatrix}1\\x\\y\\xy\end{bmatrix}},\end{aligned}}}lo que simplifica a
{\displaystyle {\begin{aligned}w_{11}&=(x_{2}-x)(y_{2}-y)/((x_{2}-x_{1})(y_{2}-y_{1})),\\w_{12}&=(x_{2}-x)(y-y_{1})/((x_{2}-x_{1})(y_{2}-y_{1})),\\w_{21}&=(x-x_{1})(y_{2}-y)/((x_{2}-x_{1})(y_{2}-y_{1})),\\w_{22}&=(x-x_{1})(y-y_{1})/((x_{2}-x_{1})(y_{2}-y_{1})),\end{aligned}}}coherente con el resultado de la interpolación lineal sucesiva. La colección de pesos también se puede interpretar como un conjunto de coordenadas baricéntricas para un rectángulo que se han generalizado.
Teniendo en cuenta lo anterior, tenemos
{\displaystyle {\begin{aligned}f(x,y)\approx {\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}{\begin{bmatrix}f(Q_{11})&f(Q_{12})&f(Q_{21})&f(Q_{22})\end{bmatrix}}{\begin{bmatrix}x_{2}y_{2}&-y_{2}&-x_{2}&1\\-x_{2}y_{1}&y_{1}&x_{2}&-1\\-x_{1}y_{2}&y_{2}&x_{1}&-1\\x_{1}y_{1}&-y_{1}&-x_{1}&1\end{bmatrix}}{\begin{bmatrix}1\\x\\y\\xy\end{bmatrix}}.\end{aligned}}}Si las cuatro posiciones en las que se conoce f son (0, 0), (1, 0), (0, 1) y (1, 1), entonces la fórmula de interpolación se reduce a
{\displaystyle f(x,y)\approx f(0,0)(1-x)(1-y)+f(1,0)x(1-y)+f(0,1)(1-x)y+f(1,1)xy,}En consecuencia, en las operaciones matriciales:
{\displaystyle f(x,y)\approx {\begin{bmatrix}1-x&x\end{bmatrix}}{\begin{bmatrix}f(0,0)&f(0,1)\\f(1,0)&f(1,1)\end{bmatrix}}{\begin{bmatrix}1-y\\y\end{bmatrix}}.}Además, reconocemos los pesos:
{\displaystyle {\begin{aligned}w_{11}&=(1-x)(1-y),\\w_{12}&=(1-x)y,\\w_{21}&=x(1-y),\\w_{22}&=xy.\end{aligned}}}Alternativamente, el interpolante cuadrado unitario se puede expresar como
{\displaystyle f(x,y)=a_{00}+a_{10}x+a_{01}y+a_{11}xy,}Dónde
{\displaystyle {\begin{aligned}a_{00}&=f(0,0),\\a_{10}&=f(1,0)-f(0,0),\\a_{01}&=f(0,1)-f(0,0),\\a_{11}&=f(1,1)-f(1,0)-f(0,1)+f(0,0).\end{aligned}}}Cuatro constantes corresponden al número de puntos de datos donde f se da en ambos casos.
Como su nombre lo indica, el interpolante bilineal no es lineal; No obstante, es lineal (es decir, afín) a lo largo de líneas paralelas al eje X o Y, si X o Y se mantienen constantes. La interpolante a lo largo de cualquier otra línea recta es cuadrática. Aunque la interpolación no es lineal en la ubicación (x e y), los valores de interpolación son lineales en un punto fijo, como se muestra en los cálculos (matrices) anteriores.
La interpolación bilineal produce el mismo resultado independientemente de qué eje se interpola primero y cuál se interpola en segundo lugar. Si hubiéramos realizado una interpolación lineal en la dirección y antes de la dirección x, la aproximación resultante habría sido la misma.
La interpolación se realiza utilizando un polinomio bilineal, que también satisface la ecuación de Laplace para una función armónica.
Su grafo es un parche de superficie de Bézier bilineal.
La interpolación no es invertible porque el interpolante asume cualquier valor (dentro de la envoltura convexa de los valores de los vértices) en un número infinito de puntos (creando ramas de hipérbolas).
Cuando la interpolación bilineal se utiliza simultáneamente a dos funciones, como cuando se interpola un campo vectorial, la interpolación es invertible (bajo ciertas condiciones). Específicamente, esta inversa se puede utilizar para determinar las coordenadas cuadradas unitarias
de un punto ubicado dentro de cualquier cuadrilátero convexo (considerando las coordenadas del cuadrilátero como un campo vectorial que se interpola bilinalmente en la unidad cuadrada). Con este método, la interpolación bilineal se puede aplicar a cualquier cuadrilátero convexo, sin embargo, el cálculo es sustancialmente más difícil si el cuadrilátero no es un paralelogramo. La transformación bilineal, la deformación bilineal o la distorsión bilineal describen el mapa resultante entre cuadriláteros.
Una alternativa es emplear un mapeo proyectivo entre un cuadrilátero y el cuadrado unitario, pero la interpolación resultante no será bilineal.
Cuando el cuadrilátero es un