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