相机的标定对于测距和重建还是很重要的,特把用过的工具和方法进行一次汇总,以便查阅、分析和讨论
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
1.MATLAB camera calibration toolbox工具箱
我只使用了13张图片
将TOOLBOX_calib放入MATLAB的toolbox目录下,工作目录设为含标定图集的目录。
1.1单目标定
运行calib_gui.m文件,选择添加到路径,界面:
选择第一个后,界面:
通过读图和提取角点后点击calibration进行初始标定
标定的初始化如下:
Calibration parameters after initialization:
Focal Length: fc = [ 532.49170 532.49170 ]
Principal point: cc = [ 319.50000 239.50000 ]
Skew: alpha_c = [ 0.00000 ] => angle of pixel = 90.00000 degrees
Distortion: kc = [ 0.00000 0.00000 0.00000 0.00000 0.00000 ]
得到的标定结果如下:
Calibration results after optimization (with uncertainties):
Focal Length: fc = [ 534.97637 536.20121 ] +/- [ 3.71984 3.92117 ]
Principal point: cc = [ 343.26051 233.07723 ] +/- [ 4.11643 4.58569 ]
Skew: alpha_c = [ 0.00000 ] +/- [ 0.00000 ] => angle of pixel axes = 90.00000 +/- 0.00000 degrees
Distortion: kc = [ -0.32075 0.27300 0.00104 -0.00074 0.00000 ] +/- [ 0.02040 0.07372 0.00103 0.00126 0.00000 ]
Pixel error: err = [ 0.55364 0.23137 ]
这里对这5个参数进行说明
(详见链接http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html)
(1)fc为焦距的像素尺寸,计算为F/DX,F/DY,F为几何焦距尺寸,DX,DY为像元尺寸。(懒得敲公式>.<)
(2)cc为光心在图像坐标系下的图像坐标
(3)alpha_c倾斜系数,反映X和Y轴的夹角
(4)kc畸变系数,这里有5个,前两个和最后一个为径向畸变,第三和第四个为切向畸变,一般第五个为0,切向畸变也很小
(5)err像素误差,可以看到这里小于一个像素尺寸
点击show extrinsic,得到相机和标定板的相对位置关系:
点击reproject on images,根据当前标定的结果和棋盘世界尺寸,得到反投影到图像上的角点图
误差图
点击analyse error,对误差进行分析