Extract Gridded Data from Isosurface
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Paul Safier
am 25 Mär. 2021
Kommentiert: darova
am 25 Mär. 2021
I want to get the x, y and z data of a surface that I extract from a volume via isosurface. I am doing it in the following way, but I suspect that it's horribly inefficient (because I cannot believe there isn't a more straightforward way) and possibly inaccurate because of some of the results I have been getting. Can anyone suggest a simplier way?
I want the data at points given by (just an example):
[x,y] = meshgrid(linspace(0,10,30),linspace(0,10,30))
The data is available from this:
[faces,verts] = isosurface(Xa, Ya, Za, data, 0);
Then I am doing this to get the surface on the coordinates I want (x,y):
[X1,Y1,Z1] = xyz2grid(verts(:,1),verts(:,2),verts(:,3));
MySurface = interp2(X1,Y1,Z1,x,y);
NaNres = sum(isnan(MySurface(:)));
if NaNres > 0
MySurface = inpaint_nans(MySurface,3);
end
2 Kommentare
Akzeptierte Antwort
darova
am 25 Mär. 2021
What about standard functions?
[faces,verts] = isosurface(mesh_xs{:}, mesh_data, 0);
zz = griddata(verts(:,2),verts(:,1),verts(:,3),xx,yy);
surf(xx,yy,zz)
Are you sure that the order xx and yy is correct?
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

