필터 지우기
필터 지우기

3D signed distance transform

조회 수: 6 (최근 30일)
Erhong
Erhong 2011년 4월 13일
댓글: Ziwei Wu 2016년 11월 28일
Hi, I need to do some signed 3D Euclidean distance transform, and need the distance to be negative inside a closed surface. The 3D Euclidean Distance Transform for Variable Data Aspect Ratio in file exchange works well, but it only provides positive distance for all points that are not on the closed surface. Now I need to detect if a given point is inside the closed surface or not. Any hint to tell if a point is inside the closed surface? Or to signed 3D distance transform? Any help will be immensely appreciated. Erhong
  댓글 수: 1
Ziwei Wu
Ziwei Wu 2016년 11월 28일
Hi Erhong, I am trying to make a 3D shape model using signed distance function but there are always some problems with my code. Would it be possible for you to share your code to me? Or just give me some hint of your idea? Thank you so much!

댓글을 달려면 로그인하십시오.

채택된 답변

Sean de Wolski
Sean de Wolski 2011년 4월 13일
You could separately create a map of points inside a closed surface.
M = imfill(bw_image,'holes');
Now anything true in M will be inside a closed surface in bw_image.
D = your_distance_transform;
D(M) = -D(M);
  댓글 수: 3
Sean de Wolski
Sean de Wolski 2011년 4월 14일
M should be a logical 3-dimensional array.
Please tell me what the output from these commands is:
class(M)
size(M)
Thus D (your distance transform matrix) should be of class double and the same size as M.
Then the indexing assignment D(M) = -D(M) will work.
Erhong
Erhong 2011년 4월 14일
Thanks so much for the hint. I replaced the M in D(M) with the corresponding cocordinates, and it works!
Thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Computational Geometry에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by