How to get the volume and surface area of separated isosurfaces

8 ビュー (過去 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 Center および File Exchange3-D Volumetric Image Processing についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by