opencv3双目视觉中的立体校正原理

立体校正就是,把实际中非共面行对准的两幅图像,校正成共面行对准。

(1)未校正以前左右眼视图


(2)校正后的左右眼视图

通过图可以很直观的看到效果


我们知道,立体匹配是三维重建、立体导航、非接触测距等技术的关键步骤,它通过匹配两幅或者多幅图像来获取深度信息。并且广泛应用于,工业生产自动化、流水线控制、无人驾驶汽车(测距,导航)、安防监控、遥感图像分析、机器人智能控制等方面。”而立体图像校正是降低立体匹配计算复杂性的最有效方法之一。 因为当两个图像平面是完全共面行对准时,立体匹配从二维搜索降至一维搜索,并且可以过滤掉无匹配点。但是,在现实的双目立体视觉系统中,是不存在完全的共面行对准的两个摄像机图像平面的,所以我们要进行立体校正。

Bouguet校正原理

校正过程中两个图像平面均旋转一半的R,这样可以使重投影畸变最小,此时两个摄像机图像平面共面(畸变校正后光轴也平行),但是行不对准
极点是两个相机坐标系原点的连线和图像平面的交点,要想使得极点处于无穷远处(即行对准),就必须两个摄像机的图像平面和两个相机坐标系原点的连线平行
可以计算Rrect

opencv3双目视觉中的立体校正原理_第1张图片

 

(1)共面:将相机旋转矩阵R划分为左右相机的合成矩阵r1,rr,目的是实现图像平面共面。但是行没有对齐。

(2)行对准:建立行对准换行矩阵Rrect使极点转换到无穷远处。

Rrect的创建:

opencv3双目视觉中的立体校正原理_第2张图片

 

opencv实现中要先把旋转矩阵变为旋转向量,对旋转向量的模长平分,就得到可以把光轴 摆平的左右矩阵,然后用这个矩阵乘以T,归一化得到e1,然后根据上面的公式构建e2,e3就可以通过叉乘获得,最后转为旋转矩阵,在通过转置就可以得到最终的RL和RR啦。

 

发现好的讲解会持续更新。

 

参考:https://blog.csdn.net/u014652390/article/details/71169927

            https://blog.csdn.net/u011574296/article/details/73826420

你可能感兴趣的:(opencv学习,opencv,立体校正,原理)