matlab使用opencv (轮廓提取+直线拟合)

来源:互联网 发布:淘宝联盟返现到哪里 编辑:程序博客网 时间:2024/04/29 23:56


I =imread('1.jpg');%读取图片 I1 = double(I1);[Gx,Gy]=gradient(I1); G=sqrt(Gx.*Gx+Gy.*Gy)/255;%%求图像梯度  I2 = rgb2gray(G);figure,imshow(G);I2(I2<30/255)=0;%%%二值化I2(I2>=30/255)=1;U= findContours(I2);%轮廓提取[m,n] = size(U);%得到轮廓数量aa = ones(n,4);for i=1:n     d = U(1,i);    [ii,jj] = size(d{1,1});     jj    if jj<10%过小的轮廓不要               continue;    end%%%%%%直线拟合-start%%%%%%%%%%%%%aa(i,:)= fitLine(d{1,1});%%%%%%直线拟合-end%%%%%%%%%%%%%end


将得到四个值   前两个为x、y方向的单位向量长度利用x、y计算角度

 这样就得到角度了 rad2deg( atan(y/x))

0 0
原创粉丝点击