2
我有一个二进制图像,我想从中手动测量连接的白色区域的面积,而不使用MATLAB函数。我已标记的区域连接区域的区域
I=imread('http://i.stack.imgur.com/rBaua.jpg')
[Label,Total]=bwlabel(I,8);
标签是< 669x585双>变量具有所有单独标记,从1开始连接的白色区域:总计。这里是图像:
。
我有一个二进制图像,我想从中手动测量连接的白色区域的面积,而不使用MATLAB函数。我已标记的区域连接区域的区域
I=imread('http://i.stack.imgur.com/rBaua.jpg')
[Label,Total]=bwlabel(I,8);
标签是< 669x585双>变量具有所有单独标记,从1开始连接的白色区域:总计。这里是图像:
。
如果您不想使用任何内置函数,您可以轻松地遍历标签并计算具有给定标签的像素数量。
areas = arrayfun(@(x)sum(Label(:) == x), 1:max(Label(:)));
或者,你可以使用类似accumarray
或histcounts
指望他们给你的。
areas = accumarray(Label(:)+1, Label(:), [], @numel);
areas = histcounts(Label(:), 1:max(Label(:)));