我已经在stackoverflow和OpenCV Q / A上阅读了很多问题,但我仍然无法解决我的问题。
我需要估算相机的世界坐标。这是我的工作流程:
首先,我需要校准我的相机。为了加快速度,我使用的是虚拟摄像头。因此我渲染了一些图像。这是一个例子:
我已经完成了10个。既然是CG摄像头,我已经知道了它的所有参数,但该项目最终会使用真正的摄像头,所以我需要校准过程。
要校准我的相机,我使用cv2.calibrateCamera()
。这个功能给了我:
相机矩阵
失真
rvecs
tvecs
矩阵相机没问题,因为它的值与我的虚拟相机相匹配。
现在我想看看我是否可以使用与图像D相关的tvec
和rvec
估算相机在图像D中的位置。为此,我和#39;我在做:
获取旋转矩阵R:cv2.Rodrigues(rvec, R)
使用C = - np.matmul(R.T, tvec)
不幸的是,位置C完全不同于3D软件中相机的位置。
最后,我不知道如何使用rvec
来估计相机的旋转,以便它以与虚拟相机在3D软件中相同的方式看到棋盘图案。