一、简介
基于matlab水果识别系统,水果识别是计算机视觉领域中的一个重要应用,其目标是自动识别图像中的水果种类。近年来,随着深度学习和图像处理技术的发展,水果识别技术在农业、食品安全和自动化生产等领域得到了广泛应用。本文将介绍一种基于Matlab的水果识别方法,包括图像导入、预处理、特征提取和分类模型构建等步骤。
二、部分源码
%清空变量
clear
clc
close all;
caitu=imread('2.jpg');%读取图片信息
figure,imshow(caitu);title('原始图像');%显示原始图
huitu=rgb2gray(caitu);%将rgb图转化为灰度图
yuantu=im2double(huitu);%将图片类型数据转化为double类型
figure,imshow(huitu);title('灰度图像');%显示灰度图
erzhi=im2bw(yuantu,graythresh(yuantu));%根据一定的阈值,生成二值图像
figure,imshow(erzhi);title('二值图像');%显示二值图
%消除噪点,经多次腐蚀膨胀操作目的是为平滑边界
se=strel('disk',10);%设置连通域
erzhi=imopen(erzhi,se);%开操作
erzhi=imclose(erzhi,se);%闭操作
figure,imshow(erzhi);title('平滑图像');%平滑处理
%提取彩色区域
%以下为提取水果部分
%以下代码为颜色提取
daxiao=size(caituz);%获取size方便后续提取颜色运算
caituhsv=rgb2hsv(caituz);%将rgb格式转化为hsv格式
%设定阈值来判定某一像素术语何种颜色
huang=0;hong=0;%定义变量存放不同颜色像素数量
for i=1:daxiao(1)
for j=1:daxiao(2)
if erzhi(i,j,1)==0&&(caituhsv(i,j,1)>=0.08&&caituhsv(i,j,1)<=0.24)
huang=huang+1;
elseif erzhi(i,j,1)==0&&(caituhsv(i,j,1)>=0.92||caituhsv(i,j,1)<=0.08)
hong=hong+1;
end
end
end
%以下为形状特征提取部分
%以下代码为根据特种来判断水果类别
if huang>hong %根据上面计算,图片中黄色像素点多于红色,则在香蕉和;梨中选择
if( yuandu<0.46 )
%普通对话框
h=dialog('name','识别结果','position',[700 400 200 70]);
uicontrol('parent',h,'style','text','string','结果为香蕉!','position',[50 40 120 20],'fontsize',12);
uicontrol('parent',h,'style','pushbutton','position',...
[80 10 50 20],'string','确定','callback','delete(gcbf)');
else
h=dialog('name','识别结果','position',[700 400 200 70]);
uicontrol('parent',h,'style','text','string','结果为梨!','position',[50 40 120 20],'fontsize',12);
uicontrol('parent',h,'style','pushbutton','position',...
[80 10 50 20],'string','确定','callback','delete(gcbf)');
end
else if( yuandu>0.8 )
%普通对话框
h=dialog('name','识别结果','position',[700 400 200 70]);
uicontrol('parent',h,'style','text','string','结果为苹果!','position',[50 40 120 20],'fontsize',12);
uicontrol('parent',h,'style','pushbutton','position',...
[80 10 50 20],'string','确定','callback','delete(gcbf)');
else
h=dialog('name','识别结果','position',[700 400 200 70]);
uicontrol('parent',h,'style','text','string','无法识别!','position',[50 40 120 20],'fontsize',12);
uicontrol('parent',h,'style','pushbutton','position',...
[80 10 50 20],'string','确定','callback','delete(gcbf)');
end
end
三、运行结果
四、matlab版本
MATLAB R2019a
五、学习与交流
文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信