如何使用 OpenCV 将点从 2D 投影到 3D?

How can I projects points from 2D to 3D using OpenCV?

我正在处理 Camera Calibration and 3D Reconstruction 问题。

OpenCV 或任何其他 Python 包中是否有一种方法可以将给定点从 2D 投影到 3D

  1. R - 一个旋转矩阵,
  2. T - 平移矩阵,
  3. 焦距(f_x, f_y)和光学中心(c_x, c_y)。

因为你没有做立体,从单个 2D 点和相机校准,你无法获得 3D 点(至少没有额外的限制,例如该点在地面或类似的东西) .

从一个2D点得到的是3D射线(3D向量),3D点就在其中。参考下图,来自[https://docs.opencv.org/2.4/_images/pinhole_camera_model.png]:

从(X,Y,Z)可以得到(u,v),但是红线上的任意一点也会投影到同一个(u,v)。这意味着给定 (u, v),您无法知道您正在观察这条线上的哪一点。