So zeichnen Sie eine Oberfläche mit einer Texturkarte

Ich möchte eine Oberfläche mit einer Texturkarte zeichnen, aber die Bedingungen sind nicht die "idealen".

Lassen Sie uns zunächst erklären, was ich habe.

Ich habe eine Reihe von Punkten (~ 7000), die Bildkoordinaten sind, in einem Raster.Diese Punkte definieren KEINE perfekten Quadrate. ES IST KEIN MESHGRID. Nehmen wir zur Beantwortung der Frage an, wir hätten 9 Punkte. Lassen Sie uns veranschaulichen, was wir mit einem Bild haben:

 X=[310,270,330,430,410,400,480,500,520]
 Y=[300,400,500,300,400,500,300,400,500]

 Nehmen wir an, wir können die "Struktur" des Gitters ermitteln

 size1=3;
 size2=3;
 points=zeros(size1,size2,2)
 X=[310,270,330;
    430,410,400;
    480,500,520]
 Y=[300,400,500;
    300,400,500;
    300,400,500]
 points(:,:,1)=X;
 points(:,:,2)=Y;

Und jetzt nehmen wir an, wir haben eine 3. Dimension, Z.

BEARBEITEN: Haben Sie vergessen, ein Stück hinzuzufügen, wenn Info. Ich trianguliere die Punkte im Bild und erhalte eine 3D-Korrespondenz. Wenn sie auf einer Oberfläche angezeigt werden, haben sie nicht die X- und Y-Koordinaten des Bildes. Zur Vereinfachung der angegebenen Daten wird X = X / 2 Y = Y angegeben /3

Und wir haben:

 points=zeros(size1,size2,3)
 Z=[300,330,340;
    300,310,330;
    290,300,300]

 surf(points(:,:,1)/2,points(:,:,2)/3,points(:,:,3))

Ich möchte die Oberfläche in 3D mit der Bildtextur zeichnen. Jedes Element sollte das Texturstück haben, das im ersten Bild vorhanden ist.

Dies muss für große Datenblätter funktionieren. Ich brauche es nicht besonders, um schnell zu sein.

verwandter Beitrag (aber ich habe ein Meshgrid als anfängliche Punktemenge):Texturkarte für ein 2D-Gitter

PD: Ich kann Originalbilder + echte Daten bei Bedarf posten, habe dies nur gepostet, weil ich denke, dass es mit kleinen Daten einfacher ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage