How to improve optic disc removal code?

2 views (last 30 days)
Sidra Aleem
Sidra Aleem on 11 May 2018
Answered: Image Analyst on 22 May 2019
I want to perform optic disc removal as a step for doing diabetic retinopathy grading. The code is working fine, but for some of the images the result is not what is expected. Below is the code I am using for optic disc removal. By following a paper I am creating meshgrid and then finding the x-y cordinates that corresponds to maximum intensity values (as optic disc has the highest intenstiyintensity in retinal images). After that, I am creating a circle of radius 45 around the brightest point. I used "diaretdb0 database" for testing. Out of 126 images, the result for 8 image is wrong. Below is the code.
retina = imread('Input_Image.png');
retinaGband = retina(:,:,2); %Green Chanel extraction
retinaGband = imresize(retinaGband,[512 512]);
mask = imread('fmask.tif'); %mask
mask = imresize(mask,size(retinaGband));
%%Histogram Equalization
heImage = adapthisteq(retinaGband,'clipLimit',0.02,'Distribution','rayleigh');
% Mask the image.
heImage = heImage .* uint8(mask);
med2 = medfilt2(heImage);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;
[imageSizeX, imageSizeY] = size(med2);
[x, y] = meshgrid(1:imageSizeX, 1:imageSizeY); %meshgrid creation
[r, c] = find(med2 == max(med2(:))); %finding max values row and column wise
centerX = max(r); %x-cordniate with max intensity value
centerY = max(c); % y-cordinate with max intensity value
radius = 45;
circlePixels = (x - centerY).^2 ...
+ (y - centerX).^2 <= radius.^2;
circlePixels = imcomplement(circlePixels);
%%masking
mask1 = med2 .* uint8(circlePixels);
figure,imshow(mask1);
The below image shows the ouput with wrongly identified optic disc.
The actual optic disc portion to be exculded is highlighted in green circle in the image to show what was expected. Below is the input image for the wrong output.
  1 Comment
dalia hamam
dalia hamam on 21 May 2019
could u please send me the photo of the mask u used in your code?

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 22 May 2019
Find algorithms in papers listed here in Vision Bibliography

Community Treasure Hunt

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

Start Hunting!