本项目提供了一套基于OpenCV库实现的C++代码,用于完成双摄像机系统的标定工作。包括内外参数校准、镜头畸变矫正等步骤,确保图像拼接与立体视觉应用中的精度需求。
标定步骤实现方法如下:
1. 计算映射矩阵:计算标靶平面与图像平面之间的映射矩阵,此过程不依赖于摄像机的成像模型,而是基于平面标靶坐标点及其对应的图像坐标点数据,通过最小二乘法求解得到。
2. 求解摄像机参数:根据已得的映射矩阵建立基本方程关系来获取与摄像机内部参数相关的基础信息。进一步考虑镜头畸变,并以初步获得的数据为初始条件进行非线性优化搜索,从而得出精确的全部参数值。
3. 确定双目视觉系统中左右两台相机之间的相对位置:对于一个立体视觉系统来说,设左、右两个摄像机相对于世界坐标系的位置关系分别由Rl, Tl和Rr, Tr表示。这意味着空间中的任一点在世界坐标系、左摄相机坐标系及右摄相机坐标系下的坐标分别为Xw, Xl 和 Xr,则有如下公式:Xl=Rl*Xw+Tl; Xr=Rr*Xw+Tr. 因此,两台摄像机之间的相对几何关系可以表示为R=Rr*Rl^-1;T=Tr-Rr*Rl^-1*Tl。
在实际标定过程中,通过使用同一标靶对双摄相机进行同步拍摄来获取各自的内外参数。这不仅可以确定单个摄像机的内部特性,还能同时获得整个立体视觉系统的结构配置信息。基于单一摄像头校准的过程了解到,每当调整标靶位置时就会得到一组新的外参:Rr,Tr与Rl,Tl;由此可以利用公式 R=Rr*Rl^-1 和 T=Tr-Rr*Rl^-1*Tl 来确定相应的系统构造参数。