我在Matlab上运行了Bouguet的校准工具箱(http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html)并获得了校准的参数(内部[焦距和主点偏移]和外部[棋盘相对于相机的旋转和平移])
我的图像上棋盘的特征坐标点也是已知的。
我想获得经过纠正的图像,以便我可以从每对经过校正的图像中制作一个视差图(我有代码)。
我该怎么做呢?
答案 0 :(得分:0)
文档为here。最后,它会显示“将这些值作为常量添加到您的程序中,调用initUndistortRectifyMap和remap功能以消除失真并享受廉价和低质量相机的无失真输入”。
一旦您的相机得到纠正,您可能会对课程StereoVar或StereoBM感兴趣,以获取视差地图。完成后,如果要检查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),与正确的相同