相机标定——MATLAB


    相机标定是计算机视觉中最基础的模块,要问我为什么要搞这个东西。我只能说这是作!业!  

    不说了,说多了都是泪

 

    用Matlab做相机标定,使用的是matlab提供的标定工具箱,需要下载,如果英文好可以看这篇文章,里面还提供了例子图片。

1. 启动标定的工具箱

    打开matlab,在进入工具箱目录,运行calib.m,有一个standard还有Memory efficient。当图像非常多时,需要选择第二种。

    我选择了Standard。

2. 选择图像载入

    我是将图片都放到了工具箱目录里面,在接着点击Image names按钮,之后就出现下面这样的情况了

    

    输入Image(<-因为这东西是文件的前缀),因为我们图片类型是.tif,因此再输入t

    如果这里出现了OUT OF MEMORY,RAM太小了。你可以选择memory efficient mode试试。。。

    标定后面的步骤就剩下grid corner extraction 以及 calibration

3. 提取角点

    点击xtract grid corners进行脚点的提取。

    接着你就要选择你要处理的图像,如果直接点击回车,他会选择所有的图像,如果你输入2 5 8 10 12,它会选出这几幅图像让你去处理。这里我的选择是直接回车,处理所有的图像。

    再接着,它会让你选择窗口的大小,这里默认使用了默认窗口的大小,即再次回车。具体发生的情况如下图:

    

 

    经过这些操作之后,我们要开始选择区域了

在这样选择好区域,matlab程序会询问你中间的角点是否与实际图像中的有变形,如果有进行调整。

    这边输入dx,dy=30 ......我也不知道为什么,文档里面就是这样,应该是实际的长度吧。输入后,图像里面会出现红色的十字点。这个是角点。看一下是否与实际图像中的角点一致,如果不对,输出除了[](就是Enter),如果不一致,就输入其他的,我输入了1....为了方便。 之后输入kc值来进行修改(first order lens distortion coefficient kc) 

    在取完所有角点之后,calib_data.mat文件会自动生成,还有什么文件会自动产生。具体的我不说了 

    再接着我们要进行最主要的标定过程,该步骤主要分为两个部分:first initialization以及接下来要做的nonlinear optimization 

    处理了几张以后以后应该可以按clibration按钮了吧,这个主要是在处理first initialization的步骤

    再接着按reproject on image 会出现以下几个图

    在这些操作都做完以后,可以直接点击alibration进行标定

未完待续……


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM