Matrix 计算从静态摄影机到地平面上对象的距离

Matrix 计算从静态摄影机到地平面上对象的距离,matrix,camera,coordinates,distance,projection,Matrix,Camera,Coordinates,Distance,Projection,我有一个固定的摄像头,它离地面640mm,稍微向前倾斜(关于x轴?)大约30度,所以它朝着一个平坦的地平面稍微向下看 我的目标是确定从相机到它在地面上检测到的任何小物体的距离,例如,如果我的相机检测到一个位于像素[314203]的物体,我想知道该物体在地面上的什么位置,在世界坐标[x,y,z]中y=0,以及到该物体的距离 我绘制了一张图表,以便更好地将问题形象化: 我有我的旋转矩阵和平移向量,还有我的内在矩阵,但我不确定1)根据上面的信息/图表,旋转矩阵和平移向量是否正确,2)如何继续计算出一

我有一个固定的摄像头,它离地面640mm,稍微向前倾斜(关于x轴?)大约30度,所以它朝着一个平坦的地平面稍微向下看

我的目标是确定从相机到它在地面上检测到的任何小物体的距离,例如,如果我的相机检测到一个位于像素[314203]的物体,我想知道该物体在地面上的什么位置,在世界坐标[x,y,z]中y=0,以及到该物体的距离

我绘制了一张图表,以便更好地将问题形象化:

我有我的旋转矩阵和平移向量,还有我的内在矩阵,但我不确定1)根据上面的信息/图表,旋转矩阵和平移向量是否正确,2)如何继续计算出一个数学公式来计算距离和真实世界的位置。以下是我到目前为止的情况:

从方向[-30,0,0](度)生成的旋转矩阵R(此处生成)
R=
[1.0000000,0.0000000,0.0000000;
0.0000000,0.8660254,-0.5000000;
0.0000000、0.5000000、0.8660254]

摄像机位于地平面上方640mm处
t=
[0640,0]

摄像机提供的校准信息的固有矩阵
fx=349.595,fy=349.505,cx=328.875,cy=178.204
K=
[349.595,0.0000,328.875;
0.0000、349.505178.204;
0.0000,0.0000,1.000]

我也有这些失真参数,我不确定如何处理它们,或者它们是否与K
相关 k1=-0.170901,k2=0.0255027,k3=-9.30328e-11,p1=0.000117187,p2=6.42836e-05

我走了这么远,然后就迷路了,任何帮助都将不胜感激。
另外,如果这是一个大量的信息或如果它在任何方面令人困惑,我也很抱歉,当谈到投影矩阵时,我是一个非常初学者

更新:

在我自己做了更多的研究和测试之后,我发现了一个公式,它似乎给了我一个相当不错的近似值。给定像素[x,y],我发现(我认为)从相机原点到像素坐标的方向向量:

dir_x=(x-cx)/fx

方向y=(y-y)/fy

dir_z=1

然后乘以旋转矩阵R,得到真实世界的向量。然后,我将相机高度(640mm)除以该向量的y值,这会给我(我想)到现实世界中指定像素的距离。经过一些手工测试和测量后,这似乎是一种找到距离的合适方法,但我不确定我是否错过了准确度的步骤,或者我是否真的完全错了

同样,我们非常感谢您的任何见解