gpt4 book ai didi

opencv - 给定第一个相机姿势,校准立体装置的第二个相机的姿势估计

转载 作者:太空宇宙 更新时间:2023-11-03 21:27:49 26 4
gpt4 key购买 nike

我使用 opencv 校准了一对立体相机。这导致两个相机之间的旋转和平移。

我使用第一个摄像头(左)拍摄图像,并使用 solvePnp 计算左侧摄像头相对于零件的位姿(rvec 和 tvec)。

我的问题是如何使用左摄像头的位姿和立体校准中给定的 R & T 值计算右摄像头的位姿?

谢谢。

最佳答案

问题有点不清楚,但我认为您想找到与零件相关的正确相机的姿势。如果是这种情况,最简单的方法如下:

  • 设 Q_pl 为左侧相机相对于零件的位姿。这由一个 4x4 矩阵表示,其前 3 行和列是部件 w.r.t 的旋转矩阵 R_pl。左摄像头(你的 rvec),底行是 [0, 0, 0, 1],第 4 列的前 3 行是 来自 摄像头的平移向量 t_pl 的分量 < em>到 部分(你的 tvec)。为澄清起见,您通过将零件的 x、y 和 z 轴单位向量(从相机上看)的相机坐标系中的分量按纵坐标写为列向量来编写 Q_pl,然后是向量来自 相机 部分,然后将 [0, 0, 0, 1] 写为第四行。
  • 同样,令 Q_lr 为左侧相机相对于右侧相机的位姿(通过校准获得)。您编写这个 4x4 矩阵,将左侧相机(从右侧看)的 x、y、z 单位向量的分量作为列向量,然后是右侧相机 的平移向量 < em>到左边,然后在第四行写[0, 0, 0 1]。
  • 零件的姿势 w.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,则您将反转 Q_lp。

关于opencv - 给定第一个相机姿势,校准立体装置的第二个相机的姿势估计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19503278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com