How to calculate surface area / volume for multiple clusters from 3D image stack

8 ビュー (過去 30 日間)
I have a series of image stacks that represent a 3D reconstruction of microdamage in bone. I am trying to calculate the surface area to volume ratio of each individual damage "cluster" in the specimen. The provided image is a 3D rendering of the image stacks showing the clusters of damage. What I want the code to do is calculate surface area / volume for each individual cluster, and then average all of the SA/V calculations to have one representative measure for the entire specimen. Any help as to how to go about doing this would be very much appreciated!

採用された回答

Image Analyst
Image Analyst 2020 年 7 月 6 日
編集済み: Image Analyst 2020 年 7 月 6 日
To get a count of voxels on the surface, you can scan the image voxel by voxel and check the 6 neighbors of the voxel. If any of the neighbors is air (not bone), then add that to the surface count. Should be easy but let me know if you can't figure it out:
[rows, columns, slices] = size(image3d)
surfaceCount = 0;
for slice = 1 : slices
for fol = 1 : columns
for row = 1 : rows
thisSubvolume = image2d(.....)
if .....
% A 6-connected neighbor is air so it's on the surface.
% etc.
end
end
end
end
Or you can just use regionprops3() which directly gives surface area and volume. That's what I'd try first.
  3 件のコメント
Syafri Arlis
Syafri Arlis 2022 年 1 月 11 日
@Image Analyst can you send me the complete source code
Image Analyst
Image Analyst 2022 年 1 月 11 日
@Syafri Arlis I don't have any code other than what's shown above.

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by