1

我正在使用OpenCV 3.0stereoRectifyUncalibrated()下的方法进行立体视觉。

我通过以下步骤校准我的系统:

  1. 检测和匹配来自 2 个摄像头的图像之间的 SURF 特征点
  2. findFundamentalMat()与配对申请
  3. 用 得到整流同应性stereoRectifyUncalibrated()

对于每个相机,我计算一个旋转矩阵如下:

R1 = cameraMatrix[0].inv()*H1*cameraMatrix[0];

要计算 3D 点,我需要获取投影矩阵,但我不知道如何估计平移向量。

我试过decomposeHomographyMat()这个解决方案https://stackoverflow.com/a/10781165/3653104但旋转矩阵与我用 R1 得到的不同。

当我使用 R1/R2(使用initUndistortRectifyMap()后跟remap())检查校正后的图像时,结果似乎正确(我使用极线检查)。

我对视力的薄弱知识有点迷茫。因此,如果有人可以向我解释。谢谢 :)

4

1 回答 1

0

您提供的链接中的代码 ( https://stackoverflow.com/a/10781165/3653104 ) 计算的不是相机的旋转而是 3x4 位姿。

姿势的最后一列是您的平移向量

于 2015-05-12T06:29:59.437 回答