how to calculate the area of different labels and remove the labels with smaller area??

i labeled an image using CC = bwconncomp(BW).how to find area of different labels?? and how do i remove labels with smaller area???

 採用された回答

Michael Haderlein
Michael Haderlein 2015 年 4 月 2 日
編集済み: Michael Haderlein 2015 年 4 月 2 日
CC is a struct including the field PixelIdxList. If you define the area as number of pixels, you just need the number of elements of each cell:
elemsize=cellfun(@numel,CC.PixelIdxList);
To remove the small ones (I define "small" as "less than 100 pixels"):
BW2=BW;
BW2(vertcat((CC.PixelIdxList{cellfun(@numel,CC.PixelIdxList)<100})))=0;
You can of course do this without copying BW (just ignore the first line and use BW instead of BW2 in the second line).
Edit: If you also want to remove these from CC:
CC.PixelIdxList(cellfun(@numel,CC.PixelIdxList)<100)=[];
CC.NumObjects=numel(CC.PixelIdxList);

その他の回答 (1 件)

Image Analyst
Image Analyst 2015 年 4 月 3 日

0 投票

This is what's done in my Image Processing Tutorial, attached.

カテゴリ

ヘルプ センター および File Exchange で Convert Image Type についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by