相关区域

时间:2016-05-20 01:28:02

标签: matlab image-processing

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

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

标签是< 669x585 double>所有连接的白色区域分别标记的变量,从1开始:总计。这是图像:

image

1 个答案:

答案 0 :(得分:1)

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

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

或者,您可以使用accumarrayhistcounts之类的内容为您计算。

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