Removal Of objects from binary image.

7 views (last 30 days)
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!

Accepted Answer

Dishant Arora
Dishant Arora on 19 Feb 2014
Edited: Dishant Arora on 20 Feb 2014
once you have got the binary image,you can do the following:
outputImage = xor(BW , bwareaopen(BW , threshArea));
% BW being the binary image
% it will discard objects with area greater then threshArea
imshow(outputImage)

More Answers (1)

Image Analyst
Image Analyst on 19 Feb 2014
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 Comments
Mohammed Farhan
Mohammed Farhan on 22 Feb 2014
Thank you very much! But I still get an error:
Undefined variable "blobMeasurements" or function "blobMeasurements.MeanIntensity".
Error in naew (line 118) allBlobIntensities = [blobMeasurements.MeanIntensity];
Please Help
Dishant Arora
Dishant Arora on 22 Feb 2014
Edited: Dishant Arora on 22 Feb 2014
You need to call regionprops before running this snippet like:
blobMeasurements = regionprops(labeledImage,grayImage,'all');
or
blobmeasurements =regionprops(labelleImage,grayImage,'Area','MeanIntensity');

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!