Hi,
I'm a new bee to Matlab. In my project, I'm supposed to draw a circle along the border of the Optic disk found in the retinal image. (Actually, I want to detect optic disk). I did some work and the
I = imread('I.png');% gradient filter applied
[Gmag Gdir] = imgradient(I, 'prewitt');figure, imshow(Gmag, []), title('Gradient magnitude')figure, imshow(Gdir, []), title('Gradient direction')% Binary image gerated with threshold
bi = Gmag > 70;Gx = [1 +2 +1; 0 0 0; -1 -2 -1]; Gy = Gx';temp_x = conv2(bi, Gx, 'same');temp_y = conv2(bi, Gy, 'same');b2 = sqrt(temp_x.^2 + temp_y.^2);figure, imshow(b2);%image opened horizontally and vertically
se90 = strel('line',3,90);se0 = strel('line',3,0);BWdil = imdilate(b2, [se90 se0]);figure, imshow(BWdil);% Boarders are cleared
BWnobo = imclearborder(BWdil,4);figure, imshow(BWnobo);% Refined the edges
SeD = strel('diamond',1);BWf = imerode(BWnobo, SeD);BWfinal = imerode(BWf,SeD);figure, imshow(BWf),% dege detection done with im2bw
x = im2bw(BWf,0.5);figure, imshow(x),title('X Image');
Now I'm having a dotted line around the optic disk. Could anyone help me to draw a proper circle along the border of the optic disk and to get the coordinates of the centre point with the radius of the circle drawn?
Images attached I = original grayscale image
<<
<<
>> x = final output of the code
>>
Thanks
Best Answer