2D-Interpolation mit MATLAB

Ammar Ali 15 Februar 2024
2D-Interpolation mit MATLAB

In diesem Tutorial wird erläutert, wie man die Interpolation von 2D-Daten mit der Funktion interp2() in MATLAB findet.

Finden die Interpolation von 2D-Daten mit der Funktion interp2() in MATLAB

Wir können die eingebaute Funktion interp2() von MATLAB verwenden, um die Interpolation von 2D-gerasterten Daten in einem Mesh-Grid-Format zu finden. Lassen Sie uns beispielsweise mit der Standardmethode über ein Raster interpolieren.

Siehe den Code unten.

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');

Ausgabe:

Interpolation mit Standardmethode

In der Ausgabe ist das rechte Bild das Ergebnis einer Interpolation mit der Standardmethode.

Wie Sie sehen, hat das Ausgabebild im Vergleich zum Original mehr Datenpunkte. Der x- und y-Vektor sind die Eingabematrizen, und sie sollten die gleiche Größe haben.

Der v-Vektor enthält die Abtastwerte. Es kann reelle oder komplexe Werte enthalten, wenn v komplexe Zahlen enthält.

Anschließend interpoliert die Funktion interp2() Real- und Imaginärteil getrennt. Die Vektoren xq und yq enthalten die Abfragepunkte, die reelle Skalare, Vektoren, Matrizen oder Arrays sein können.

Wir können die Interpolationsmethode auch ändern, indem wir die neue Methode als String in der Funktion interp2() definieren, wie wir die kubische, nächste oder Spline-Methode für die Interpolation festlegen können. Wir können Interpolation verwenden, um ein Graustufenbild zu verfeinern.

Wenn ein Bild weniger Pixel hat, sind die Details im Bild nicht sichtbar. In diesem Fall können wir Interpolation verwenden, um die Anzahl der Pixel zu erhöhen, um das Bild zu verstehen.

Laden wir zum Beispiel ein Graustufenbild in MATLAB und verfeinern es mit der Funktion interp2(). Siehe den Code unten.

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')

Ausgabe:

Bild mit Interpolation verfeinern

In der Ausgabe wird das rechte Bild durch lineare Interpolation verfeinert. Die Funktion single() wird verwendet, um die Werte in einfache Genauigkeit umzuwandeln.

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

Verwandter Artikel - MATLAB Vector