Opencv 给定第一个摄像机姿势,标定立体装置第二个摄像机的姿态估计
我用opencv校准了一对立体相机。这将导致两个摄影机之间的旋转和平移 我使用第一个摄像头(左)拍摄图像,并使用solvePnp计算左摄像头相对于零件的姿势(rvec和tvec) 我的问题是如何使用左摄像机的姿态以及立体校准中给定的R&T值来计算右摄像机的姿态Opencv 给定第一个摄像机姿势,标定立体装置第二个摄像机的姿态估计,opencv,3d,computer-vision,Opencv,3d,Computer Vision,我用opencv校准了一对立体相机。这将导致两个摄影机之间的旋转和平移 我使用第一个摄像头(左)拍摄图像,并使用solvePnp计算左摄像头相对于零件的姿势(rvec和tvec) 我的问题是如何使用左摄像机的姿态以及立体校准中给定的R&T值来计算右摄像机的姿态 谢谢。这个问题有点不清楚,但我认为您希望找到正确相机相对于零件的姿势。如果是这种情况,最简单的方法如下: 假设Q_pl是左摄影机相对于零件的姿势。这由一个4x4矩阵表示,其前3行和列是零件w.R.t.的旋转矩阵R_pl。左摄像机(您的r
谢谢。这个问题有点不清楚,但我认为您希望找到正确相机相对于零件的姿势。如果是这种情况,最简单的方法如下:
- 假设Q_pl是左摄影机相对于零件的姿势。这由一个4x4矩阵表示,其前3行和列是零件w.R.t.的旋转矩阵R_pl。左摄像机(您的rvec),下行是[0,0,0,1],4列的前3行是从摄像机到零件(您的tvec)的平移向量t_pl的分量。为了说明这一点,您可以通过将零件的x、y和z轴单位向量(从相机上看)的相机帧中的分量作为列向量,然后是从相机到零件的向量,并将[0,0,0,1]作为第四行,来写入Q_pl
- 同样,假设Q_lr是左摄像机相对于右摄像机的姿态(通过校准获得)。将左摄像机的x、y、z单位向量的分量(如右图所示)作为列向量,然后是从右摄像机到左摄像机的平移向量,然后将[0,0,0 1]作为第四行写入该4x4矩阵
- 然后,右摄像机的w.r.t.部分姿势就是两个矩阵的乘积: Q_pr=Q_pl*Q_lr
R_lr = transpose(R_rl)
t_lr = -(R_lr * t_rl)
同样,如果您的solvePnP产生的是Q_lp,那么您将反转Q_lp,而不是Q_pl