【水果识别】基于matlab数字图像处理的水果识别【源码69期】

一、简介

基于matlab数字图像处理的水果识别,本文使用软件MATLAB对多种水果混合图片进行水果提取与识别,利用软件采集图像,对图像进行去噪,灰度化,二值化处理,为填补二值化后图像中出现的断边、孔洞,使用Sobel算子进行边缘提取来接合断边,并用腐蚀,膨胀算法填充孔洞,再标签化处理图像并提取水果的颜色、形状、边缘特征。实验结果表明:所提出的方法能够获得很高的正确识别率,能够有效地将同一幅图像中的不同水果识别出来。

二、部分源码

clear;
clc;
close all;
%1读取原图,并处理成二值图像
I=imread('水果分类实验图像2.jpg');

I2=rgb2gray(I);
BW=im2bw(I2,0.9);
total=bwarea(~BW)
figure,subplot(1,3,1),imshow(I),title('原始图像');
subplot(1,3,2),imshow(I2),title('灰度图像');
subplot(1,3,3),imshow(BW),title('二值图像');

%2进行边缘检测 得到了不连续的图形边界(采用sobel算子或区域增长)

%3得到各个图形的连续边界

SE=strel('rectangle',[40 30]);  % 结构定义
J2=imopen(BW,SE);            % 开启运算
figure,imshow(J2),title('对二值图像进行开运算后的结果图像');

SE=strel('square',5); % 定义3×3腐蚀结构元素
J=imerode(~J2,SE);
BW2=(~J2)-J;        % 检测边缘
figure,imshow(BW2),title('3*3腐蚀运算后的图像边界轮廓');

%填充了已有的检测的连续形状边界
B = imfill(BW2,'holes');
B = bwmorph(B,'remove');
figure,imshow(B),title('提取出的边界图像');

%3-2将不同的图形进行分别标记,num表示连接的图形对象的个数
[Label,num] = bwlabel(B,8);

三、运行结果

四、matlab版本

MATLAB R2019a

五、学习与交流

文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值