matlab相机标定工具箱是一款适合matlab软件使用的相机标定工具箱,通过该工具箱,可以帮助用户解决使用过程中遇到的各种问题,非常实用的一款工具箱,需要的朋友赶紧来本站下载吧!

matlab相机标定工具箱使用方法

用VS2012+OpenCV2.4.6写的双目标定的程序(其实就是跑的Samples),实验结果一直很不理想,查看很多Blog,说可以先用MATLAB标定工具箱获得extrinsics和intrinsics矩阵,然后作为输入参数再读到OpenCV的stereoRectify函数,进而就可以Match了。这里,分享一下我做MATLAB标定的过程:

一、环境配置

1.解压MATLAB标定工具箱至某个文件夹,默认为:TOOLBOX_calib,将之存放在MATLAB\R2010b\toolbox下(个人喜欢,也可以放其他位置)。

2.运行Matlab并添加文件夹TOOLBOX_calib的位置到matlab路径path中,具体操作为:File->Set Path->Add Folder To Path,然后找到刚刚存放的文件夹TOOLBOX_calib,save一下就OK了。

二、文件配置

将所有要标定的棋盘图放到文件夹TOOLBOX_calib里.m文件所在的目录下(个人喜欢将左右相机的图片命名为left01.jpg和right01.jpg等的形式,看着舒服,也和后面要讲的标定结果保存对应起来),OK,万事俱备,准备开动了。

三、单目标定

1.在Matlab命令行窗口中输入calib_gui

2.选择Standard

3.点击Image names,命令行窗口会提示你输入图片的basename以及图片的格式(比如你图片文件名是right01, right02, …, right12,basename就是right,图片格式如:jpg),然后Matlab会自动帮你读入这些图片

4.然后再回到主控制界面,点击Extract grid corners,提取每幅图的角点。点击完后,命令行会出现如下提示,主要是让你输入棋盘角点搜索窗口的大小。如果窗口定大一点的话提取角点会比较方便点,即便点得偏离了也能找到,但也要注意不能大过一个方格的大小。这些选项,都只要敲回车选用默认设置就可以了。

5.继上步Enter敲完后,跳出第一幅棋盘格图,按顺时针或是逆时针方向分别点选棋盘格的最外面的四个内格点,程序会自动检测出其余的角点。

6.在选完四个角点后,程序会在命令行窗口提示你输入标定板棋盘的size,输入你棋盘格的实际大小就行,比如我的棋盘格是24mm,就输入24。这步事实上相当关键,它定义了空间的尺度,如果要对物体进行测量的话,这步是必须的。Ender后同时得到角点检测结果图。

7.继续命令行窗口按Ender选择默认项,跳出新的标定板图像,同样的方法,如此反复,检测角点完12幅左视图。

8.检测完所有的图像后,点击Calibration,开始摄像头标定。

9.标定完成后,可以进行各种结果的可视化观察。由Show Extrinsic得的结果图可见相机与标定板的距离约为1000mm左右,且其中各种颜色标定板对应Analyse Error的结果图的各种误差结果,其中,红色的(对应第2幅标定板图像)的误差较大,部分角点提取有问题(这是当时选角点时我故意选得偏离了一些,验证一下)。

11.左摄像头标定的方法与右摄像头相同,生成的Calib_Result.mat之后,将其改名为Calib_Result_left.mat就可以了。

四、双目标定

1.左右摄像头都标定完成之后,就可以开始立体标定了。在Matlab命令行中键入stereo_gui启动立体标定面板。

2.点击Load left and right calibration files,在命令行窗口中会提示你分别填写左右自标定的结果,如果你按上面的文件名保存方式的话,直接Ender选择默认的文件名(Calib_Result_left.mat和Calib_Result_right.mat),或是填写你自己保存的文件名。

3.Load成功后,就可以开始Run stereo calibration了,run之后的结果如下图所示,左右摄像头的参数都做了修正,并且也求出了两个摄像头之间的旋转和平移关系向量(om和T)。从结果可以看出左右相机的Focal Length相差还是蛮大的,不知这对后续的视差图等计算影响如何(怎么调整两个摄像机的焦距相同也是个问题)。

4.run成功后,就可以看标定的结果了。同样可以直观的看出相机的相对位置相差很大。

图4.图3的俯视图

5.还可以通过Rectify the calibration images按钮,得到纠正后的所有棋盘格图片,可以直接读入OpenCV中进行Match了。当然,你需要对其他物体或是想实时得到视差图,还得将互标定结果写到OpenCV函数调用时支持的格式。

五、问题探讨

1.相机的焦距是否应该保持一致?

答:答案是应该肯定的。因为在后续的视差图转换为三维图时的Q矩阵只有一个f值。所以必须要求至少焦距相近。而且立体成像的三角测量(Learning OpenCV书中提到)的前提假设就是fl=fr。不知道理解的对不对。

2.怎么调整两个摄像机的焦距相同?

