使用已发现的内在和外在参数对opencv上的图像进行整理

时间:2013-09-14 17:01:39

标签: opencv computer-vision camera-calibration disparity-mapping

我在Matlab上运行了Bouguet的校准工具箱(http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html)并获得了校准的参数(内部[焦距和主点偏移]和外部[棋盘相对于相机的旋转和平移])

我的图像上棋盘的特征坐标点也是已知的。

我想获得经过纠正的图像,以便我可以从每对经过校正的图像中制作一个视差图(我有代码)。

我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

文档为here。最后,它会显示“将这些值作为常量添加到您的程序中,调用initUndistortRectifyMapremap功能以消除失真并享受廉价和低质量相机的无失真输入”。

一旦您的相机得到纠正,您可能会对课程StereoVarStereoBM感兴趣,以获取视差地图。完成后,如果要检查3D结果是否正常,请使用reprojectImageTo3D

答案 1 :(得分:0)

如果完全校准使用:http://link.springer.com/article/10.1007/s001380050120#page-1两个相机具有相同的方向,共享相同的R。

新R的第一行是两个摄像机中心的基线=减法。基线的第二行交叉积与旧的左z轴(3行R_old_left)。前两行的第三行交叉产品。

扭曲图像,H_left = P_new(1:3,1:3)* P_old_left(1:3,1:3)^ - 1和H_right = P_new(1:3,1:3)* P_old_right(1: 3,1:3)^ - 1

整流的左像素坐标是u_new =(h11 * u + h12 * v + h13)/(h31 * u + h32 * v + h33),v =(h21 * u + h22 * v + h23)/(h31 * u + h32 * v + h33),与正确的相同