所谓外参自标定的方法,是不用固定的标定板,在拍摄实际场景的两张图像时,进行摄像机的外参自标定,从而获取当时两个摄像机位置之间的Rotation和Translation,以上是假定摄像机的内参是固定不变的,仅仅修正外参来达到对标定的实时改善。
步骤如下:
1. 利用摄像机内参进行畸变校正。
2.将两幅畸变校正后的图作为输入,使用OpenCV中的光流法提取匹配特征点对,points1和points2.
3.利用特征点对points1和points2,以及内参矩阵K,解算出本质矩阵E。
cv::Mat E = cv::findEssentialMat(points1, points2, K, CV_RANSAC);
4.利用本质矩阵E解算出两个摄像机之间的Rotation和Translation,也就是两个摄像机之间的外参。
cv::Mat R1, R2;
cv::decomposeEssentialMat(E, R1, R2, t);
R = R1.clone();
t = -t.clone();