我有一个距地面一定高度(h)的单视角相机。通过校准我已经获得了内在参数K,旋转矩阵和平移向量[R | t],并且因为我可以完全访问摄像机和环境,所以我可以测量我想要的任何内容。 我的目标是估计相机上像素[u,v]的深度,因为我知道像素在地板上(所以它相对于相机在y = -h)。 鉴于这种限制,我做了以下(没有成功):
不幸的是它看起来不对劲!我已经解决了这个问题2个星期了,所以从社区获得一些帮助真的很棒。我确信我错过了很明显的东西。
再次感谢
答案 0 :(得分:2)
同质图像坐标为P1 = [u,v,1]
或[f*u,f*v,f]
。
与相机矩阵的倒数相乘可以得到3D点所在的光线。
P2 ~= K⁻¹ * P1 (~= is equality up to a scale factor)
假设摄像机位于C(摄像机坐标系中为(0,0,0,1)),矢量P2的格式为[x,y,z,0]
。 (最后的零使其翻译不变!)
然后您要查找的3D点位于C + k*P2
,您必须求解变量k。
P3 = Rt⁻¹ * (C + k*P2)
P4 = C2 + k * P3
C2是世界坐标中的摄像机位置。
P3是世界坐标中的向量。 P4是Y=-h
最后,插入约束Y=-h
并使用k
组件计算y
:
k = (-h - C2_y) / P3_y