立体校正就是,把实际中非共面行对准的两幅图像,校正成共面行对准。
文章图片
(1)未校正以前左右眼视图
文章图片
(2)校正后的左右眼视图
通过图可以很直观的看到效果
文章图片
我们知道,立体匹配是三维重建、立体导航、非接触测距等技术的关键步骤,它通过匹配两幅或者多幅图像来获取深度信息。并且广泛应用于,工业生产自动化、流水线控制、无人驾驶汽车(测距,导航)、安防监控、遥感图像分析、机器人智能控制等方面。”而立体图像校正是降低立体匹配计算复杂性的最有效方法之一。 因为当两个图像平面是完全共面行对准时,立体匹配从二维搜索降至一维搜索,并且可以过滤掉无匹配点。但是,在现实的双目立体视觉系统中,是不存在完全的共面行对准的两个摄像机图像平面的,所以我们要进行立体校正。
Bouguet校正原理 校正过程中两个图像平面均旋转一半的R,这样可以使重投影畸变最小,此时两个摄像机图像平面共面(畸变校正后光轴也平行),但是行不对准
极点是两个相机坐标系原点的连线和图像平面的交点,要想使得极点处于无穷远处(即行对准),就必须两个摄像机的图像平面和两个相机坐标系原点的连线平行
可以计算Rrect
文章图片
(1)共面:将相机旋转矩阵R划分为左右相机的合成矩阵r1,rr,目的是实现图像平面共面。但是行没有对齐。
文章图片
(2)行对准:建立行对准换行矩阵Rrect使极点转换到无穷远处。
Rrect的创建:
文章图片
opencv实现中要先把旋转矩阵变为旋转向量,对旋转向量的模长平分,就得到可以把光轴 摆平的左右矩阵,然后用这个矩阵乘以T,归一化得到e1,然后根据上面的公式构建e2,e3就可以通过叉乘获得,最后转为旋转矩阵,在通过转置就可以得到最终的RL和RR啦。
发现好的讲解会持续更新。
【opencv学习|opencv3双目视觉中的立体校正原理】参考:https://blog.csdn.net/u014652390/article/details/71169927
https://blog.csdn.net/u011574296/article/details/73826420
推荐阅读
- 计算机视觉教程|计算机视觉教程6-1(图解双目视觉系统与立体校正原理)
- bldc|bldc 原理 方波控制_浅析无刷直流电机FOC、方波、正弦波控制!
- python|OpenCV中图像形态学操作
- python|python视频操作——python实现将图片合成为视频
- Python|Python 证件照换背景色(蓝底->白底,蓝底->红底)!
- Digital|图像梯度(Image gradient)
- 计算机视觉|图像形态学操作
- opencv|最近opencv又报了啥错(一)
- opencv|基于opencv的实时睡意检测系统