计算三维世界点

2024-06-16 10:17:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我是OpenCV的初学者,我想从2D(投影到图像上)找到3D点,并且知道一个点的三分之二的世界坐标。在

我拥有的:

  1. 校准摄像机(已知:固有参数矩阵、畸变系数向量)
  2. 旋转矢量和平移矢量
  3. (u,v)-图像上一点的坐标
  4. 一个点的两个已知世界坐标和一个未知坐标

问题变量1已知:X,Y未知:Z

问题变量2已知:X,Z未知:Y

问题变量3已知:Y,Z未知:X

我怎样才能找到第三个未知坐标?有可能吗?在


Tags: 图像参数矢量矩阵向量opencv摄像机投影
1条回答
网友
1楼 · 发布于 2024-06-16 10:17:43

是的,这是可能的。考虑缺少非线性失真的简单情况。设Ki为摄影机矩阵的倒数,摄影机中心位于世界原点(即没有旋转或平移)。设p=(u,v,1)为齐次像素坐标。那么穿过像素的光线是:

s * P = Ki * p

其中s > 0是未知标度。但是s * P = [X, Y, Z],所以如果你知道X,Y或Z中的任何一个,你就可以求解s并找到丢失的坐标。在

对于非零旋转平移,将Ki替换为投影矩阵的逆。对于非零失真,用完整的重投影方程代替简单的Ki乘法。在

相关问题 更多 >