How to apply region growing for candidates?

2 views (last 30 days)
I have been working on the diabetic retinopathy and currently implementing a paper named " Detection of microaneurysms using multi-scale correlation coefficients " by Bob Zhang and others.The link for the paper is :https://www.sciencedirect.com/science/article/abs/pii/S003132031000004X
I have to apply region growing for the candidates(the white spots present in the above image) so that the output should look like the below image where the candidates shape and size are grown by region growing.
In the paper, It is mentioned that In the region growing, the background image Ibg can be obtained by applying a median filter of size 25x25 to green channel image Igreen. A threshold 't' is calculated using the equation
t = Idarkest - 0.5(Idarkest - ibg)
where Idarkest denotes the lowest intensity for each candidate region in the Igreen, ibg is its background intensity at the same location.
Region growing starts from the point of Idarkest in each candidate region and continues until no more connected pixels are higher than threshold. Considering the size of MA is less than 120 pixels if the area of every resultant connected component is larger than 120 pixels, it will be discarded.
Can somebody help me with this?
I have attached the green channel image Igreen as 'green_sample.jpg'.
  3 Comments
KALYAN ACHARJYA
KALYAN ACHARJYA on 6 Jan 2020
Have you applied the region growing on the first image (Binary Image)?? Why?
Krishna Chaitanya
Krishna Chaitanya on 6 Jan 2020
@KALYAN ACHARJYA As per the paper mentioned above, The White dots in the first image represent the candidate microaneurysms that need to be detected for the diagnosis of Diabetic retinopathy.However, the size and shape of these candidates may not be same as that of the true microaneursysms and hence region growing is applied to the whitedots in the first image to get output as in second image.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 6 Jan 2020
See my attached regiongrowing program. Adapt as needed.
  5 Comments
Rik
Rik on 8 Jan 2020
There are probably more efficient methods, but you could do it like this:
  1. use bwlabel to label all white regions
  2. use second output to loop through all labeled areas
  3. in each iteration, use L==k as a binary mask to index into your image and use mean, min, median, max, whatever to find the pixel intensity you need.

Sign in to comment.

More Answers (0)

Categories

Find more on Image Processing Toolbox 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!