Interpolation 2D avec MATLAB
Ce tutoriel abordera la recherche de l’interpolation de données 2D à l’aide de la fonction interp2()
dans MATLAB.
Trouvez l’interpolation de données 2D à l’aide de la fonction interp2()
dans MATLAB
Nous pouvons utiliser la fonction intégrée interp2()
de MATLAB pour trouver l’interpolation de données maillées 2D dans un format de grille maillée. Par exemple, interpolons sur une grille en utilisant la méthode par défaut.
Voir le code ci-dessous.
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');
Production :
Dans la sortie, l’image de droite est le résultat d’une interpolation utilisant la méthode par défaut.
Comme vous pouvez le voir, l’image de sortie a plus de points de données par rapport à l’original. Les vecteurs x et y sont les matrices d’entrée, et ils doivent avoir la même taille.
Le vecteur v contient les valeurs d’échantillon. Il peut contenir des valeurs réelles ou complexes si v contient des nombres complexes.
Ensuite, la fonction interp2()
interpolera les parties réelle et imaginaire séparément. Les vecteurs xq
et yq
contiennent les points de requête, qui peuvent être de vrais scalaires, vecteurs, matrices ou tableaux.
Nous pouvons également modifier la méthode d’interpolation en définissant la nouvelle méthode en tant que chaîne dans la fonction interp2()
comme nous pouvons définir la méthode cubique, la plus proche ou la spline pour l’interpolation. Nous pouvons utiliser l’interpolation pour affiner une image en niveaux de gris.
Si une image a moins de pixels, les détails à l’intérieur de l’image ne seront pas visibles. Dans ce cas, nous pouvons utiliser l’interpolation pour augmenter le nombre de pixels pour comprendre l’image.
Par exemple, chargeons une image en niveaux de gris dans MATLAB et affinons-la à l’aide de la fonction interp2()
. Voir le code ci-dessous.
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')
Production :
En sortie, l’image de droite est affinée à l’aide d’une interpolation linéaire. La fonction single()
permet de convertir les valeurs en simple précision.