EDA365电子论坛网
标题:
基于matalb GUI水果分类系统
[打印本页]
作者:
haidaowang
时间:
2021-6-21 14:24
标题:
基于matalb GUI水果分类系统
9 N0 x$ Q k, l; ~0 V+ E
一、简介
! L5 Z# f( l+ a' y
根据颜色的方法来进行定位水蜜桃、苹果等,我们知道苹果属于红色,我们只要设置好rgb三通道的色彩分量,即可将红色区域给置1,其他非红色区域给置0.留下苹果的颜色。再利用rectangle函数即可定位出原图的位置。该类课题可以拓展到很多其他的应用,如安全帽识别,路锥识别,彩色球识别,交通标志识别等等。
+ i. U* n' F$ [* K% ]
/ z3 |) p7 z' C1 `) |- T
1.jpg
(49.64 KB, 下载次数: 8)
下载附件
保存到相册
2021-6-21 14:24 上传
: T# f$ l3 K) \+ S
. [9 p. }2 @* Y8 L/ b3 b3 |* j
二、源代码
" o5 S% x6 s# q: |7 G( c, Z
5 r: [8 U# S4 k. P! F# D& R O
%1读取原图,并处理成二值图像
I=imread('水果分类实验图像.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);
%得到各个图像的边界像素的数组
%4计算各个图形单元的周长 用连接像素点或数边界像素点个数的方法 numPoints数组表示各个图形边界的像素个数(即用个数来表示周长)
%num = max(max(Label));
for i = 1 : num
Premeter(i) = 0;
end
[row,col] = size(Label);
for i = 1 : row
for j = 1 : col
if(Label(i,j) > 0)
Premeter(Label(i,j)) = Premeter(Label(i,j)) + 1; %计算标记后的各块图形边界中像素的个数的总数
end
end
end
%5计算各个图形单元的面积
FilledLabel = imfill(Label,'holes'); %填充打过标记的边界线中间围成的图形区域
figure,imshow(FilledLabel),title('打过标记后并已被填充的结果图像');
for i = 1 : num
Area(i) = 0;
end
1 k* g6 h; g' U; {1 R' t
3 L* i( L. \8 b
. W, y9 f# @) E) O
作者:
xiaogegepcb
时间:
2021-6-21 16:11
基于matalb GUI水果分类系统
作者:
youOK
时间:
2021-6-21 16:14
基于matalb GUI水果分类系统
作者:
Hello_Mr.li
时间:
2021-6-21 16:20
基于matalb GUI水果分类系统
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2