我知道棋盘相机校准技术,并且已经实现了它。
如果我有2台摄像机观看同一场景,并且我同时使用棋盘技术校准两者,我可以计算它们之间的旋转矩阵和平移向量吗?怎么样?
答案 0 :(得分:3)
如果您拥有相应点的3D相机坐标,则可以Rigid Body Transformation
计算最佳旋转矩阵和平移向量答案 1 :(得分:2)
如果您已经使用OpenCV,那么为什么不使用cv::stereoCalibrate
。
它返回旋转和平移矩阵。您唯一需要做的就是确保两个摄像机都能看到校准棋盘。
在OpenCV库提供的.cpp示例中显示了确切的方法(我有2.2版本,默认情况下在/ usr / local / share / opencv / samples中安装了示例)。
代码示例名为stereo_calib.cpp。虽然没有清楚地解释他们在那里做了什么(为了你可能想要“学习OpenCV”),这是你可以依据的东西。
答案 2 :(得分:1)
如果我理解正确,你有两个校准过的摄像机观察一个共同的场景,你希望恢复它们的空间排列。这是可能的(只要您找到足够的图像对应关系),但在翻译范围内只能达到未知因素。也就是说,我们可以恢复旋转(3个自由度,DOF)并且只恢复平移的方向(2个自由度)。这是因为我们无法判断投影的场景是否很大,相机是否很远,或者场景是否很小以及相机是否接近。在文献中,5自由度安排被称为相对姿势或相对方向(Google是你的朋友)。 如果您的测量结果准确且位置一般,则6点对应可能足以恢复独特的解决方案。 A relatively recent algorithm正是这样做的。
Nister,D。,“五点相对姿势问题的有效解决方案”,“模式分析与机器智能”,IEEE Transactions on,vol.26,no.6,pp.756,770,June 2004 doi:10.1109 / TPAMI.2004.17
答案 3 :(得分:0)
<强>更新强>
使用动作/束调整包中的结构(如Bundler)同时解决场景的3D位置和相关摄像机参数。
任何此类套餐都需要多个输入:
请注意,解决方案达到了一定的规模歧义。因此,您需要在摄像机之间或场景中的一对物体之间提供距离测量。
原始回答(主要适用于未经校准的相机,正如评论所指出的那样):
来自加州理工学院的这个camera calibration toolbox包含解析和可视化内在物质(镜头参数等)和外在物(每张照片拍摄时相机如何定位)的能力。后者是你感兴趣的。
Hartley and Zisserman blue book也是一个很好的参考。特别是,您可能需要查看关于极线和章节的章节,该章节可以在链接处免费在线。