Effacer les filtres
Effacer les filtres

How to get the volume and surface area of separated isosurfaces

7 vues (au cours des 30 derniers jours)
AbioEngineer
AbioEngineer le 26 Juil 2021
Commenté : darova le 27 Juil 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.

Réponses (1)

darova
darova le 26 Juil 2021
Use bwlabel to separate each blob
  2 commentaires
AbioEngineer
AbioEngineer le 26 Juil 2021
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 le 27 Juil 2021
I don't understand the question
Maybe aphaShape can be helpfull

Connectez-vous pour commenter.

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by