how can i remove object bigger than x pixel
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Lukasz Jarod
am 18 Dez. 2014
Kommentiert: Ankit Sahay
am 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???
0 Kommentare
Akzeptierte Antwort
Sven
am 18 Dez. 2014
Bearbeitet: Sven
am 18 Dez. 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 Kommentare
Ankit Sahay
am 8 Mai 2020
What does the second line do? The line where you have written:
BW = I>80;
Weitere Antworten (1)
William Kemp
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Image Segmentation and Analysis finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!