Removal Of objects from binary image.
Afficher commentaires plus anciens
Hello, actually I am new to matlab and want to know how to remove some objects from a binary image based upon area. Such that when a particular threshold is set the components of image having area above threshold is removed. Like removing a large vessel of eye and not removing small ones. Is there any function??? Please provide assistance!
2 commentaires
mohammed
le 19 Fév 2014
Dear Mohammed Farhan
i think this is a good exapmle to do this. http://www.mathworks.com/matlabcentral/fileexchange/25157-image-segmentation-tutorial-blobsdemo
Dishant Arora
le 19 Fév 2014
it definitely is!!
Réponse acceptée
Plus de réponses (1)
Image Analyst
le 19 Fév 2014
1 vote
I just did that in the past month or two for someone - extracting the main vasculature of the retina in a fundus photograph. Look up the tag eye and look for my name. Or look in my File Exchange or at bwareaopen as Dishant suggests.
6 commentaires
Image Analyst
le 20 Fév 2014
Mohammed Farhan
le 22 Fév 2014
Mohammed Farhan
le 22 Fév 2014
Image Analyst
le 22 Fév 2014
They're selecting regions based on the area. Look at my image segmentation tutorial: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862. Here's the relevant snippet from the tutorial:
% Now I'll demonstrate how to select certain blobs based using the ismember function.
% Let's say that we wanted to find only those blobs
% with an intensity between 150 and 220 and an area less than 2000 pixels.
% This would give us the three brightest dimes (the smaller coin type).
allBlobIntensities = [blobMeasurements.MeanIntensity];
allBlobAreas = [blobMeasurements.Area];
% Get a list of the blobs that meet our criteria and we need to keep.
allowableIntensityIndexes = (allBlobIntensities > 150) & (allBlobIntensities < 220);
allowableAreaIndexes = allBlobAreas < 2000; % Take the small objects.
keeperIndexes = find(allowableIntensityIndexes & allowableAreaIndexes);
% Extract only those blobs that meet our criteria, and
% eliminate those blobs that don't meet our criteria.
% Note how we use ismember() to do this.
keeperBlobsImage = ismember(labeledImage, keeperIndexes);
Mohammed Farhan
le 22 Fév 2014
Dishant Arora
le 22 Fév 2014
Modifié(e) : Dishant Arora
le 22 Fév 2014
You need to call regionprops before running this snippet like:
blobMeasurements = regionprops(labeledImage,grayImage,'all');
or
blobmeasurements =regionprops(labelleImage,grayImage,'Area','MeanIntensity');
Catégories
En savoir plus sur Blocked Images dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!