上篇博客笔者大体上介绍了张正友标定的相关理论基础和数学框架,解决了学习之旅(二)中的问题:
原理是什么?
这篇博客具体介绍我们如何使用Matlab来对相机进行标定。
Matlab Calibration
参考一位外国大神写的 资料和工具在此我结合个人使用过后的理解,对此工具做一些介绍;
首先下载toolbox_calib.zip,在上面超链接中有下载链接;解压之后放在工作目录下,同时跟随【此链接】进行标定,叙述很详尽;
笔者简述使用过程:
1 启动标定工具箱
将解压后的文件和标定图放在同一目录下,将该目录添加到Matlab的搜索路径中;
运行calib.m,选择图像载入模式(Standard);
以Standard为例(图像量大且多时选择第二种);
2 载入图像
进入图像所在目录,然后点击Image names按钮;
第一行输入标定图的前缀,第二行是选择图片的后缀名;
3 圈定标定板局域,对标定板进行角点检测;
点击Extract grid corners按钮;
看命令窗口,第一行(Number of image to process)直接按回车,默认所有image;
下面弹出的winx和winy是设置我们在以下圈定标定板时,四个角的大小;
设置后按回车,在弹出的窗口指定角点区域;
后在命令行中设置棋盘中每个格子的边长;
笔者用的标定板每个格子2cm,后回车;
至此对第一张图的操作结束,以下就是循环对剩下的图提取角点。
4 标定
在所有的图档都已经角点提取完毕之后,点击Calibration进行标定;
5 说明
标定结束后,对剩下的几个按钮说明;
Show Exerinsic按钮(模拟每幅图像采集时的相对相机的位置角度)
Analyse error按钮(展示角点误差分布,用鼠标左键点击后,在命令窗口可直接显示该点信息)
Recomp.Corners按钮(重置winx与winy以提高精度)
Add/Suppess Image按钮(增加更多的图片或去除误差较大的图片)
Calibration必须后按Save按钮后进行保存
Load按钮,很明显是load之前标定过的数据
下面对标定出来的数据说明:
Focal Length :相机的焦距;
Principal point :就是先前博文中的V0、U0成像主点;
Skew与Distortion :径向和切向畸变参数;
Pixel error:像素差错。
至此对单相机标定就告一段落,可能会有疑问,做了很多的目的是什么?
里面的东西理论比较多,笔者才疏学浅,解释不会详尽,为了让读者对重建有大体的了解,笔者在自己的分享资源中上传了中南大学的一篇论文。
笔者认为阅读以后会对学习三维重建会有很大帮助,不仅仅是此论文,拜读其他关于此的论文也很重要。