我正在尝试使用OpenCV计算距离并模拟2d矢量场。
短篇小说: 我有:
我在某个高度和角度设置相机。 我的第一个场景,位置(3,0)的对象(在帧中:y = 0)。 第二个场景,在(5,0)(在帧中:y = 240)
我的问题是,
长篇故事:
我需要估算一个车距。 我已阅读http://www.pyimagesearch.com/2015/01/19/find-distance-camera-objectmarker-using-python-opencv/。它使用对象的固定宽度或高度,意味着如果对象发生了变化,结果将被更改(我是对的吗?)所以我需要一个变通方法。
或者如果你有更好的方法,我会很高兴知道它。谢谢。
答案 0 :(得分:0)
鉴于你知道相机的位置和属性,你可以找到汽车的确切位置,如果它看着一条直道并且汽车没有飞行:)
如果给定对象,我如何知道对象在帧中的位置 (7,0)?我应该使用什么等式?
您需要找到intersection of two lines。第一个线交叉点 p1(0,1.5)和 p2(0,7);第二行 P1(3,0), P2(f / cos(a),1.5)
P2是绿线(图像平面,或点(y =?),...)和地平线的交点。 f 是焦距, a 是fov线和地平线之间的角度。
我是否需要了解镜头失真? (目前使用视频输入, 稍后将使用相机)做相机失真校准将解决 它?
您提供的链接使用矩形的大小和三角形相似度来查找距离。它还使用2D对象,这意味着他可以轻松找到仿射变换来细化结果。你不知道我猜的所有车的大小,你只需要找到最近车轮的位置。祝你好运:)向谷歌询问实时汽车检测等内容。
汽车的阴影也是一个问题,我希望你住在北欧:)