机器视觉学习笔记(8)——基于OpenCV的Bouguet立体校正
标签: 机器视觉
1.什么是立体校正
在机器视觉学习笔记(7)——基于OpenCV的双目摄像机标定中,我们已经计算出描述两个{camera}坐标系关系的矩阵R和T,立体校正主要就是这两个参数在发挥作用。双目摄像机系统主要的任务就是测距,而视差求距离公式是在双目系统处于理想情况下推导的,所以就要将实际的双目系统校正为理想的双目系统。
理想双目系统:两摄像机图像平面平行,光轴和图像平面垂直,极点处于无线远处,此时点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)对应的级线就是 y = y 0 y=y_0 y=y0
2.Bouguet校正原理
- 校正过程如下图所示:
- 校正过程中两个图像平面均旋转一半的R,这样可以使重投影畸变最小,此时两个摄像机图像平面共面(畸变校正后光轴也平行),但是行不对准
- 极点是两个{camera}坐标系原点的连线和图像平面的交点,要想使得极点处于无穷远处(即行对准),就必须两个摄像机的图像平面和两个{camera}坐标系原点的连线平行
- 可以计算 R r e c t R_{rect} Rrect矩阵使得极点处于无穷远处:
设
(1) R r e c t = [ e 1 T e 2 T e 3 T ] R_{rect}= \begin{bmatrix} e_1^T\\e_2^T\\e_3^T \end{bmatrix}\tag{1} Rrect=⎣⎡e1Te2Te3T⎦⎤(1)
由于图像平面最终和{camera}坐标系连线平行,所以
(2) e 1 = T ∣ ∣ T ∣ ∣ e_1=\frac{T}{||T||}\tag{2} e1=∣∣T∣∣T(2)
其中 T = [ T x , T y , T z ] T T=[T_x,T_y,T_z]^T T=[Tx,Ty,Tz