本文参考:
英文教程:http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example5.html
标定实现:
http://blog.csdn.net/jameshater/article/details/53172333
http://blog.csdn.net/moluoyu/article/details/51419024
问题解决:
https://www.cnblogs.com/lwl2015/p/4451038.html
http://blog.csdn.net/sunbright/article/details/24638033
注意:棋盘图不能动,此时从左右摄像头各采集一副图片,Matlab 需要标定多张图片,不能单只标定一张,可能会在标定或保存结果的过程中出错。
Matlab 标定工具箱保存的位置也并不是必须在安装文件夹下,可用户定义
1 首先下载matlab 标定工具箱 http://www.vision.caltech.edu/bouguetj/calib_doc/download/index.html
或者链接:https://pan.baidu.com/s/1BAOTL2GN8jQmrcroi0PaiA 密码:bgup
2 将下载后的文件解压复制到安装目录下的tool_box 文件夹下
3 点击matlab 工具栏的 设置路径选项,选择 添加并包含子文件夹,保存关闭
4 放置待标定图片,这里的示例图片来自opencv 自带的左右摄像头图片
将上述图片复制到标定工具箱下
5 在命令行输入 calib_gui, 打开工具箱,首次打开可能会出现选项 标准还是efficent,我选用的标准项。
6 点击Imagenames 出错
这是因为上方的地址指向我的文档中的matlab文件夹,应指向实际存图位置,后按照提示输入 left 和 j ,提示图像载入成功。
7 点击Extract grid corners,提取每幅图的角点,点击完成后出现如下
这里我还什么都没填 点击enter 出现图片
8 在这张图上点击上左 上右,下右,下左,顺时针四个内角点
9 第一幅图片读完后,后让你输出每个矩形的实际宽与高,然后处完所有读入图片后
依次操作所有图片
10 点击工具箱上Calibration,然后会出现内参数结果
证标定结果无误之后,就点击面板上的Save按钮,程序会把标定结果放在一个叫Calib_Result.mat的文件中。为了后续方便将文件名字改写为Calib_Result_left.mat.
重命名为
11 按照上述步骤标定右摄像头图片,保存结果并重命名
12 立体标定
(1)退出上一个工具箱,在matlab中输入stereo_gui,出现如下界面,点击load left and right calibration files
(2)载入之前的左右摄像头单目标定结果
(3)运行立体标定
出错如下:
博客参考中 提示 :看问题描述是因为同一对图像左右不对应的原因,也就是说你采集图像是,棋盘图不能动,此时从左右摄像头各采集一副图片。(天,为什么这么重要的问题,没在一开始的时候说啊!!,得了,回去重新集采图片吧。)