how can i remove object bigger than x pixel

11 vues (au cours des 30 derniers jours)
Lukasz Jarod
Lukasz Jarod le 18 Déc 2014
Commenté : Ankit Sahay le 8 Mai 2020
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???

Réponse acceptée

Sven
Sven le 18 Déc 2014
Modifié(e) : Sven le 18 Déc 2014
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 commentaires
Image Analyst
Image Analyst le 20 Déc 2014
Lukasz's Flag removed and moved here as a comment:
Yes, it helped me.
Ankit Sahay
Ankit Sahay le 8 Mai 2020
What does the second line do? The line where you have written:
BW = I>80;

Connectez-vous pour commenter.

Plus de réponses (1)

William Kemp
William Kemp le 1 Août 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

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by