2016-05-20 29 views
2

MATLAB関数を使用せずに、手動で接続された白色領域の面積を測定したいバイナリイメージがあります。私は、ラベルは1から始まり、個別にラベルされたすべての接続された白の面積を有する< 669x585ダブル>変数である地域接続された領域の領域

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

のラベルが付いています合計。ここに画像があります:

imageです。

答えて

1

組み込み関数を使用したくない場合は、ラベルをループして、指定したラベルのピクセル数を簡単に計算できます。代わりに

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

、あなたはあなたのためにそれらをカウントするaccumarrayまたはhistcountsのようなものを使用することができます。

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