列表格式显示

热搜词:winrar    ftp   office   photoshop   输入法   ghost   win7  

07行业软件 - 分类

广告招商中......
联系方式!

其他行业 - 时间排序 更多...
    其他行业 - 点击排序 更多...
      其他行业 - 大小排序 更多...
        作者

         

        最近发布的软件 更多>>

        首页 >> 07行业软件>> 其他行业>>matlab相机标定工具箱 发布者:admin >> 本人发布的更多软件

        广告招商中...... 联系方式!

        matlab相机标定工具箱 

             
        软件厂家: 官方网站:
        大小: 语言:
        类型: 类别:
        更新时间: 运行环境:
        ;开始下载地址

        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,没看到涉及这块的,不知道大家都是怎么解决的。


        本页Html网址:/htmlsoft/36627.html

        本页aspx网址:/soft.aspx?id=36627&bianhao=20231231_133810_492953&kind1=07行业软件&kind2=其他行业

        上一篇:libsvm matlab工具箱 for 32/64位

        下一篇:matlab信号处理工具箱

        增加   


        相关评论        新窗口打开查看评论