玻璃缺陷检测系统图片分析程序
clc;
clear all;
I = imread('2.png');
figure(1);imshow(I);title('原图像');
I = rgb2gray(I);
[M,N]=size(I);
figure(2);subplot(221),imshow(I);title('原灰度图像');
获取原图片进行灰度处理,显示原灰度图像
figure(2);subplot(221),imshow(I);title('原灰度图像');
H3 = fspecial('average',[3,3]);
medfilt_I = imfilter(I,H3);
%进行模板为3×3的中值滤波
subplot(222),imshow(medfilt_I);title('中值滤波后图像');
对图片进行3*3中值滤波
P=adapthisteq(medfilt_I,'Numtiles',[4 4]);%对比度增强
P1=imadjust(P);%亮度调整
P2=medfilt2(P1,[3,3]);%再次对处理后的图像进行中值滤波,平滑处理
subplot(223),imshow(P2);title('增强对比度和亮度后的图像');
H=im2double(P2);%转换为double类型
[Gx,Gy]=imgradientxy(I,'sobel');
[Gmag,Gdir]= imgradient(Gx,Gy);
subplot(224);imshow(Gmag,[]);title('缺陷目标轮廓');
先转成double类型数据然后对图片进行梯度处理
计算出图片的梯度幅值
如果目标图片不是纯黑则判断玻璃不完整。