How to get the volume and surface area of separated isosurfaces

조회 수: 9 (최근 30일)
AbioEngineer
AbioEngineer 2021년 7월 26일
댓글: darova 2021년 7월 27일
I have a 3D array called "test" which is 512x512x52. I can display the isosurface using the following line:
volshow(test,'Renderer','Isosurface','Isovalue',0.55)
which generates the following image:
How can I get the voxels in each enclosed isosurface? I need to calculate the voume of each piece (ideally only those that are spherical). I already know the dX=0.1657, dY=0.1657, and dZ=0.5 of a voxel, I just need to know which pixels are included in each of the distinct enclosed surfaces so I can get a distribution of volumes. I need to do the same for the surface areas.
I read this answer (https://www.mathworks.com/matlabcentral/answers/436461-calculate-volume-from-an-isosurface), but I am confused how they could use that isovalue of -2. Every element in my 3D array is greater than the isovalue I selected to display the image shown above (which is isovalue of 0.51)
Any guidance is sincerely appreciated.

답변 (1개)

darova
darova 2021년 7월 26일
Use bwlabel to separate each blob
  댓글 수: 2
AbioEngineer
AbioEngineer 2021년 7월 26일
but why is the isovalue 0.51 when I use volshow https://www.mathworks.com/help/images/ref/volshow.html but none of my actual values in the 3D array fall below that? The values in the array are in the 1600's while the isovalue must be a "non-negative number between [0 1]" according to the volshow documentation.
darova
darova 2021년 7월 27일
I don't understand the question
Maybe aphaShape can be helpfull

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

카테고리

Help CenterFile Exchange에서 Scalar Volume Data에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by