距离估计opencv基于向量

时间:2017-04-08 04:45:56

标签: c++ opencv camera vector-graphics

我正在尝试使用OpenCV计算距离并模拟2d矢量场。

短篇小说: 我有:

  • 摄像机角度
  • 相机位置
  • 2对象位置

image : 2d field on x axis

我在某个高度和角度设置相机。 我的第一个场景,位置(3,0)的对象(在帧中:y = 0)。 第二个场景,在(5,0)(在帧中:y = 240)

我的问题是,

  • 在继续之前,是否可以使用此方法?
  • 如果对象位于(7,0),我怎么知道对象在框架中的位置?我应该使用什么等式?
  • 我是否需要了解镜头失真? (目前使用视频输入,后来将使用相机)做相机失真校准会 修好了吗?

长篇故事:

我需要估算一个车距。 我已阅读http://www.pyimagesearch.com/2015/01/19/find-distance-camera-objectmarker-using-python-opencv/。它使用对象的固定宽度或高度,意味着如果对象发生了变化,结果将被更改(我是对的吗?)所以我需要一个变通方法。

或者如果你有更好的方法,我会很高兴知道它。谢谢。

1 个答案:

答案 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对象,这意味着他可以轻松找到仿射变换来细化结果。你不知道我猜的所有车的大小,你只需要找到最近车轮的位置。祝你好运:)向谷歌询问实时汽车检测等内容。

汽车的阴影也是一个问题,我希望你住在北欧:)