OpenCV中两点之间的距离

Aiz*_*zen 2 c opencv image-processing perspectivecamera

我想测量两点之间的实际距离,就像路上有一辆车在我面前,我和车辆之间的距离是多少?

我继续这样做:

1)找到透视变换以获得顶视图.

2)然后试图找到距离.

问题是我无法获得正确的顶视图.

如果有任何替代方式请告诉.

Jav*_*ock 5

要测量两个3D点之间的距离,您需要找到两个点的3D坐标.然后很容易计算出欧氏距离:

d(p1,p2)= sqrt{(p1_x - p2_x)^2+(p1_y - p2_y)^2+(p1_z - p2_z)^2}
Run Code Online (Sandbox Code Playgroud)

这里的问题是在场景中找到对象的3D点(因为你知道你在哪里,在摄像机,参考坐标).

要找到3D位置,您需要找到单应性或相机姿势.为此,您需要在场景中检测至少4个点,这些点与您先验知道的已知模型或图像的4个点相匹配.例如,如果你有一个汽车的3D模型,并且你能够在场景中检测到与你的3D模型相对应的真实汽车的点,你将能够计算单应性变换,因此,你可以计算三维位置.那些点.

无论如何,问题很复杂,您需要使用许多算法进行检测,匹配,校准,并且您需要知道要检测哪个对象.

  • 随着单应性转换:http://stackoverflow.com/a/10750648/744859 (5认同)