使用opencv我已经校准了一对立体相机。这导致两个摄像机之间的旋转和平移。
我使用第一个相机(左)拍摄图像并使用solvePnp 计算左相机相对于零件的姿势(rvec 和tvec)。
我的问题是如何使用左摄像头的姿势以及立体校准中给定的 R & T 值来计算右摄像头的姿势?
谢谢。
使用opencv我已经校准了一对立体相机。这导致两个摄像机之间的旋转和平移。
我使用第一个相机(左)拍摄图像并使用solvePnp 计算左相机相对于零件的姿势(rvec 和tvec)。
我的问题是如何使用左摄像头的姿势以及立体校准中给定的 R & T 值来计算右摄像头的姿势?
谢谢。
这个问题有点不清楚,但我认为您想找到正确相机相对于零件的姿势。如果是这种情况,最简单的方法如下:
右侧相机部分的位姿就是两个矩阵的乘积:
Q_pr = Q_pl * Q_lr
请注意,因素的顺序很重要。这个表达式简单地说,要从右边的相机到零件,你可以先从右边的相机到左边的相机,然后从那里到零件。同样,这个变换的旋转部分在 Q_pr 的前 3 行和 3 列,从右侧相机到该部分的平移向量在第 4 列。
请注意,您的校准程序可能给您 Q_rl,而不是 Q_lr。如果是这种情况,您只需将其反转即可。逆很容易计算:
R_lr = transpose(R_rl)
t_lr = -(R_lr * t_rl)
同样,如果这是您的 solvePnP 产生的,您将反转 Q_lp,而不是 Q_pl。