Getting points back from convexhull/trisurf, or 'how to find the closest point on a 3d surface to a given point.
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Cameron
el 30 de En. de 2024
Comentada: Cameron
el 1 de Feb. de 2024
I'm trying to find the outside surface of a 3D matrix (an MRI of the scalp), The matrix contains all the points of the scalp and I need to be able to calculate the distance to the outside surface from a given internal coordinate.
If I use a delaunay triangulation and create a convexhull of those points I can successfully visualize just the outside surface, but I'm not sure how to a) get those points back in the true coordinate system/b) get the closest point on the surface of the formed convex hull to a given coordinate. Figuring out a) is not necessary if I can directly find b). If there's another way and this makes no sense at all, I'm open to suggestion. TIA
% rcv, or [r c v] is a 75,120 x 3 matrix
DT = delaunayTriangulation([r c v]);
[K,~] = convexHull(DT);
trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3))
2 comentarios
John D'Errico
el 30 de En. de 2024
Note that a delaunay triangulation (and therefore a convex hull) for the surface of a skull is probably a poor approximation.
Respuesta aceptada
Más respuestas (0)
Ver también
Categorías
Más información sobre Delaunay Triangulation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!