How to find the pixels of certain regions in a binary image
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Efstathios Kontolatis
le 12 Jan 2017
Réponse apportée : Image Analyst
le 16 Jan 2017
I have created a binary image which contains the edges of an image. I want to keep only the pixels of the regions that have an area bigger than 250 pixels. How can I do that?
0 commentaires
Réponse acceptée
Vishal Neelagiri
le 16 Jan 2017
You might want to use the 'bwselect' function to select objects in a binary image. You can use this with the 'bwarea' function which calculates the area of objects in a binary image. You might want to refer to the following documentation links:
https://www.mathworks.com/help/images/labeling-and-measuring-objects-in-a-binary-image.html
https://www.mathworks.com/help/images/ref/bwselect.html
https://www.mathworks.com/help/images/ref/bwarea.html
0 commentaires
Plus de réponses (1)
Image Analyst
le 16 Jan 2017
Don't use bwselect(), use bwareaopen. It does exactly what you asked for. From the help:
BW2 = bwareaopen(BW,P) removes all connected components (objects) that have fewer than P pixels from the binary image BW, producing another binary image, BW2.
Here is what you'd do:
% Extract only those blobs with 251 pixels or more.
% Blobs 250 and smaller will be removed.
binaryImage = bwareaopen(binaryImage, 251);
You might also be interested in bwareafilt() which extracts the N largest or smallest blobs, or blobs within a specified range of areas. It can also do what you want.
binaryImage = bwareafilt(binaryImage, [251, inf]);
0 commentaires
Voir également
Catégories
En savoir plus sur Image Segmentation and Analysis 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!