Getting points back from convexhull/trisurf, or 'how to find the closest point on a 3d surface to a given point.
조회 수: 3 (최근 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!