如何通过图像处理计算未成形物体的体积?

时间:2014-02-17 12:08:01

标签: matlab image-processing volume

我必须在 MATLAB 软件中编写“通过图像处理计算未成形物体的体积”算法

我必须编写将对象的许多图片作为输入的算法,并计算对象的体积作为输出。每个帮助都会非常感激。感谢

1 个答案:

答案 0 :(得分:0)

如果图片中只有对象和背景I

O = im2bw(I); % suppose 1 labelled on the object and 0 on the background
Volume = length(find(O == 1));

上面的代码将为您提供对象的数量。

如果图像中有各种对象,并希望在其中获得一个卷。例如,你左边有一张MRI脑图像,你想得到水肿的体积(里面的黄色部分):

enter image description here

I2 = im2bw(I);
I2 = bwareaopen(I2,100);
I2 = imdilate(I2,ones(3));
bw = bwlabel(I2);
上面代码中的

bw会给你右边的数字。如您所见,有三个部分标有1 - 3.然后,

stats=regionprops(bw,'PixelIdxList');
length(stats(1).PixelIdxList)
length(stats(2).PixelIdxList)
length(stats(3).PixelIdxList)

分别会给你14455,404,9632。左侧图像中的黄色部分在右侧标记为3。所以对象的体积是9632。