资源简介

基于机器视觉的零件缺陷检测,主要是对热轧钢缺陷的检测。

资源截图

代码片段和文件信息


%%%与inspectionoflwb相比,将检测程序集成到一块了,并与2相比,缩减了检测区域,确定了矩形小区域。
%%%%先判断长条形异常点,如果有,累加个数,如果超过某数,则有缺陷,否则,判断该点周围有无凹坑缺陷的可能(周围异常点个数多于某个数目)
%%%单个图像检测程序
%%%优化还在进行中……
%%%比6对裁剪图像左右进行了扩展,只是演示了效果,没有考虑优化和时间 啊啊
%%%%对最顶行和最低行8行进行了处理啊啊啊
function [caijianxxx3x4]=inspection10oflwb(imagethrethre2)

%image=double(image);

[mn]=size(image);

tic;
%x(1:m1:n)=0;%x(1:m1:n)=255;%%%%注意此处不能是x=255;这样只是使第一个元素为255了啊啊啊啊
x=zeros(mn);

%temp1(1:m)=0;%%%%第一个点的位置
%temp2(1:m)=0;%%%%第二个点的位置
%dis(1:m)=0;%%%%两个点之间的距离
temp1=zeros(1m);
temp2=zeros(1m);
%dis=zeros(1m);


%meanofcolumn1=0;
%meanofcolumn2=0;
%temp(2)=0;

tic;
%%%查找第一个点
for kk=4:n-3  %%%(注意:这儿从4开始,意味着后面程序几个地方也从4开始,如35行for循环)
%if((abs(image(1kk-1)-image(1kk+1))>50)&&(abs(image(1kk-1)+image(1kk-2)+image(1kk-3)-image(1kk+1)-image(1kk+2)-image(1kk+3))>150)&&(abs(image(1kk-1)+image(1kk-2)-image(1kk+1)-image(1kk+2))>100))
if(((image(1kk+1)-image(1kk-1))>thre)&&((image(1kk+1)+image(1kk+2)+image(1kk+3)-image(1kk-1)-image(1kk-2)-image(1kk-3))>(3*thre))&&((image(1kk+1)+image(1kk+2)-image(1kk-1)-image(1kk-2))>(2*thre)))
temp1(1)=kk;
break;
end
end

%x(1kk)=0;

%%%查找第二个点inspection10oflwb(
for tt=n-3:-1:4
if(abs(image(1tt-1)+image(1tt-2)+image(1tt-3)-image(1tt+1)-image(1tt+2)-image(1tt+3))>(3*thre))
temp2(1)=tt;
break;
end
end

%x(1tt)=0;

%dis(1)=tt-kk;
%%%判断两个点是否重合,重合说明圆钢跳动跳出图像范围(或者另外一条边在没有检测的六个像素点内),视野内只有一个边缘,并且得出是哪个边,然后后续处理

%%%%查找其余行的两个边缘点
for ii=2:m
    %%%第一个点
    %if(abs(image(iikk-1)-image(iikk+1))<50)
    if(image(iikk+1)-image(iikk-1)
        if(image(iikk)-image(iikk-2)>thre)
            kk=kk-1;
        else
            if(image(iikk+2)-image(iikk)>thre)
                kk=kk+1;
            else
                if(image(iikk-1)-image(iikk-3)>thre)
                    kk=kk-2;
                else
                    if(image(iikk+3)-image(iikk+1)>thre)
                        kk=kk+2;
                    end
                end
            end
        end

    end

    temp1(ii)=kk;
    %%%第二个点
    if(image(iitt-1)-image(iitt+1)
        if(image(iitt-2)-image(iitt)>thre)
            tt=tt-1;
        else
            if(image(iitt)-image(iitt+2)>thre)
                tt=tt+1;
            else
                if(image(iitt-3)-image(iitt-1)>thre)
                    tt=tt-2;
                else
                    if(image(iitt+1)-image(iitt+3)>thre)
                        tt=tt+2;
                    end
                end
            end
        end

    end
    temp2(ii)=tt;
 %   dis(ii)=temp2(ii)-temp1(ii);
    %x(iikk)=0;
    %x(iitt)=0;
end
dis=temp2-temp1;%%%%优化的代码
%%%%以下为将检测出的图像进行拉直处理:以第一个点为基准,先让每一行第一个点在同一列上,然后平移第二个边缘点,然后以最左侧的第二个边缘点为准,图像分
%%%%割,切去背景,得到拉直的无背景图像
for ii=1:m
    d=temp1(ii)-temp1(1);
    for jj=temp1(1):(temp1(1)+dis(ii)-1)%jj=4:n-3
        x(iijj)=image(iijj+d);
    end
end

%w

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-05-01 00:22  热轧钢缺陷检测\
     文件      525366  2014-04-27 14:58  热轧钢缺陷检测\1100000200.BMP
     文件      525366  2014-04-27 14:58  热轧钢缺陷检测\1100000356.BMP
     文件      525366  2014-04-27 14:58  热轧钢缺陷检测\1100004532.BMP
     文件      525366  2014-04-27 14:58  热轧钢缺陷检测\1300004702可能工人敲的.BMP
     文件      525366  2014-04-27 14:58  热轧钢缺陷检测\1800013422.BMP
     文件      525366  2014-04-27 14:58  热轧钢缺陷检测\1800013528.BMP
     文件      525366  2014-04-27 14:58  热轧钢缺陷检测\2000001263.BMP
     文件      525366  2014-04-27 14:58  热轧钢缺陷检测\2000001904.BMP
     文件     2098230  2014-04-27 14:57  热轧钢缺陷检测\900013248.BMP
     文件       13969  2014-04-27 14:58  热轧钢缺陷检测\rezhagangquexianjiance.m

评论

共有 条评论