How to compute 3D surface area from 2D CT images
6 views (last 30 days)
Show older comments
Hi, I work with 2D slices of CT images (Dicom images). I segmented tumor from all these 20 slices using some segmentation algorithms.
Now, I have 20 slices of segmented CT scans lets say slice1, slice2, ...slice20
Now I have to combine this 20 slices somehow and extract surface area.
I found this link:
I don't understand how is x-cord,y-cord, and z-cord computed here.
And I think some of this code is repeated and wrong.
Can someone please help me compute the 3D surface area by combing all the individual 2D slices.
Any help is greatly appreciated.
Thanks,
Gopi
0 Comments
Answers (2)
Image Analyst
on 1 Sep 2016
Edited: Image Analyst
on 1 Sep 2016
Simply call bwperim() on your segmented tumor images, which you say you already have. Then sum up the image
totalSurfaceArea = 0;
for slice = 1 : numSlices
thisBinaryImage = .......whatever, your segmented image.
thisPerimeter = bwperim(thisBinaryImage)
voxelsInThisSlice = sum(thisPerimeter(:));
totalSurfaceArea = totalSurfaceArea + voxelsInThisSlice;
end
Essentially you're counting up all voxels that are on the outer edge of your tumor and touch other tissue or air or whatever is not tumor.
2 Comments
Koray Ertan
on 21 Aug 2022
I think the above approach may be wrong because you do not account for the slope of the surface when you just sum the voxelized area.
boundary function may be a better fit for this task.
https://www.mathworks.com/help/matlab/ref/boundary.html
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!