【缺陷检测】机器学习啤酒瓶缺陷检测【含Matlab源码 3530期】

在这里插入图片描述

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【缺陷检测】基于matlab机器学习啤酒瓶缺陷检测【含Matlab源码 3530期】
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏Matlab图像处理(初级版)

备注:
点击上面蓝色字体付费专栏Matlab图像处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab图像处理(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、部分源代码

clear all
clc
close all
tic
f = imread(‘无缺陷瓶口原始图像.png’);
if (size(f,3) > 1)
f = rgb2gray(f);
else
f = f;
end
f = f(5:end -5,10:end - 20);
imshow(f,[ ]),title(‘原始图像’)
f = medfilt2(f);
T =Otsu(f);
f_bw = f > T;
figure,imshow(f_bw),title(‘二值化后的图像’)
se = strel(‘disk’,2);
f_bw = imclose(imopen(f_bw,se),se);
%f_bw = imerode(f_bw,se);
figure,imshow(f_bw),title(‘腐蚀之后的图像’)
[P1,P2,P3,P4] = eliminate(f_bw,50);%%
r1 = P2 - P1;
r2 = P4 - P3;
d = abs(r2 - r1) / r2;
if (d < 0.08)
j0 = floor((P1 + P2) / 2);
i0 = floor((P3 + P4) / 2);
f_bw(i0,j0) = 0;
else
disp(‘有缺陷’)
figure,imshow(f_bw),title(‘缺陷图像’)
t = toc
return
end
%%%消除瓶底区域
for i = 1 : size(f_bw,1)
for j = 1:size(f_bw,2)
r = sqrt((i - i0)^2 + (j -j0)^2);
if (r > 56 | r < 42)%%%%%%%%%%%%%参数不好选择
f_bw(i,j) = 0;
else
f_bw(i,j) = f_bw(i,j);
end
end
end
figure,imshow(f_bw),title(‘消除底部’)

%标记连通区域
[L,n] = bwlabel(f_bw,8);
for i = 1:n
ind = find(L == i);
S(i) = numel(ind);
end
I = find(S == max(S));%连通数目最多的区域
ind = find(L ~= I);
f_bw(ind) = 0;

f1 = f_bw(1:i0,1:j0);%左上
f2 = f_bw(1:i0,j0 + 1:end);%右上
f3 = f_bw(i0 + 1:end,1:j0);%左下
f4 = f_bw(i0 + 1:end,j0 + 1:end);%右下

ind1 = find(f1 == 1);
ind2 = find(f2 == 1);
ind3 = find(f3 == 1);
ind4 = find(f4 == 1);

Num = [numel(ind1),numel(ind2),numel(ind3),numel(ind4)];
Max = max(Num);
Min = min(Num);

if ((Max - Min) / Max < 0.1)
disp(‘没有缺陷’)
figure,imshow(f_bw,[ ])
else
disp(‘有缺陷’)
figure,imshow(f_bw,[ ])
end
t = toc

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值