PlantDisease Classifier Code
PlantDisease Classifier Code
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State,
varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
for k = 1:nColors
colors = I;
colors(rgb_label ~= k) = 0;
segmented_images{k} = colors;
end
figure,subplot(2,3,2);imshow(I);title('Original Image');
subplot(2,3,4);imshow(segmented_images{1});title('Cluster 1');
subplot(2,3,5);imshow(segmented_images{2});title('Cluster 2');
subplot(2,3,6);imshow(segmented_images{3});title('Cluster 3');
set(gcf, 'Position', get(0,'Screensize'));
set(gcf, 'name','Segmented by K Means', 'numbertitle','off')
% Feature Extraction
pause(2)
x = inputdlg('Enter the cluster no. containing the ROI only:');
i = str2double(x);
% Extract the features from the segmented image
seg_img = segmented_images{i};
zero_image = zeros(m,n);
%G = imoverlay(zero_image,seg_img,[1 0 0]);
cc = bwconncomp(seg_img,6);
diseasedata = regionprops(cc,'basic');
A1 = diseasedata.Area;
sprintf('Area of the disease affected region is : %g%',A1);
I_black = im2bw(I,graythresh(I));
kk = bwconncomp(I,6);
leafdata = regionprops(kk,'basic');
A2 = leafdata.Area;
sprintf(' Total leaf area is : %g%',A2);
%Affected_Area = 1-(A1/A2);
Affected_Area = (A1/A2);
if Affected_Area < 0.1
Affected_Area = Affected_Area+0.15;
end
sprintf('Affected Area is: %g%%',(Affected_Area*100))
Affect = Affected_Area*100;
% Create the Gray Level Cooccurance Matrices (GLCMs)
glcms = graycomatrix(img);
result = multisvm(Train_Feat,Train_Label,test);
%disp(result);
% Visualize Results
if result == 0
R1 = 'Alternaria Alternata';
set(handles.edit2,'string',R1);
set(handles.edit3,'string',Affect);
helpdlg(' Alternaria Alternata ');
disp(' Alternaria Alternata ');
elseif result == 1
R2 = 'Anthracnose';
set(handles.edit2,'string',R2);
set(handles.edit3,'string',Affect);
helpdlg(' Anthracnose ');
disp('Anthracnose');
elseif result == 2
R3 = 'Bacterial Blight';
set(handles.edit2,'string',R3);
set(handles.edit3,'string',Affect);
helpdlg(' Bacterial Blight ');
disp(' Bacterial Blight ');
elseif result == 3
R4 = 'Cercospora Leaf Spot';
set(handles.edit2,'string',R4);
set(handles.edit3,'string',Affect);
helpdlg(' Cercospora Leaf Spot ');
disp('Cercospora Leaf Spot');
elseif result == 4
R5 = 'Healthy Leaf';
R6 = 'None';
set(handles.edit2,'string',R5);
set(handles.edit3,'string',R6);
helpdlg(' Healthy Leaf ');
disp('Healthy Leaf ');
end
% Update GUI
guidata(hObject,handles);