Interpolación 2D con MATLAB

Ammar Ali 15 febrero 2024
Interpolación 2D con MATLAB

Este tutorial discutirá cómo encontrar la interpolación de datos 2D usando la función interp2() en MATLAB.

Encuentre la interpolación de datos 2D usando la función interp2() en MATLAB

Podemos usar la función incorporada de MATLAB, función interp2() para encontrar la interpolación de datos cuadriculados 2D en un formato de cuadrícula de malla. Por ejemplo, interpolemos sobre una cuadrícula usando el método predeterminado.

Vea el código a continuación.

clc
[x,y] = meshgrid(-3:3);
v = peaks(x,y);
figure
surf(x,y,v)
title('Original Sampling');
[xq,yq] = meshgrid(-3:0.25:3);
vq = interp2(x,y,v,xq,yq);
figure
surf(xq,yq,vq);
title('Linear Interpolation Using Finer Grid');

Producción:

interpolación usando el método predeterminado

En la salida, la imagen de la derecha es el resultado de la interpolación utilizando el método predeterminado.

Como puede ver, la imagen de salida tiene más puntos de datos en comparación con la original. El vector x e y son los arrays de entrada y deben tener el mismo tamaño.

El vector v contiene los valores de la muestra. Puede contener valores reales o complejos si v contiene números complejos.

Entonces, la función interp2() interpolará las partes real e imaginaria por separado. El vector xq y yq contienen los puntos de consulta, que pueden ser escalares, vectores, matrices o arreglos reales.

También podemos cambiar el método de interpolación definiendo el nuevo método como una cadena en la función interp2() como podemos establecer el método cúbico, más cercano o spline para la interpolación. Podemos usar la interpolación para refinar una imagen en escala de grises.

Si una imagen tiene menos píxeles, los detalles dentro de la imagen no serán visibles. En este caso, podemos utilizar la interpolación para aumentar la cantidad de píxeles para comprender la imagen.

Por ejemplo, carguemos una imagen en escala de grises en MATLAB y refinémosla usando la función interp2(). Vea el código a continuación.

clc
clear
load flujet.mat
colormap gray
v = single(X(200:300,1:25));
figure
imagesc(v);
axis off
title('Original Image')
vq = interp2(v,5);
figure
imagesc(vq);
axis off
title('Linear Interpolation')

Producción:

refinando la imagen usando interpolación

En la salida, la imagen de la derecha se refina mediante interpolación lineal. La función single() se utiliza para convertir los valores a precisión simple.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Vector