MATLAB Answers

How to get the volume and surface area of separated isosurfaces

2 views (last 30 days)
AbioEngineer
AbioEngineer on 26 Jul 2021
Commented: darova on 27 Jul 2021
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.

Answers (1)

darova
darova on 26 Jul 2021
Use bwlabel to separate each blob
  2 Comments
darova
darova on 27 Jul 2021
I don't understand the question
Maybe aphaShape can be helpfull

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!