我已经在stackoverflow和OpenCV Q / A上阅读了很多问题,但我仍然无法解决我的问题 .

我需要估计相机的世界坐标 . 这是我的工作流程:

  • 首先,我需要校准我的相机 . 为了加快速度,我正在使用虚拟相机 . 因此我渲染了一些图像 . 这是一个例子:

enter image description here

我've rendered 10 of them. Since it a CG camera, I already know all its parameters, but the project will eventually use real camera, so I need to calibration process. To calibrate my camera, I' m使用 cv2.calibrateCamera() . 这个功能给了我:

  • 相机矩阵

  • 扭曲

  • rvecs

  • tvecs

矩阵相机没问题,因为它的值与我的虚拟相机相匹配 .

  • 现在我想看看是否可以使用与图像D相关的 tvecrvec 估算相机在图像D中的位置 . 为此,我正在做:

  • 获取旋转矩阵R: cv2.Rodrigues(rvec, R)

  • 获取相机的位置: C = - np.matmul(R.T, tvec)

不幸的是,位置C完全不同于3D软件中相机的位置 .

最后,我不知道如何使用 rvec 估计相机的旋转,以便它以与虚拟相机在3D软件中相同的方式看到棋盘图案 .