How to calculate the volume of a rotational symmetric object with its projected area from an image?
조회 수: 10 (최근 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!