【缺陷检测】基于matlab表面缺陷检测设计【源码82期】

一、简介

基于matlab表面缺陷检测设计,缺陷检测作为保证产品质量和安全生产的关键环节,其重要性不言而喻。然而,传统的人工检测方法不仅效率低下,而且容易受到主观因素的影响,导致漏检和误检率较高。因此,建立基于MATLAB的缺陷检测设计系统,旨在通过自动化、智能化的技术手段,提高缺陷检测的准确性和效率,从而保障产品质量和安全生产。

二、部分源码

clc;clear all,close all;
I = imread('mixed1.jpg');
figure(1);imshow(I);title('原图像');
I = rgb2gray(I);
[M,N]=size(I);
figure(2);subplot(131),imshow(I);title('原灰度图像');
medfilt_I=midfilt(I,3);%进行模板为3×3的中值滤波
subplot(132),imshow(medfilt_I);title('中值滤波后图像');
P=adapthisteq(medfilt_I,'Numtiles',[4 4]);%对比度增强
P1=imadjust(P);%亮度调整
P2=midfilt(P1,3);%再次对处理后的图像进行中值滤波,平滑处理
subplot(133),imshow(P2);title('增强对比度和亮度后的图像');

H=im2double(P2);%转换为double类型
g_gradient=SobelFilter(H); %求梯度值
figure(3),subplot(221);imshow(g_gradient);title('梯度值');
th=0.997;% 梯度阈值
g_T=zeros(M,N);%初始化零矩阵
g_T=uint8(g_T);%转换uint8数据类型
ind=find(g_gradient>th);%把梯度值大于阈值的像素点位置记录下来
g_T(ind)=256;%把这些点的灰度级设为256,最高灰度级
subplot(222);imshow(g_T);title({'根据梯度值提取出的目标轮廓';'(图片四周也有梯度较大的区域)'});
lap = uint8(zeros(M,N));%初始化一张同样大小的黑色图像
for i=2:M-1
    for j=2:N-1
        lap(i,j) = g_T(i,j);%将g_T除了图片四周,其他的值赋给lap
    end
end
subplot(223),imshow(lap);title('缺陷目标轮廓');

三、运行结果

 四、matlab版本

MATLAB R2019a

五、学习与交流

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值