转自:http://sites.google.com/site/opencv123/sample_explain/stereo_calib_theory
关于立体视觉的傻瓜研究
vinjn @ 2009
立体视觉,又称双目视觉,即Stereo Vision,在机器人领域用于检测障碍物及感知周围环境。用两个摄像头对同一个场景进行拍摄,摄像头之间隔开一定距离,就和人眼一样。同一件物体在我们双眼中的成像是不同的,有一定的偏移量,这个量我们称之为视差(disparity)。即下图中的d。
d:视差
f:焦距P:观察的物体xl/xr:P在左右两个画面上的位置
有了视差,我们可以进一步计算深度Z:
Z和d成反比关系
这是比较理想的情况,实际应用中需要解决很多问题。先对整个成像的过程来个感性的认识。
1.校正镜头,undistortion
1.1 why
存在两种扭曲
1.2 how
得到一些值,如相机矩阵,镜片的扭曲参数。
单个摄像头的情况
两个摄像头的情况
校正只需要进行一次,校正中常用的物体是一个棋盘,产生的结果可以被重复使用。
2.对齐两幅图,rectification
2.1 why
2.2 how
根据校正获得的参数,进行计算。remap。
3. 左右图像匹配,correspondence
这一步的目的是生成disparity map
输入的两张图是校正过并且对齐过的。
4. 三维成像,reprojection
这个比较麻烦了。