how can i remove object bigger than x pixel
5 次查看(过去 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.
更多回答(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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!