2

如果我已经在实验室中计算了内在函数(相机矩阵和失真系数)。

然后,我将相机移到了现实世界的领域。我在现实世界中使用了大约 6-10 个已知位置,使用 SolvePnP() 估计相机位姿。所以我也有两个相机旋转和平移。

我现在想使用 2 个摄像头来创建立体通信。问题是:我必须使用 stereoCalibrate() 吗?

或者我可以使用已知的内在函数立即调用 StereoRectify 吗?它说 StereoRectify() 期望旋转和平移向量/矩阵,文档说它期望:

"The rotation matrix between the 1st and the 2nd cameras’ coordinate systems."

由于我有两个相机的相机姿势,我可以简单地减去从 SolvePnP 获得的 2 个平移矢量和旋转矢量,并将结果传递给 StereoRectify() 吗?(两台相机使用相同的共同物点参考系统)

4

1 回答 1

1

将相机校准到世界(例如您的已知位置)与校准它们彼此不同。在您的情况下,您可以减去平移向量。这将为您提供从一台摄像机到另一台摄像机的转换(前提是您使用相同的固定点校准它们)。你也可以得到相机间的旋转矩阵,但这不能通过简单地减去它们来完成,你需要更复杂的数学。这就是为什么我建议你使用 opencv 提供的立体校准。

于 2013-01-16T17:26:51.767 回答