找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1584|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

掃描圖像測(cè)距離看工件是否合格 求大神幫忙看看代碼哪里錯(cuò)了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
%%%%%%%%%絕緣紙平行豎直測(cè)量%%%%%%%
I=imread('C:\Users\weixing\Desktop\17AM\11.10\59.png');
I= imcrop(I,[410 243 55 217]);%分割出第一個(gè)溫控器
I=im2bw(I,0.7);%圖像二值化
h=fspecial('gaussian',3,1.8);%sigma=1.8的3*3高斯模板
I=imfilter(I,h);%進(jìn)行高斯平滑濾波
BW=edge(I,'canny');
%執(zhí)行Hough變換并顯示Hough矩陣
[H,T,R]=hough(BW);
%在Hough矩陣中尋找前8個(gè)大于Hough矩陣中最大值0.3倍的峰值
P=houghpeaks(H,2,'threshold',ceil(0.3*max(H(:))));
x=T(P(:,2));y=R(P(:,1));%由行、列索引轉(zhuǎn)換成實(shí)際坐標(biāo)
%找到并繪制直線
lines=houghlines(BW,T,R,P,'FillGap',100,'MinLength',20);%合并距離小于5的線段,丟棄所有長度小于7的直線段
for k=1:length(lines)%依次標(biāo)出各條直線段
    xy=[lines(k).point1;lines(k).point2];
end
if (k==2)
   
%獲得兩條線段端點(diǎn)的坐標(biāo)
x1y1=[lines(1).point1;lines(1).point2];
x2y2=[lines(2).point1;lines(2).point2];
%判斷絕緣紙是否豎直
if(abs(x1y1(1,1)-x1y1(2,1))<=10&&abs(x2y2(1,1)-x2y2(2,1))<=10)
    jyz1=1;
else
    jyz1=0;
end
else
    jyz1=0;
end

%%%%%%%%%%%管腳長度和絕緣紙長度測(cè)量%%%%%%%%%%%
I=imread('C:\Users\weixing\Desktop\17AM\11.10\59.png');
I1= imcrop(I,[360 190 150 290]);
A1=zeros(8,2);
B1=zeros(2,2);
i=1;
x=46;
     for y=1:80
         if(I1(y,x)>=I1(y+1,x))
           m=I1(y,x)-I1(y+1,x);
         else
           m=I1(y+1,x)-I1(y,x);  
         end
           if(m>25)
             B1(1,1)=x;
             B1(1,2)=y;
             if( abs(B1(2,2)-B1(1,2))>10)
                 B1(2,1)=x;
                 B1(2,2)=y;
                 A1(i,1)=x;
                 A1(i,2)=y;
                 i=i+1;
             end   
           end
     end
   
     A1(i,1)=x;
     A1(i,2)=A1(i-1,2)+167;
      i=i+1;
     
     for y=250:290
          if(I1(y,x)>=I1(y+1,x))
           m=I1(y,x)-I1(y+1,x);
         else
           m=I1(y+1,x)-I1(y,x);  
         end
           if(m>25)
             B1(1,1)=x;
             B1(1,2)=y;
             if(abs(B1(2,2)-B1(1,2))>10)
           
                 B1(2,1)=x;
                B1(2,2)=y;
                  A1(i,1)=x;
                 A1(i,2)=y;
                i=i+1;
             end   
           end
     end
  x=116;
     for y=1:60
           if(I1(y,x)>=I1(y+1,x))
           m=I1(y,x)-I1(y+1,x);
           else
           m=I1(y+1,x)-I1(y,x);  
           end
           if(m>25)
             B1(1,1)=x;
             B1(1,2)=y;
             if( abs(B1(2,2)-B1(1,2))>10)
           
                 B1(2,1)=x;
                 B1(2,2)=y;
                  A1(i,1)=x;
                 A1(i,2)=y;
                i=i+1;
              end
            
               
           end
     end
     for y=250:290
          if(I1(y,x)>=I1(y+1,x))
           m=I1(y,x)-I1(y+1,x);
         else
           m=I1(y+1,x)-I1(y,x);  
         end
           if(m>25)
             B1(1,1)=x;
             B1(1,2)=y;
             if(abs(B1(2,2)-B1(1,2))>10)
           
                 B1(2,1)=x;
                B1(2,2)=y;
                  A1(i,1)=x;
                 A1(i,2)=y;
                i=i+1;
             end   
           end
     end
   j=1;
     for i=1:8
         if(A1(i,1)==46)
            j=j+1 ;
         end
     end
if(abs(A1(1,2)-A1(j,2))<10)
    gjcd1=1;
else
    gjcd1=0;
end
if(abs(A1(3,2)-A1(2,2))>16&&abs(A1(3,2)-A1(7,2))>16&&abs(A1(4,2)-A1(5,2))>16&&abs(A1(4,2)-A1(8,2))>16)
    jyzcd1=1;
else
    jyzcd1=0;
end

0.png (472.93 KB, 下載次數(shù): 53)

圖片0

圖片0
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表