Getting points back from convexhull/trisurf, or 'how to find the closest point on a 3d surface to a given point.
Afficher commentaires plus anciens
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 commentaires
John D'Errico
le 30 Jan 2024
Note that a delaunay triangulation (and therefore a convex hull) for the surface of a skull is probably a poor approximation.
Cameron
le 1 Fév 2024
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Delaunay Triangulation dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!