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

本文介绍了一种基于MATLAB的图像处理方法,通过计算图像的梯度来检测图像中的轮廓,并采用二值化处理进一步突出轮廓特征。此外,还讨论了如何通过直线拟合对检测到的轮廓进行分析。
摘要由CSDN通过智能技术生成


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))

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值