python+opencv实现传统方法车道线检测(canny算子边缘检测+基尔霍夫变换+多项式拟合)四

霍夫变换

通过前文操作,得到了车道线的一系列边缘像素点,并没有连成线

霍夫变换可以通过像素点找到图中的直线。霍夫变换有3种,标准霍夫变换,多尺度霍夫变换和累计概率霍夫变换,前两种使用HoughLines函数,最后一种使用HoughLines函数实现。累计霍夫变换的执行效率更高,所以一般更多的倾向使用累计概率霍夫变换。

霍夫变换将在迪卡尔坐标系下的线条转换到极坐标系下,迪卡尔坐标下通过一个点的所有直线的集合在极坐标系下是一条正弦曲线。正弦曲线的交点,表示这些曲线代表的点在同一条直线上。霍夫变换就通过找这些交点,确定哪些像素点是在同一条直线上。关于霍夫变换的具体讲解可以参考:

经典霍夫变换(Hough Transform)-优快云博客

lines = cv2.HoughLinesP(edge_img, 1, np.pi / 180, 15, minLineLength=40, maxLineGap=20)

霍夫变换参数:

参数一:要检测的图片矩阵

参数二:距离r的精度,值越大,考虑越多的线

参数三:距离theta的精度,值越大,考虑越多的线

参数四:累加数阈值,值越小考虑越多的线

minLineLength:最短长度阈值,短于这个长度的线会被排除(得到的是一个个线段,短的线段剔除,可能是误差)

maxLineGap:同一直线两点之间最大距离(比如左上角和右上角的点连成的线距离太远了就通过这个排除)

返回值:1*4的矩阵数组,线段两端点的坐标值

[np.array([[x_1, y_1, x_2, y_2]]),

np.array([[x_1, y_1, x_2, y_2]]),

...,

np.a

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值