Removal Of objects from binary image.
古いコメントを表示
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 件のコメント
mohammed
2014 年 2 月 19 日
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
2014 年 2 月 19 日
it definitely is!!
採用された回答
その他の回答 (1 件)
Image Analyst
2014 年 2 月 19 日
1 投票
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 件のコメント
Image Analyst
2014 年 2 月 20 日
Mohammed Farhan
2014 年 2 月 22 日
Mohammed Farhan
2014 年 2 月 22 日
Image Analyst
2014 年 2 月 22 日
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
2014 年 2 月 22 日
Dishant Arora
2014 年 2 月 22 日
編集済み: Dishant Arora
2014 年 2 月 22 日
You need to call regionprops before running this snippet like:
blobMeasurements = regionprops(labeledImage,grayImage,'all');
or
blobmeasurements =regionprops(labelleImage,grayImage,'Area','MeanIntensity');
カテゴリ
ヘルプ センター および File Exchange で Blocked Images についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!