Opencv 基于摄像机矩阵的物体与摄像机的真实距离

Opencv 基于摄像机矩阵的物体与摄像机的真实距离,opencv,image-processing,camera-calibration,aruco,optics-algorithm,Opencv,Image Processing,Camera Calibration,Aruco,Optics Algorithm,如何计算已知尺寸的物体(例如打印在纸上的0.14m阿鲁科标记)与摄像机的距离。我知道摄像机矩阵(camMatx)和我的fx,fy~=600px,假设没有失真。根据这些数据,我能够计算阿鲁科标记的姿势,并获得[R | t]。现在的任务是获取阿鲁科标记与摄像机的距离。我还知道相机距地平面的高度(15m) 我应该如何着手解决这个问题。任何帮助都将不胜感激。另外请注意,我也看到过类似三角形的方法,但这将有助于了解物体的距离,这不适用于我的情况,因为我必须计算距离 注:我不知道摄像机传感器的高度。但我知道

如何计算已知尺寸的物体(例如打印在纸上的0.14m阿鲁科标记)与摄像机的距离。我知道摄像机矩阵(camMatx)和我的fx,fy~=600px,假设没有失真。根据这些数据,我能够计算阿鲁科标记的姿势,并获得[R | t]。现在的任务是获取阿鲁科标记与摄像机的距离。我还知道相机距地平面的高度(15m)

我应该如何着手解决这个问题。任何帮助都将不胜感激。另外请注意,我也看到过类似三角形的方法,但这将有助于了解物体的距离,这不适用于我的情况,因为我必须计算距离

注:我不知道摄像机传感器的高度。但我知道摄像机离地面有多高


我知道物体移动区域的尺寸(70m x 45m)。最后,我想在按比例绘制的2D地图上绘制移动对象的坐标

如果你知道[R | t],你的t向量是从相机到标记的距离,在相机帧中。您是否正在尝试测量其他东西?当摄像头与标记器在前面时,即当摄像头几乎与标记器相对时(0,0),我会得到正确的距离。但在我的例子中,标记是在一个移动的物体上。我错过了一些数学知识吗?我还是不明白你想说什么。你是说当标记器静止时,距离是正确的,但当标记器移动时,距离不是正确的?当tvec有+ve x时,距离是正确的,但当它变为负值时,距离是不正确的?你为什么不在原始问题中添加任何这些关键细节?而且,如果没有看到您的代码,很难回答这个问题。