how can i remove object bigger than x pixel
3 ビュー (過去 30 日間)
古いコメントを表示
i know that bwareaopen remove small elements , but how can i remove object bigger than x pixels???
i want to just the letter to stay so how can i remove that 2 big objects???
0 件のコメント
採用された回答
Sven
2014 年 12 月 18 日
編集済み: Sven
2014 年 12 月 18 日
Hi Lukasz,
Here's an example that removes all objects greater than 1000 pixels in area. You probably have your own BW image and your own threshold that you can use in a similar way.
I = imread('rice.png');
BW = I>80;
cc = bwconncomp(BW);
stats = regionprops(cc);
threshold = 1000;
removeMask = [stats.Area]>threshold;
BW(cat(1,cc.PixelIdxList{removeMask})) = false;
Did this help you out?
Thanks, Sven.
2 件のコメント
Ankit Sahay
2020 年 5 月 8 日
What does the second line do? The line where you have written:
BW = I>80;
その他の回答 (1 件)
William Kemp
2017 年 8 月 1 日
Its a little more compact if you use the built in function for it:
BW2 = bwpropfilt(BW,'Area',[0 x_pixels])
Where x_pixels is the maximum desired number of pixels in a BW object
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Image Segmentation and Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!