首先关于校正的基本知识通过OpenCV官网的介绍即可简单了解:

http://docs.opencv.org/2.4/doc/tutorials/calib3d/camera_calibration/camera_calibration.html


对于摄像机我们所关心的主要参数为摄像机内参,以及几个畸变系数。


1. 使用 Matlab 进行相机标定


1.1 原理推导


相机标定原理推导可参考:一文详解相机标定算法原理 推导过程很详细


1.2 标定图资源下载


标定板


两种方法,直接从opencv官网上能下载到:
方案一:
http://docs.opencv.org/2.4/_downloads/pattern.png
方案啊二:
matlab生成

J = (checkerboard(300,4,5)>0.5);
figure, imshow(J);



在这里插入图片描述


1.3 使用matlab 工具箱camera calibrator 流程


1.打开APP 工具,选择camera calibrator


在这里插入图片描述


2. 导入标定图片,直接全选图片,全部导入


在这里插入图片描述
填写棋盘格每个格子边长的真实值
Size of checkerboard square表示棋盘格中一个格子的尺寸,默认为25mm×25mm,需要根据自己所用棋盘格图案的实际尺寸修改;
在这里插入图片描述
在这里插入图片描述
总图像14张,添加7张, 添加失败7张,添加失败的原因可能是图像较远无法清晰识别出棋盘格,单击view images可查看为被添加进去的图像;


3. 开始分析计算


径向畸变选择3个系数(即Radial Distortion下选择3 Coefficients),勾选Skew,Tangential Distortior;
在这里插入图片描述


然后单击Calibrate进行标定


在这里插入图片描述


4. 结果如下


在这里插入图片描述
右上角Reprojection Errors显示重投影误差,右下角可切换视图(以相机为中心或以图像为中心)


在这里插入图片描述


5. 导出相机参数


单击Export Camera Parameters可将相机参数导出,可在工作空间查看导出结果
在这里插入图片描述


在这里插入图片描述


双击cameraParams即可看到相机各项参数 (这里我双击没点开,点开了属性检查器