首页 > 解决方案 > 没有内在相机矩阵的反投影

问题描述

我正在尝试验证将像素点(u,v)反投影到 3D 世界位置(x,y,z)的解决方案,除了(u,v)之外,仅使用相机的外部旋转和平移。

建议的解决方案

我在虚幻中模拟了这个问题,我有一个世界位置(1077,1133,450)和旋转yaw = 90,pitch = 345,roll = 0度的虚拟相机。我有一个已知 3D 位置 (923,2500,0) 的对象,由 1280x720 相机在像素位置 (771,426) 或帧中心位置 (131,-66) 看到。

我的旋转矩阵的转置是:

[[ 5.91458986e-17  9.65925826e-01 -0.00000000e+00]
[-1.00000000e+00  6.12323400e-17  0.00000000e+00]
[-1.58480958e-17 -2.58819045e-01  9.65925826e-01]]

我的 Tx_Ty_Tz 矩阵是:

[[-1094.39396119]
[ 1077.        ]
[ -141.42464373]]

我的 dx_dy_dz 矩阵是

[[ -63.75110454]
[-131.        ]
[  18.0479828 ]]

我最终将位置 (-1593,50,0) 作为反投影的世界坐标,这显然是错误的。我的矩阵之一是否计算不正确?如果没有,提供的方法是否有缺陷/不完整?

标签: opencvcomputer-visionlinear-algebra

解决方案


链接中提出的解决方案似乎并不准确,因为反投影应该需要固有的相机矩阵。


推荐阅读