Sample Solution/Used Solution (UA515)
Note: For this assignment, All the Images and rest coding part will be provided along with the complete sample report once you pay the 6 USD charges.
Diabetic Retinopathy Detection Using MATLAB
Name of the Student
Name of the University
Table of Content
Introduction:
The major goal is to implement a method for Diabetic Retinopathy Detection using MATLAB. We are using the deep learning method using MATLAB. The project is capable of taking an image of the right and left eyes of the person through an external camera and the system is able to detect through GUI. Then, the image is processed considering various factors and the result is obtained finally whether the disease is detected or not.
There are some signs of diabetic retinopathy that can be detected using the digital images. The three functions selected for the image processing system depend on three major symptoms of the diabetic retinopathy (Gulshan et al 2016). They are abnormal disc to cup ratio, exudates and haemorrhages Exudate can be found as brighter clusters in the fundus Image. Haemorrhage can be found as darker clusters of blood vessels or dark spots. The average blood vessel width in retina is 125µm. So if there is some dark vessel having greater than 125µm width can be identified as as haemorrhage. The third factor which we use is the cup to disc ratio for the fundus image. In normal eye, this ratio must be in the range 0.3 to 0.4.
Nowadays, we have advanced digital pixel processing systems. Hence, the automated image processing system is becoming popular. But the systems that are able to execute a particular dispute detection function only (Gargeya and Leng 2017). Hence, if the patient does not show that one dispute, he is identified as disease free. However, an advanced digital image processing system must can scan and process every pixel to find multiple disputes at the same time.
Methodology
A method has been developed to perform the diabetic retinopathy detection by developing an algorithm to do the same thing. Then, we use some set of steps to analyse an image and then decide whether the eye is healthy or it is not healthy. This depends on certain parameters. Finally, we provide a proper solution in case diabetic retinopathy is detected and this is developed using MATLAB GUI interfaced with Hardware. We analyse the image using pixel by pixel analysis algorithm available in MATLAB.
We use 5 steps to implement this : input, pre-processing, image processing, decision making, output result. The image processing section has image processing systems: Cup to Dist ratio detection, Exudates detection and Haemorrhage Detection.
Pre-processing phase:
The image is resized and compressed to minimize the pixel count to make the system fast. Median filter colour normalization is used to minimize any unwanted high saturation colour without changing the sharpness of the image. Next, edge enhancement is done to enhance the differences between different colour shades. The colour space conversion is used to generate the basic dimensional numeric of the retina from the back background.
Image processing phase:
We run three functions simultaneously.
The Cup to Dist detection function measures the area covered by the Disk and the cup to compare them. When the ratio is more than 5:2 then the dispute signal has to be sent to decision database.
In Exudates Detection function, the Segmentation and Local thresholding are used to extract the brighter pixels from the fundus image used. After extracting the brighter pixels from thresholding the cup and disk area will be removed. After removal the number of remaining pixels will be the parameter of measuring the Exudates.
In Haemorrhage Detection function the Segmentation and Local thresholding are used to extract the darker pixels from the fundus image. These darker pixels are the blood vessels and Haemorrhages. The pixels with greater than 125µm collective structure come in the category of Haemorrhage. After extracting the blood vessel structure from the frame, the number of remaining pixels act as the parameter to measure the Haemorrhage.
Decision making phase:
This is the last and the final stage. In the decision Database, the collected signals from image processing are to be analysed. If any disputed signal is found, then the final result will be generated that the diabetic retinopathy is detected. Otherwise, the output message will show that the eye is completely healthy.
Figure 1
Figure 2
In the program, we first preprocess the image function which is a ‘jpg’ image. This image is then resized and compressed. Then, median filter colour normalization is applied and then edge enhancement is done. After colour space conversion, the co-ordinates of the cup center and diameter are fetched. Then the center co-ordinates and the diameter values are stored in a 2D array.
Next, we start with image processing. The disc to cup detection function is designed. The ratio if greater than 5:2 gives rise to a dispute. The segmentation and local threshold function is then implemented. Firstly, the image is changed from RGB to monochrome. Then, we select pixels with the threshold value more than 16. Next we remove the pixels of the disk and cup section. If the number of bright pixels is more than the normal, then a dispute arises.
The Haemorrhage detection function is designed. We select the pixels with the value less than 4. Then, we select the pixel clusters greater than 125 micro meter width. If the pixel count is more than the normal value, we get a dispute.
The image considered here is a jpg image and it can be linked when the program is run. We can select the image when prompted to do so.
We have completed all the 5 steps to implement this : input, pre-processing, image processing, decision making, output result. The image processing section has image processing systems: Cup to Dist ratio detection, Exudates detection and Haemorrhage Detection.
Pre-processing phase:
The image is resized and compressed to minimize the pixel count to make the system fast. Median filter colour normalization is used to minimize any unwanted high saturation colour without changing the sharpness of the image. Next, edge enhancement is done to enhance the differences between different colour shades. The colour space conversion is used to generate the basic dimensional numeric of the retina from the back background.
Image processing phase:
We run three functions simultaneously.
The Cup to Dist detection function measures the area covered by the Disk and the cup to compare them. When the ratio is more than 5:2 then the dispute signal has to be sent to decision database.
In Exudates Detection function, the Segmentation and Local thresholding are used to extract the brighter pixels from the fundus image used. After extracting the brighter pixels from thresholding the cup and disk area will be removed. After removal the number of remaining pixels will be the parameter of measuring the Exudates.
In Haemorrhage Detection function the Segmentation and Local thresholding are used to extract the darker pixels from the fundus image. These darker pixels are the blood vessels and Haemorrhages. The pixels with greater than 125µm collective structure come in the category of Haemorrhage. After extracting the blood vessel structure from the frame, the number of remaining pixels act as the parameter to measure the Haemorrhage.
Decision making phase:
This is the last and the final stage. In the decision Database, the collected signals from image processing are to be analysed. If any disputed signal is found, then the final result will be generated that the diabetic retinopathy is detected. Otherwise, the output message will show that the eye is completely healthy.
Conclusion
Hence, we have implemented a method for Diabetic Retinopathy Detection using MATLAB. We have used the deep learning method using MATLAB. The project is capable of taking an image of the right and left eyes of the person through an external camera and the system is able to detect through GUI. Then, the image is processed considering various factors and the result is obtained finally whether the disease is detected or not.
References:
Gargeya, R. and Leng, T., 2017. Automated identification of diabetic retinopathy using deep learning. Ophthalmology, 124(7), pp.962-969.
Gulshan, V., Peng, L., Coram, M., Stumpe, M.C., Wu, D., Narayanaswamy, A., Venugopalan, S., Widner, K., Madams, T., Cuadros, J. and Kim, R., 2016. Development and validation of a deep learning algorithm for detection of diabetic retinopathy in retinal fundus photographs. Jama, 316(22), pp.2402-2410.
Appendix :
Code
Image Preparation:
%% Image Preparation
[fname path] = uigetfile (‘*.jpg’, ‘enter an image’);
fname = strcat(path,fname);
im = imread (fname);
subplot(2,2,1);
imshow(im);
title (‘retina image’);
im1 = imresize(im,[100 150]);
subplot(2,2,2);
imshow(im1);
title(‘resized’);
R = im1(:,:,1);
G = im1(:,:,2);
B = im1(:,:,3);
M (:,:,1) = medfilt2(R);
m (:,:,2) = medfilt2(G);
m (:,:,3) = medfilt2(B);
subplot(2,2,3);
imshow(m);
title(‘median’)
kernel = -1*ones(3);
kernel(2,2) = 17;
im2 = imfilter(m, kernel);
subplot (2,2,4);
imshow (im2);
title (‘edge’);
Disc to Cup detection function:
%% Disc to Cup detection function
[fname path] = uigetfile (‘*.jpg’, ‘enter an image’);
fname = strcat(path,fname);
im = imread (fname);
subplot(2,3,1);
imshow(im);
title (‘retina image’);
im1 = imresize(im,[100 150]);
subplot(2,3,2);
imshow(im1);
title(‘resized’);
R = im1(:,:,1);
G = im1(:,:,2);
B = im1(:,:,3);
im2(:,:,1) = medfilt2(R);
im2(:,:,2) = medfilt2(G);
im2(:,:,3) = medfilt2(B);
subplot(2,3,3);
imshow(im2);
title(‘median’);
im3 = imsharpen(im2);
subplot(2,3,4);
imshow(im3);
title(‘Sharpened Image’);
im4 = rgb2gray(im3);
subplot(2,3,5);
imshow(im4);
title(‘gray’);
[centers,radii] = imfindcircles(im4,[9 27],’ObjectPolarity’,’dark’,’sensitivity’,0.72);
display(centers);
display(radii);
viscircles(centers, radii,’EdgeColor’,’b’);
Segmentation and local thresholding function:
%% Segmentation and local thresholding function
[fname path] = uigetfile (‘*.jpg’, ‘enter an image’);
fname = strcat(path,fname);
im = imread (fname);
subplot(2,3,1);
imshow(im);
title (‘retina image’);
im1 = imresize(im,[100 150]);
subplot(2,3,2);
imshow(im1);
title(‘resized’);
R = im1(:,:,1);
G = im1(:,:,2);
B = im1(:,:,3);
m(:,:,1) = medfilt2(R);
m(:,:,2) = medfilt2(G);
m(:,:,3) = medfilt2(B);
subplot(2,3,3);
imshow(m);
title(‘median’);
im3 = rgb2gray(m);
subplot(2,3,4);
imshow(im3);
title(‘monochrome’);
im4 = im2bw(im3,0.6);
subplot(2,3,5);
imshow(im4);
title(‘threshold’);
im5 = im4 – bwareaopen(im4,80);
[im6, n] = bwlabel(im5);
subplot(2,3,6);
imshow(im6);
title(‘removed’);
disp(n);
if (n>1)
display(‘Problem is detected’);
else
display(‘No problem’);
end
Haemorrhage Detection Function:
%% Haemorrhage Detection Function
[fname path] = uigetfile (‘*.jpg’, ‘enter an image’);
fname = strcat(path,fname);
im = imread (fname);
subplot(2,4,1);
imshow(im);
title (‘retina image’);
im1 = imresize(im,[100 150]);
subplot(2,4,2);
imshow(im1);
title(‘resized’);
R = im1(:,:,1);
G = im1(:,:,2);
B = im1(:,:,3);
m(:,:,1) = medfilt2(R);
m(:,:,2) = medfilt2(G);
m(:,:,3) = medfilt2(B);
subplot(2,4,3);
………………………………
……………………………….
…………………………….
Another 200+ lines
Download the complete sample solution for the above mentioned assignment (Diabetic Retinopathy Detection Using MATLAB) or order an fresh assignment. We are ready to do it for you.
Client on the below button and mention assignment ID UA515 to download the task after paying 6 USD only.
Diabetic Retinopathy Detection Using MATLAB