【Matlab疾病分类】模糊逻辑分类叶病严重程度分级系统【含GUI源码 194期】
2022/1/13 14:03:59
本文主要是介绍【Matlab疾病分类】模糊逻辑分类叶病严重程度分级系统【含GUI源码 194期】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、模糊逻辑(Fuzzy Logic)简介
理论知识参考:模糊逻辑(Fuzzy Logic)
二、部分源代码
function varargout = LeafDiseaseGradingSystemGUI(varargin) % LeafDiseaseGradingSystemGUI MATLAB code for LeafDiseaseGradingSystemGUI.fig % LeafDiseaseGradingSystemGUI, by itself, creates a new LeafDiseaseGradingSystemGUI or raises the existing % singleton*. % % H = LeafDiseaseGradingSystemGUI returns the handle to a new LeafDiseaseGradingSystemGUI or the handle to % the existing singleton*. % % LeafDiseaseGradingSystemGUI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in LeafDiseaseGradingSystemGUI.M with the given input arguments. % % LeafDiseaseGradingSystemGUI('Property','Value',...) creates a new LeafDiseaseGradingSystemGUI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the LeafDiseaseGradingSystemGUI before LeafDiseaseGradingSystemGUI_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to LeafDiseaseGradingSystemGUI_OpeningFcn via varargin. % % *See LeafDiseaseGradingSystemGUI Options on GUIDE's Tools menu. Choose "LeafDiseaseGradingSystemGUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help LeafDiseaseGradingSystemGUI % Last Modified by GUIDE v2.5 20-Jan-2015 14:49:28 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @LeafDiseaseGradingSystemGUI_OpeningFcn, ... 'gui_OutputFcn', @LeafDiseaseGradingSystemGUI_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before LeafDiseaseGradingSystemGUI is made visible. function LeafDiseaseGradingSystemGUI_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to LeafDiseaseGradingSystemGUI (see VARARGIN) set(gcf, 'units','normalized','outerposition',[0 0 1 1]); Disease_Grading = readfis('Disease_Grading.fis'); handles.Disease_Grading = Disease_Grading; guidata(hObject,handles); % Choose default command line output for LeafDiseaseGradingSystemGUI handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes LeafDiseaseGradingSystemGUI wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = LeafDiseaseGradingSystemGUI_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in select_image. function select_image_Callback(hObject, eventdata, handles) % hObject handle to select_image (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [File_Name, Path_Name] = uigetfile('PATHNAME'); I = imread([Path_Name,File_Name]); imshow([Path_Name,File_Name], 'Parent', handles.axes1); title('Original Leaf Image', 'Parent', handles.axes1); %# store queryname, version 1 handles.I = I; guidata(hObject,handles); % --- Executes on button press in segmentation. function segmentation_Callback(hObject, eventdata, handles) % hObject handle to segmentation (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) I = handles.I; % Creating color transformation from sRGB to L*a*b % cform = makecform('srgb2lab'); lab_I = applycform(I,cform); ab = double(lab_I(:,:,2:3)); nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); % No of clusters to be created with five iterations % nColors =5; [cluster_idx cluster_center] = kmeans(ab,nColors,'EmptyAction','singleton','distance','sqEuclidean','start',[128,128;128,128;128,128;128,128;128,128]); pixel_labels = reshape(cluster_idx,nrows,ncols); segmented_images = cell(5); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors color = I; color(rgb_label ~= k) = 0; segmented_images{k} = color; end % displaying different show_clusters objects % I_cluster_1 = segmented_images{1}; I_cluster_2 = segmented_images{2}; I_cluster_3 = segmented_images{3}; I_cluster_4 = segmented_images{4}; I_cluster_5 = segmented_images{5}; imshow(I_cluster_1,'Parent', handles.axes2); title('Cluster 1'); handles.I_cluster_1 = I_cluster_1; handles.I_cluster_2 = I_cluster_2; handles.I_cluster_3 = I_cluster_3; handles.I_cluster_4 = I_cluster_4; handles.I_cluster_5 = I_cluster_5; guidata(hObject,handles); % --- Executes on button press in disease_grade. function disease_grade_Callback(hObject, eventdata, handles) % hObject handle to disease_grade (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Disease_Grading = handles.Disease_Grading; white_pixels_I = handles.white_pixels_I ; white_pixels_I_selected = handles.white_pixels_I_selected ; percentage_infected = (white_pixels_I_selected/white_pixels_I)*100; grade = evalfis(percentage_infected,Disease_Grading); figure(); plot(percentage_infected,grade,'g*'); legend('Percent - Grade of Disease'); title('Disease Grade Classification Using Fuzzy Logic'); xlabel('Percentage'); ylabel('Disease Grade'); % --- Executes on button press in binary_original. function binary_original_Callback(hObject, eventdata, handles) % hObject handle to binary_original (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) I = handles.I; BW_I = im2bw(I,0.17); white_pixels_I = sum(BW_I(:) == 1); se = strel('disk',1); closeBW = imclose(BW_I,se); imshow(closeBW,'Parent', handles.axes2); title('Binary of Original Image'); handles.white_pixels_I = white_pixels_I; guidata(hObject,handles);
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
五、获取代码方式
Matlab王者助手CSDN名片
这篇关于【Matlab疾病分类】模糊逻辑分类叶病严重程度分级系统【含GUI源码 194期】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)