Jak narysować powierzchnię za pomocą mapy tekstury

Chcę narysować powierzchnię z mapą tekstury, ale warunki nie są „idealne”.

Najpierw wyjaśnij, co mam.

Mam zbiór punktów (~ 7000), które są współrzędnymi obrazu w siatce.Te punkty NIE definiują doskonałych kwadratów. NIE JEST MESHGRID. Dla pytania załóżmy, że mamy 9 punktów. Zilustrujmy, co mamy z obrazem:

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

 Powiedzmy, że możemy uzyskać „strukturę” siatki, więc

 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;

A teraz powiedzmy, że mamy trzeci wymiar, Z.

EDYTOWAĆ: Zapomniałem dodać kawałek jeśli info. Trianguluję punkty na obrazie i otrzymuję korespondencję 3D, więc gdy są wyświetlane na powierzchni, nie mają X i Y współrzędnych obrazu, dla uproszczenia danych, powiedzmy X = X / 2 Y = Y / 3

I mamy:

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

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

Chcę wydrukować powierzchnię w 3D z teksturą obrazu. Każdy element powinien mieć kawałek tekstury, który ma na pierwszym obrazie.

To musi działać na ogromne arkusze danych. Nie potrzebuję go zbyt szybko.

powiązany post (ale mam siatkę siatki jako początkowy zestaw punktów):Mapa tekstur dla siatki 2D

PD: Mogę wysyłać oryginalne zdjęcia + prawdziwe dane, jeśli to konieczne, po prostu opublikowałem to, ponieważ myślę, że łatwiej jest z małymi danymi.

questionAnswers(3)

yourAnswerToTheQuestion