2016-05-20 128 views
2

我有一个二进制图像,我想从中手动测量连接的白色区域的面积,而不使用MATLAB函数。我已标记的区域连接区域的区域

I=imread('http://i.stack.imgur.com/rBaua.jpg') 
[Label,Total]=bwlabel(I,8); 

标签是< 669x585双>变量具有所有单独标记,从1开始连接的白色区域:总计。这里是图像:

image

回答

1

如果您不想使用任何内置函数,您可以轻松地遍历标签并计算具有给定标签的像素数量。

areas = arrayfun(@(x)sum(Label(:) == x), 1:max(Label(:))); 

或者,你可以使用类似accumarrayhistcounts指望他们给你的。

areas = accumarray(Label(:)+1, Label(:), [], @numel); 
areas = histcounts(Label(:), 1:max(Label(:)));