【疾病分类】模糊逻辑分类叶病严重程度分级系统【含GUI Matlab源码 194期】

news2024/12/25 23:51:07

⛄一、模糊逻辑(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 Lab %
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]张会孔,杨振霞,陈振东,刘汉舒.玉米粗缩病严重度分级标准的研究[J].植保技术与推广. 1998,(05)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/102516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生 | go-micro@v4.9.0源码解析(建议收藏)

go-microv4.9.0源码阅读一、前言二、创建微服务三、源码阅读操作一:注册服务处理操作二:组件配置操作三:启动微服务Step 1 :启动微服务Step 2 :开启服务关闭监听Step 3 :停⽌Server组件Step 4 :…

毕业设计 基于java web的网上零食销售系统的设计与实现

文章目录前言一、项目设计1. 模块设计功能分析前台功能后台功能2. 实现效果二、部分源码项目源码前言 今天学长向大家分享一个 web项目: 基于java web的网上零食销售系统的设计与实现 一、项目设计 1. 模块设计 功能分析 经过对时下大型电商网站的调查,对该系统…

计算机毕业设计 SSM与Vue的垃圾分类系统(源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.2.1 系统开发流程3.2.2 登录流程3.3 系统结构设计4 最后1 项目简介 Hi,各位同学好呀,这里是M学姐! 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品&am…

学人工智能好找工作吗 ?Python就业前景怎么样?

学人工智能好找工作吗?Python就业前景怎么样?人工智能前景很好,中国正在产业升级,工业机器人和人工智能方面都会是热点,而且正好是学习的好时机。但是,也有一个问题大家要注意: 学习的难度比较高…

[附源码]Python计算机毕业设计Django智能衣橱APP

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

数据类型相关笔记

C、C、java强调类型&#xff1b; JavaScript、python、php不看重类型&#xff0c;甚至不需要事先定义。 类型 ○ 整数 ○ 浮点数 ○ 逻辑 ○ 指针 ○ 自定义类型 sizeof 查看所占字节 给出某个类型或变量在内存中所占据的字节数 # include <stdio.h>int main(void) …

怎么把avi转成mp4格式?

怎么把avi转成mp4格式&#xff1f;这是最近大家问的比较频繁的一个问题&#xff0c;avi是一种音频视频的交错格式&#xff0c;可以极大的压缩视频文件本身所占用的内存空间&#xff0c;但是同时引起的负面缺点是使视频画质受损&#xff0c;所以大家在遇到avi格式视频时。可以转…

编程明明是程序员的工作,关学生什么事?

写在前面&#xff1a; 我手里这个魔方&#xff0c;任何一个人都可以轻松地把它打乱&#xff0c;但要想把它复原&#xff0c;就不是每个人都能做到的了。我会还原魔方&#xff0c;而你不会&#xff0c;这能不能说明我比你聪明呢&#xff1f;并不能。 还原一个三阶魔方是有特定的…

12基于储能电站服务的冷热电多微网系统双层优化配置(matlab程序)

参考文献 基于储能电站服务的冷热电多微网系统双层优化配置——吴盛军&#xff08;2020电网技术&#xff09; 主要内容 分析共享储能电站的运行方式和盈利机制。将储能电站服务应用到冷热电联供型多微网系统中&#xff0c;建立考虑两个不同时间尺度问题的双层规划模型&#…

pyTorch入门(四)——导出Minist模型,C++ OpenCV DNN进行识别

学更好的别人&#xff0c;做更好的自己。——《微卡智享》本文长度为2548字&#xff0c;预计阅读8分钟前言前三章介绍了pyTorch训练的相关&#xff0c;我们也保存模型成功了&#xff0c;今天这篇就是使用C OpenCV的DNN模块进行手写图片的推理。实现效果导出的推理模型使用的是M…

基于JSP数码产品交易

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 网站前台&#xff1a;网站介绍、帮助信息、数码资讯、数码产品、讨论信息 管理员功能&#xff1a; 1、管理网站介绍、帮…

运维基础【黑马系列笔记整理分享(上)】

运维基础【黑马系列笔记整理分享(上&#xff09;】 因为笔记所记内容太多&#xff0c;所以我分成了上下两部分来分享给大家查看学习&#xff01;同时我会持续更新博客发布更加优质的文章&#xff0c;希望大家多多支持与关注&#xff01;感谢&#xff01; 一、运维概述 1、运维…

基于PHP+Mysql全品类在线购物商城设计

开发软件&#xff1a;VsCode/Dreamweaver等都行&#xff0c;mysql数据库&#xff0c;apache服务器 开发技术&#xff1a;PHP MVC模式&#xff0c;DIVCSS,Jquery等 这是一个全品类购物商城&#xff0c;可以销售所有品类的商品&#xff0c;包括前端用户和后端管理员2个身份&…

[ 妙用css ]:用css变量解决开发实际问题

各位看官&#xff0c;如何实现以上这种方块的移动&#xff0c;相信对于大家来说并不陌生&#xff0c;无非是几个步骤 1.设置动画 2.进行移动 3.动画循环 <div class"f-box"><div class"box"></div> </div> <style> .f-box…

Springboot工厂制造业WMS仓库管理系统源码为工厂仓库提供高效率管理带小程序和调试视频完全开源 可以二开

系统全开源&#xff0c;无任何加密&#xff0c;适合学习和二次开发 1. 开发语言&#xff1a;JAVA 2. 数据库&#xff1a;MySQL 3. 后端框架&#xff1a;springboot 4. 前端框架&#xff1a;VUE 5. 带小程序端 6. 带调试视频 7. 带部署文档 项目运行环境&#xff1a;JDK1…

使用Echarts完成对中国地图的绘制

目录前言1.什么是Echarts插件2.如何在vue中使用Echarts3.中国地图的具体样式4.如何使用Echarts来完成中国地图的绘制5.总结前言 我们在使用代码绘画地图的时候通常使用的是canvas&#xff0c;但是canvas是H5新增的东西&#xff0c;用起来不免有些麻烦&#xff0c;代码多&#…

聊一聊MySQL的记录锁、间隙锁与 Next-Key Lock

有小伙伴在微信上表示面试时被问到了 Next-Key Lock 是啥&#xff0c;结果一脸懵逼&#xff0c;那么今天我们来捋一捋 MySQL 中的记录锁、间隙锁以及 Next-Key Lock。 1. Record Lock Record Lock 也就是我们所说的记录锁&#xff0c;记录锁是对索引记录的锁&#xff0c;注意…

如何在小程序中完成支付进件?

1. 完成企业认证 1.1. 创建试用小程序 打开一个待发布的项目。点击顶部导航栏的 发布。手机扫码生成试用小程序。点击二维码底部的 发布应用。 1.2. 使用企业主体 转正小程序选择转正类型为 企业认证。 公司代码。 公司名称。 法人姓名。 法人身份证。 法人微信号。 点…

〖产品思维训练白宝书 - 产品思维认知篇②〗- 破局高手都具备的一种底层认知 - 产品思维

大家好&#xff0c;我是 哈士奇 &#xff0c;一位工作了十年的"技术混子"&#xff0c; 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 &#x1f4ac; 人生格言&#xff1a;优于别人,并不高贵,真正的高贵应该是优于过去的自己。&#x1f4ac; &#x1f4e…

C代码中花括号写成这种风格竟被吐槽~

正文大家好&#xff0c;我是bug菌~最近来了位新同事&#xff0c;闲暇时分聊了几句&#xff0c;其中有一点让我记忆特别深刻&#xff0c;说:"怎么我们这边代码中的花括号风格都独立另起一行&#xff0c;看代码的时候挺不适应的~"&#xff0c;我笑着说:"习惯就好了…