我正在使用OpenCV 3.0stereoRectifyUncalibrated()
下的方法进行立体视觉。
我通过以下步骤校准我的系统:
- 检测和匹配来自 2 个摄像头的图像之间的 SURF 特征点
findFundamentalMat()
与配对申请- 用 得到整流同应性
stereoRectifyUncalibrated()
。
对于每个相机,我计算一个旋转矩阵如下:
R1 = cameraMatrix[0].inv()*H1*cameraMatrix[0];
要计算 3D 点,我需要获取投影矩阵,但我不知道如何估计平移向量。
我试过decomposeHomographyMat()
这个解决方案https://stackoverflow.com/a/10781165/3653104但旋转矩阵与我用 R1 得到的不同。
当我使用 R1/R2(使用initUndistortRectifyMap()
后跟remap()
)检查校正后的图像时,结果似乎正确(我使用极线检查)。
我对视力的薄弱知识有点迷茫。因此,如果有人可以向我解释。谢谢 :)