0

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

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

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

我该怎么做呢?

4

2 回答 2

0

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

一旦您的相机被纠正,您可能会对StereoVarStereoBM类感兴趣以获取视差图。如果您想检查您的结果在 3D 中是否正常,请在完成后使用reprojectImageTo3D 。

于 2013-09-15T09:21:38.337 回答
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),和右边的一样

于 2014-08-08T10:46:45.873 回答