Getting points back from convexhull/trisurf, or 'how to find the closest point on a 3d surface to a given point.
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
John D'Errico
2024 年 1 月 30 日
Note that a delaunay triangulation (and therefore a convex hull) for the surface of a skull is probably a poor approximation.
採用された回答
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Delaunay Triangulation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!