How to calculate the volume of a rotational symmetric object with its projected area from an image?
9 次查看(过去 30 天)
显示 更早的评论
Hey guys,
i have a BW 2D image of an object which is roughly roational symmetric. With the use of regionprops i can indentify the (projected) area of the object. Now i want to calculate the volume of the object.
Is there a mathematical formula or a Matlab command which is able to calculate the volume of the object with the use of the projected area? The shape of the object is kind of bullet shaped.
My idea would be to measure the length of every point of the outline to the middle axis. The Image has a pretty high resolution so that would be at least 1000 slices. This way seems highly inefficient. I hope there is a better way.
with kind regrads
Benjamin
0 个评论
采纳的回答
Image Analyst
2022-11-5
So you're going to assume that each column (or row) is a circular disk. So you just need to scan each column (or row) and find the diameter of each slice. Then square that diameter and multiply it by pi/4 to get the volume of that disk in that slice. Then add up the volume of each slice. If you need more help, attach your image and indicate where the axis of rotation lies along it.
2 个评论
Image Analyst
2024-11-11
编辑:Image Analyst
2024-11-11
It IS pretty easy. Assuming your "BW" image is an already segmented image (a logical/binary image), you can do it via a for loop, and skip the loop over rows (like I was originally thinking):
volume = 0;
for z = 1 : numberOfSlices
thisSlice = imread(filename) % Or however you get your 2D binary image, like perhaps
% thisSlice = mask3D(:, :, z).
volume = volume + sum(thisSlice, 'all');
end
Were you hoping for something even easier than that?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 3-D Volumetric Image Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!