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???

采纳的回答

Sven
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 个评论
Image Analyst
Image Analyst 2014-12-20
Lukasz's Flag removed and moved here as a comment:
Yes, it helped me.
Ankit Sahay
Ankit Sahay 2020-5-8
What does the second line do? The line where you have written:
BW = I>80;

请先登录,再进行评论。

更多回答(1 个)

William Kemp
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

类别

Help CenterFile Exchange 中查找有关 Images 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by