问题描述
在自动驾驶中,车道线是基础也是很重要的环节. 对于做过车道线检测算法的,一定对鸟瞰图很熟悉.
由于如何得到鸟瞰图不是这篇文章要描述的重点,所以忽略.我想做的事情是将鸟瞰图,完成车道线检测后的直线坐标返回像素坐标中,显示出来.然而找了很多资料都没有说清楚,所以写来下,方便记忆.
计算过程
首先看看opencv是怎么计算鸟瞰图的坐标的,
api.png
这里说的很清楚,像素坐标系[x,y,z]与透视矩阵M(3*3)的乘法计算,得到鸟瞰坐标dst(x),dst(y),这里令z=1.
反过来,现在我知道了鸟瞰图的坐标 dst(x),dst(y),计算公式也有了,那么求原来的像素坐标x,y 也就是数学计算问题了.为了的方便一点,我把透视变换矩阵M都写出来了,
透视变换.png
接下来就是式子展开
透视变换2.png
要求像素坐标x,y, 只要对上面等式求逆,即可.
透视变换3.png
通过这样的计算就可以将鸟瞰图坐标返回像素坐标了.
网友评论