Drawing a circle around optic disk
古いコメントを表示
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
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Optics についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
