How to do segmentation for detecting microaneurysms?

11 views (last 30 days)
hi, please help me. i want to create a program for the detection of microaneuryms in diabetic retinopathy diseases. i have retinal image and success doing vascular segmentation. the point is, i've been using a region growing from but it just give me one object of microaneurysm like this
i want the result like this
this is my original image after using adaptive histogram
what should i do? or is there a recommended method that i can use?

Answers (2)

Nitin on 16 Feb 2014
Hope this gets you started:
I=imread('retinal.PNG'); I2 = rgb2gray(I); I_bin = I2>150;
In the next step, you can choose the smaller regions you are interested in using bwselect and or regionsprops based on your criteria

Image Analyst
Image Analyst on 16 Feb 2014
Edited: Image Analyst on 3 Sep 2021
People have done this before and published their methods. Look for them in section 20.5 here:
Most likely, you'll find robust algorithms won't be just a hundred or two hundred lines long, as I don't expect that it's a simple problem.
A quick and dirty, non-robust method would be something like this
  1. threshold image
  2. find areas and perimeters
  3. remove largest region (the main vessel network)
  4. compare circularities (Perimeter^2/(4*pi*area)) of remaining regions and keep regions with low circularity values to keep compact blobs rather than stick-like blobs.
Image Analyst
Image Analyst on 3 Sep 2021
Where was the first one, if you still remember. Obviously the link worked once but I guess they changed it from,%20CAT,%20MRI,%20Ultrasound,%20Heart%20Models,%20Brain%20Models
to the new link:
I'll change it in my original answer also.

Sign in to comment.


Find more on Biomedical Imaging in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!