霍夫变换
通过前文操作,得到了车道线的一系列边缘像素点,并没有连成线
霍夫变换可以通过像素点找到图中的直线。霍夫变换有3种,标准霍夫变换,多尺度霍夫变换和累计概率霍夫变换,前两种使用HoughLines函数,最后一种使用HoughLines函数实现。累计霍夫变换的执行效率更高,所以一般更多的倾向使用累计概率霍夫变换。
霍夫变换将在迪卡尔坐标系下的线条转换到极坐标系下,迪卡尔坐标下通过一个点的所有直线的集合在极坐标系下是一条正弦曲线。正弦曲线的交点,表示这些曲线代表的点在同一条直线上。霍夫变换就通过找这些交点,确定哪些像素点是在同一条直线上。关于霍夫变换的具体讲解可以参考:
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

最低0.47元/天 解锁文章
153

被折叠的 条评论
为什么被折叠?



