赞
踩
双目摄像机标定最主要的目的:是要得求出每个摄像机的相机内参数矩阵K和畸变系数矩阵D,左右两个摄像机的相对位置关系(即右摄像头相对于左摄像头的平移向量 t和旋转矩阵R)。
由于OpenCV中StereoCalibrate标定的结果极其不稳定,甚至会得到很夸张的结果,所以决定Matlab标定工具箱立体标定,再将标定的结果读入OpenCV,来进行后续图像校准和匹配。
[1]首先对左右摄像头分别进行标定,得到两个摄像头各自的内参矩阵和畸变参数向量。
注意事项:
[2]经过双目标定得到摄像头的各项参数后,采用OpenCV中的stereoRectify(立体校正)得到校正旋转矩阵R、投影矩阵P、重投影矩阵Q,再采用initUndistortRectifyMap函数得出校准映射参数,然后用remap来校准输入的左右图像。
其中remap的图像剪裁系数alpha,取值范围是-1、0~1。
(1)当取值为 0 时,OpenCV会对校正后的图像进行缩放和平移,使得remap图像只显示有效像素(即去除不规则的边角区域),适用于机器人避障导航等应用;
(2)当alpha取值为1时,remap图像将显示所有原图像中包含的像素,该取值适用于畸变系数极少的高端摄像头;
(3)alpha取值在0-1之间时,OpenCV按对应比例保留原图像的边角区域像素。
(4)alpha取值为-1时,OpenCV自动进行缩放和平移。
双目校正过程中要使用极线约束
要计算目标点在左右两个视图上形成的视差,首先要把该点在左右视图上两个对应的像点匹配起来。然而,在二维空间上匹配对应点是非常耗时的,为了减少匹配搜索范围,我们可以利用极线约束使得对应点的匹配由二维搜索降为一维搜索。
而双目校正的作用:把消除畸变后的两幅图像严格地行对应,使得两幅图像的对极线恰好在同一水平线上,这样一幅图像上任意一点与其在另一幅图像上的对应点就必然具有相同的行号,只需在该行进行一维搜索即可匹配到对应点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。