【水果识别】基于matlab水果识别系统【源码49期】

一、简介

基于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
文中部分源码仅供参考,若需要全部代码可以私信

  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个基于 MATLAB水果识别系统的实现流程,主要包括图像预处理、特征提取、分类模型训练和水果识别等步骤: 1. 图像预处理:对水果图像进行预处理,包括图像去噪、图像增强、图像分割等操作,以提高后续特征提取和分类的准确率。 2. 特征提取:从预处理后的图像中提取特征,包括颜色特征、纹理特征、形状特征等。常用的特征提取方法包括颜色直方图、Gabor 滤波器、形态学处理等。 3. 特征选择:根据分类任务的需要,选择最具有区分度的特征。 4. 分类模型训练:使用机器学习算法,如支持向量机(SVM)、决策树(Decision Tree)、神经网络(Neural Network)等,设计分类模型,并使用已有的水果图像数据集进行训练。 5. 水果识别:对新的水果图像进行预处理和特征提取,将提取得到的特征输入到分类模型中进行分类预测,得到水果的种类。 下面是一个简单的 MATLAB 代码示例,用于实现基于颜色直方图的水果识别系统: ```matlab % 加载数据集 load('fruit_data.mat'); % 图像预处理 for i = 1:length(fruit_data) img = imread(fruit_data(i).filename); img = imnoise(img, 'gaussian', 0, 0.01); % 添加高斯噪声 img = imadjust(img); % 图像增强 fruit_data(i).image = img; end % 特征提取,使用颜色直方图作为特征 features = extract_feature(fruit_data); % 特征选择,选择前 3 个特征 features = features(:,1:3); % 分类模型设计,使用 SVM 算法 SVMModel = fitcsvm(features, [fruit_data.labels]); % 水果识别 new_img = imread('apple.jpg'); new_img = imnoise(new_img, 'gaussian', 0, 0.01); new_img = imadjust(new_img); new_feature = extract_feature(new_img); new_feature = new_feature(:,1:3); label = predict(SVMModel, new_feature); fprintf('识别结果:%s\n', fruit_data(label).name); ``` 其中,`fruit_data.mat` 是包含水果图像数据和标签的数据集文件,`extract_feature` 函数用于提取颜色直方图特征。在这个例子中,我们使用 SVM 算法进行分类,最后对新的水果图像进行预处理和特征提取,将提取得到的特征输入到分类模型中进行分类预测,得到水果的种类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值