单应性投影矩阵

时间:2015-01-30 11:05:29

标签: c++ opencv projection-matrix

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

我使用以下步骤校准我的系统:

  1. 检测并匹配来自2个摄像头的图像之间的SURF特征点
  2. 使用匹配的paairs
  3. 应用findFundamentalMat()
  4. 使用stereoRectifyUncalibrated()
  5. 获取纠正单应性

    对于每个摄像机,我按如下方式计算旋转矩阵:

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

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

    我尝试decomposeHomographyMat()和此解决方案https://stackoverflow.com/a/10781165/3653104但旋转矩阵与我从R1获得的旋转矩阵不同。

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

    由于我对视力的认识不足,我有点失落。因此,如果有人可以向我解释。谢谢:))

1 个答案:

答案 0 :(得分:0)

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

姿势的最后一列是你的翻译矢量