如何在校准和校正后使Camera Projection Matrix进行三角测量

时间:2015-04-28 17:51:01

标签: opencv 3d-reconstruction

我能够弄清楚如何为一组立体相机生成相机矩阵而不需要重新定位。我所做的是两次调用calibrateCamera,这为每个摄像机提供了C1,R1和T1以及C2,R2和T2。

我将其组合以使投影矩阵P1 = C1 * [R1 | T1],并且P2 = C2 * [R2 | C2]。这是一个3x4矩阵

然后我有一个我自己的对应算法产生一个对应关系,然后我给它们每个triangulatePts提供一组3D点。

现在,我需要在运行对应算法之前使用立体声校正。在进行立体声校正后,我对如何获得投影矩阵感到困惑。我们似乎得到两个旋转矩阵(让它们被称为R *)和一个新的投影矩阵(P *)。我现在如何组合这些以获得一个新的投影矩阵(3x4矩阵)以输入三角形图片?

该示例似乎只解决了如何使用这些矩阵并运行initUndistorRectifyMap并重新映射,以便图像对齐。它也给了我一个视差图,但我不认为我应该使用它,因为我这样做的唯一目的是测试一个对应算法,这将产生一个良好的视差图。

编辑:我认为相机中没有失真,在这种情况下大多数情况都是如此。

1 个答案:

答案 0 :(得分:0)

这里的答案有点明显,尽管当时并非如此。我正在寻找的投影矩阵是P1和P2。这可以直接用于处理triangulatePts。

我的困惑是由于研究如何构造具有失真参数的投影矩阵。实际上,这不是必需的,因为整个重映射过程不会对图像产生影响,因此我们可以直接使用P1和P2作为投影。希望这有助于某人。