天天看点

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

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

准备工作

系统:win10

Matlab版本:Matlab2013a

工具箱下载:http://download.csdn.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相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)
    依次是:Set Path->Add Folder To Path。然后选择放置工具箱的路径。

2.文件配置

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

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

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

3.实际操作,进行标定

1.calib_gui

命令行窗口输入calib_gui,跳出下面的窗口:

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

2.Standard

标准标定方式,得到下面窗口:

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

3.Image names

会得到刚才保存的图像,如果图像那一步出了问题,这里就会报错。点击后命令行窗口会出现:

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

也就是识别到了图片。窗口提示输入Basname和图片格式(比如你图片文件名是right01, right02, …, right12,basename就是right,图片格式如:jpg)。该例子就是Basename:Image;Image format:tif。输入后会进行图片读取。

Matlab相机标定准备工作一 工具箱实现(低版本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相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

标定后的会出现下面的窗口:

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

6.输入棋盘格的实际大小

这一步很重要,定义了空间尺度。不能照搬硬套,对于不同的教程使用的图片不同,方格的实际大小可能也会不同,本例所用图片大小是30mm。

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

随后程序会自动标注其他的角点,比较是否正确。

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

确定后,在命令行输入Enter。随后效果图如图所示:

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

7.对其余20张图片标注角点

这一步比较繁,不过很快就结束了,一次如上一步进行就好了。可以得到20张图的标注情况。这一步说起来简单,用的时间反而是比较长的。

8.Calibration

真正的相机标定来了,点击后,命令后窗口便可以得到标定数据。标定后的相机数据为:

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

9.Show Extrinsic

可视化标定结果,可以显示标定的一些外部参数。点击右下角可以进行视角切换。

Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)
Matlab相机标定准备工作一 工具箱实现(低版本Matlab)二 自带工具实现(较高版本)

两幅图像的差别就是保持谁不变,选定的视角不同。

10.Analyse Error

误差分析

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

可参考下列教程,集成进Matlab,整个过程很简单,上面的图片依然可以使用。

http://blog.csdn.net/heroacool/article/details/51023921

Matlab官网的介绍和视频教程如下:

https://cn.mathworks.com/videos/camera-calibration-with-matlab-81233.html

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

继续阅读