直线的查找以及平行直线的过滤

本文介绍了在图像处理中寻找并过滤平行直线的方法。通过找轮廓和直线拟合,利用斜率差值判断平行关系,存储斜率及其平行线数量到map中。最终选择最多的斜率对应的直线,删除其他不平行的线条。在处理过程中,由于直线大多是水平的,使用dy/dx代替斜率。通过cvFindContour找轮廓,并排除非目标直线。
摘要由CSDN通过智能技术生成

接上一章,做完图片细化得到细线之后就是直线拟合了。

        思路很简单,先找轮廓,然后用直线拟合。

       

      但是我们要的是平行直线啊,那要把那个很不合群的直线给T掉,这里的思路用的是

  1. 遍历所有直线
  2. 用一个map<float,int>来存储直线,float为斜率slope,int为与这个slope平行的直线总数
  3. 因为斜率存在一定误差,所以不能算严格平行,只要两直线斜率差在一定范围内就算平行了
  4. 因为我这里直线大都是水平的,所以用dx/dy就不合适了,因为dy大部分情况下都很小,所以我用dy/dx来替代斜率
  5. 最后在map中找int最大的那个就是我们要保留的,其他的直线都删掉去啦

首先是用cvFindContour来找轮廓,注意放入这个函数的图像必须是灰度图像,一般使用它之前会进行二值化以得

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值