Matlab相机标定

本文主要介绍,Matlab工具箱的使用,过程简单明确,超详细。

准备工作

系统:win10
Matlab版本:Matlab2013a
工具箱下载http://download.****.net/download/linxid/10034581
所用图片下载
项目介绍http://www.vision.caltech.edu/bouguetj/calib_doc/该版本较低的Matlab需要安装工具箱,工具箱开发的最初网站便是这个。对于之后的更高版本,相机标定已经被集成自Matlab中,并且实现图形化,很容易实现。

参考教程
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html

一 工具箱实现(低版本Matlab)

1.环境配置

  • 1.从上面的链接中,下载工具箱,然后解压,得到文件夹TOOLBOX_calib;
  • 2.将文件夹放在Matlab的工具箱总文件中,我的文件路径为:C:\Program Files\MATLAB\R2013a\toolbox,放在这个目录里即可。
  • 3.将文件夹路径,也就是C:\Program Files\MATLAB\R2013a\toolbox\TOOLBOX_calib,添加进Matlab工作路径,如下图所示:
    Matlab相机标定
    依次是:Set Path->Add Folder To Path。然后选择放置工具箱的路径。

2.文件配置

无非就是图像文件* calib_example*,将文件解压,放在上述工具箱的文件中。

这个没有一定要求,重点是要选择工作文件路径。 此处很多教程没有强调,会出现error。如图所示,进行修改:
Matlab相机标定

3.实际操作,进行标定

1.calib_gui
命令行窗口输入calib_gui,跳出下面的窗口:
Matlab相机标定
2.Standard
标准标定方式,得到下面窗口:
Matlab相机标定

3.Image names
会得到刚才保存的图像,如果图像那一步出了问题,这里就会报错。点击后命令行窗口会出现:
Matlab相机标定
也就是识别到了图片。窗口提示输入Basname和图片格式(比如你图片文件名是right01, right02, …, right12,basename就是right,图片格式如:jpg)。该例子就是Basename:Image;Image format:tif。输入后会进行图片读取。
Matlab相机标定
4.Extract grid corners
提取角点,接下来按几次Enter即可,选择默认输入。
下面解释出现的几次输入选择:
Number(s) of image(s) to process ([] = all images) =:处理图像数目
Window size for corner finder (wintx and winty): 棋盘角点搜索窗口大小
5.提取角点
几次Enter过后,会出现第一张图片
Matlab相机标定
然后按顺序(顺时针或逆时针)标出,四个内格点,如图所示:
Matlab相机标定
标定后的会出现下面的窗口:
Matlab相机标定
6.输入棋盘格的实际大小
这一步很重要,定义了空间尺度。不能照搬硬套,对于不同的教程使用的图片不同,方格的实际大小可能也会不同,本例所用图片大小是30mm。
Matlab相机标定
随后程序会自动标注其他的角点,比较是否正确。
Matlab相机标定
确定后,在命令行输入Enter。随后效果图如图所示:
Matlab相机标定
7.对其余20张图片标注角点
这一步比较繁,不过很快就结束了,一次如上一步进行就好了。可以得到20张图的标注情况。这一步说起来简单,用的时间反而是比较长的。
8.Calibration
真正的相机标定来了,点击后,命令后窗口便可以得到标定数据。标定后的相机数据为:Matlab相机标定
9.Show Extrinsic
可视化标定结果,可以显示标定的一些外部参数。点击右下角可以进行视角切换。
Matlab相机标定

Matlab相机标定
两幅图像的差别就是保持谁不变,选定的视角不同。
10.Analyse Error
误差分析

二 自带工具实现(较高版本)

可参考下列教程,集成进Matlab,整个过程很简单,上面的图片依然可以使用。
http://blog.****.net/heroacool/article/details/51023921
Matlab官网的介绍和****如下:
https://cn.mathworks.com/videos/camera-calibration-with-matlab-81233.html

欢迎一起交流,疏漏之处还请指出,后续补充…..