MATLAB Answers

0

how can i remove object bigger than x pixel

Asked by Lukasz Jarod on 18 Dec 2014
Latest activity Answered by William Kemp on 1 Aug 2017
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 Comments

Sign in to comment.

2 Answers

Answer by Sven
on 18 Dec 2014
Edited by Sven
on 18 Dec 2014
 Accepted Answer

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 Comment

Lukasz's Flag removed and moved here as a comment:
Yes, it helped me.

Sign in to comment.


Answer by William Kemp on 1 Aug 2017

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 Comments

Sign in to comment.