2011-04-11 113 views
2

我使用的是OpenCV 2.2,我试图校准两台摄像机以便沿着同一个坐标系进行查看。这两台摄像机将彼此分开放置。我理解校准单个相机的内在特性,但是我有点困惑,所以我可以将两个相机组合在一起。后续问题也很好。校准两台摄像机OpenCV

干杯。

编辑 - 我正在处理这个问题 - 将发布并描述当我完成后适合我的东西。

+1

请详细说明'calibrate'的含义 – CharlesB 2011-04-11 19:17:35

+0

我希望它能让我的两台摄像机指向同一个区域时,我确切知道它们的坐标系是如何相互对应的。如果我通过这两个相机看到一个球,我希望我的程序能够理解他们看到的是同样的东西。希望有所帮助。 – sparkFinder 2011-04-11 20:00:18

回答

0

可能的诱骗this?我的答案是StereoCalibrate将允许您解决基本矩阵,您可以使用它将一个摄像机中的任意点与另一个摄像机中的某个点相关联。

+0

那么StereoCalibrate最终会将两台摄像机视为同一台摄像机的两个流? – sparkFinder 2011-04-12 06:45:43

+0

不,它认为它是两个独立的相机。这反映在这个函数需要两组不同的内部函数。 – peakxu 2011-04-12 13:35:36

+0

一旦找到了内在,外部和基本矩阵,我如何将一个点(x,y)从一个摄像机转换到另一个摄像机的坐标系? – 2012-10-25 18:22:55

3

假设您有两台摄像机C1和C2。

  1. 基本矩阵˚F限定,这两个摄像机之间的关系,即意味着在给定的C1的图像点X1它是如何限制在C2对应点X2的位置。答案是:x1在C2中定义了,并且x2 必须在此行上。那是epipolar geometry。它仅由摄像机参数定义,它根本不依赖于场景几何图形而不是而不是

  2. 现在假设你有两个投影矩阵,P1和P2,即你知道两个摄像机的所有参数。如果您有一对对应关系,x1 <→x2(C1中的x1和C2中的x2),则您可以估计在C1中以x1拍摄的空间中X点的3D位置,以及x1 C2。你可以重建你的球,得到一个3D模型。 棘手的部分是找到匹配x1 < - > x2

现在,如果你的问题是要知道,如果C1和C2都看到了同样的事情,也许你的问题不是一个立体声问题,但识别问题。也许SIFTSURF算法是一个更适当的方法。

+0

如果您提供一组对应关系x1 <-> x2,则可以估计基础矩阵。在OpenCV API中查看* cvFindFundamentalMat *。 – 2011-04-13 11:11:29

+0

*学习OpenCV *书的第12章对这个主题进行了温和的介绍。它在理论和OpenCV例程之间提供了良好的平衡。对于所有血淋淋的细节,参考文献是Hartley和Zisserman着作*计算机视觉*中的多视图几何。 – 2011-04-13 11:19:29

+0

“它仅由摄像机参数定义,它根本不依赖于场景几何。” - 这不完全正确。计算基本矩阵不需要显式知道场景几何图形,但改变摄像机的姿态将使其无效(即,如果基线发生变化)。 – 2011-04-25 15:35:59