如果我已经在实验室中计算了intrinsic(相机矩阵和失真系数)
然后我把相机移到了现实世界的田野里。我在现实世界中使用了大约6-10个已知位置,使用SolvePnP()来估计相机姿势。我还有两个摄像头旋转和平移。
我现在想使用2个相机来创建一个立体通信。问题是:我必须使用stereoccalibrate()吗?
或者我可以使用已知的特性立即调用StereoRectify吗?它说StereoRectify()期望得到一个旋转平移向量/矩阵,文档说它期望:
"The rotation matrix between the 1st and the 2nd cameras’ coordinate systems."
既然我有两个相机的相机姿态,我可以简单地减去2平移矢量和旋转矢量我从SolvePnP得到,并将结果传递给StereoRectify()吗?(两台相机使用相同的公共物点参考系统)
将相机校准到世界(例如您已知的位置)与将它们彼此校准不同。在这种情况下,你可以减去平移向量。这将为您提供从一个摄像机到另一个摄像机的转换(前提是您使用相同的固定点校准它们)。您也可以获得相机间旋转矩阵,但这不能通过简单地减去它们来完成,您需要更复杂的数学。这就是为什么我建议你使用opencv提供的立体声校准。