2016-05-20 129 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(:)));