答:a.离两个相机相同远处放置标定板(可以将两个相机放置在一起以打到这个效果),分别调节两个相机的焦距,使得两个画面的清晰度相似。(这是我咨询大恒图像的技术支持的结果)

b.我觉得这样肯定还是不行,可以再微调,就是标定一次得一个焦距,再微调一下,再测,这样就会很麻烦。

不知有没有更好的方法。看了很多Blog,没看到涉及这块的,不知道大家都是怎么解决的。

matlab相机标定工具箱下载,matlab相机标定工具箱相关推荐

  1. matlab视频工具箱下载,MATLAB robotics tools工具箱下载安装

    一.下载网址 http://petercorke.com/wordpress/toolboxes/robotics-toolbox#Downloading_the_Toolbox 点进这个链接后能看见 ...

  2. matlab机器视觉工具箱下载,MATLAB工具箱下载大全

    地址: http://www.sciei.com/Soft/soft/math/matlab/Index.html MATLAB航天工程工具箱 2005-6-19 350 K 共享资源 ★★★★ ·将 ...

  3. matlab builder for java下载,Matlab Builder JA - Compile Matlab into a Java jar - Free Version?

    问题 Please keep in mind that I know nothing about Matlab. Matlab Builder JA lets developer build Matl ...

  4. android 9谷歌相机,安卓谷歌相机9.0下载-谷歌相机9.0安卓版-电玩咖

    游戏概述 谷歌相机9.0安卓版画质高,照片效果好,为您带来极致的拍照体验.谷歌相机9.0拥有夜视.自动拍照.慢镜头.AR贴纸等多种拍摄模式,让您轻松拍摄出满意的照片或者视频.感兴趣的小伙伴们快来下载安 ...

  5. MATLAB时频工具箱函数说明(包含工具箱的下载,安装,使用)

    MATLAB时频工具箱函数说明(包含工具箱的下载,安装,使用) 信号产生函数 噪声产生函数 模糊函数 Affine类双核线性时频处理函数 Cohen类双核线性时频处理函数 其他处理函数 时频分析工具箱 ...

  6. matlab图像校正工具箱_相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)...

    一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标系和像平面 ...

  7. 灭点计算 matlab,基于两个灭点的相机标定

    基于两个灭点的相机标定 标签(空格分隔): 未分类 什么是灭点 在世界坐标系中相互平行的两条线,在图像中会相交于一点,这点在实际中表示的是无穷远处的点. 相机模型 相机模型以小孔成像为基本原理.实际情 ...

  8. matlab棋盘格标定角点,相机标定(Camera calibration)Matlab——棋盘格标定原理,流程...

    计算机视觉----相机标定 相机标定概念:图像测量过程以及计算器视觉中,为确定空间物体某点的三维几何关系位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,模型的参数就是相机的参数.求解 ...

  9. 要matlab标定数据做双目相机矫正OpenCV C++

    双目相机矫正 系列文章来了,C/CPP实现双目矫正(不使用OpenCV)及矫正源码解析正在更新中. 开始本文内容 标定步骤: matlab标定较为准确,命令行中输入stereoCameraCalibr ...

最新文章

  1. Java 8 Stream原理解析
  2. Docker的镜像导出与导入与拷贝
  3. 学python心得体会1000字-学习python cgi的一点心得体会
  4. 在ASP.NET MVC 中获取当前URL、controller、action
  5. USACO1.1.2|贪婪的送礼者
  6. [css] 你是怎样抽离样式模块的?
  7. 你还在代码里做读写分离么,试试这个中间件吧!
  8. 项目优化经验mdash;mdash;垃圾回收导致的性能问题[z]
  9. Java基础篇:如何理解static
  10. 小甲鱼python学习笔记之函数(一)
  11. 人事管理工作难开展?这几个人力资源管理软件用了没
  12. 真正会沟通的项目经理,不会告诉你的4件事
  13. Kubernetes之YAML语法
  14. 关于win10笔记本电脑插入耳机后依旧外放的问题(亲测戴尔)
  15. 测试用例设计与黑盒测试用例设计
  16. VS Code中点击Tab键突然不能缩进了
  17. L2+/L3级智能驾驶功能量产,为何说侧向补盲激光雷达是必备传感器?
  18. 运用深度学习进行文本生成
  19. Flutter 错误解决Building with plugins requires symlink support.
  20. 二叉树节点x所在的层数

热门文章

  1. 日本海淘转运运输方式对比及如何选择转运渠道
  2. 项目实战-Medis测试用例
  3. php计算股票均线,均线怎么算?均线的计算方法详解
  4. 从零开始带你称为MySQL实战优化高手(儒猿技术窝)
  5. 如何使用 you-get 下载视频
  6. matlab共形映射程序,从共形映射角度看Schwarz引理
  7. 5G精华问答 | 什么是5G?5G与LTE有什么关系?
  8. matplotlib绘制雷达图之基本配置——万能模板案例
  9. 姓名拼音首字母缩写_企业开发人员,首字母缩写词和歧视
  10. 房产行业数字化转型迷思:技术能提供何种助力?