基于MATLAB和opencv的单目摄像机标定

来源:互联网 发布:阿里云dns解析地址 编辑:程序博客网 时间:2024/04/27 13:43

按照张正友的标定方法,可以进行单目或者双目的摄像机标定,在这里给大家讲一讲关于单目摄像机标定的过程

一 基于MATLAB的单目摄像机标定

     1 工具箱的下载以及安装

     网址:http://www.vision.caltech.edu/bouguetj/calib_doc/download/index.html

安装:将下载的工具箱文件toolbox_calib.zip解压缩,将目录toolbox_calib拷贝到Matlab的目录下。

    2 采集图像:采集的图像统一命名后,拷贝到toolbox_calib目录中。命名规则为基本名和编号,基本名在前,后面直接跟着数字编号。编号最多为三位十进制。

   3Matlab的当前目录设定为含有标定工具箱的目录,即toolbox_calib目录。在Matlab命令窗口运行calib_gui指令,弹出图1所示选择窗口。

                              

1内存使用方式窗口

 

4在图2所示的标定工具箱操作面板点击“Image names”键,在Matlab命令窗口分别输入基本名Image和图像格式j,出现下述对话内容:

Basename camera calibration images (without number nor suffix): Image

Image format: ([]='r'='ras', 'b'='bmp', 't'='tif', 'p'='pgm', 'j'='jpg', 'm'='ppm') j

Loading image 1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...

done

同时,在Matlab的图形窗口显示出20幅靶标图像,如图2所示。

在图1所示的标定工具箱操作面板点击“Extract grid corners”键。

n Matlab命令窗口出现“Number(s) of image(s) to process ([] = all images) =”时,输入要进行角点提取的靶标图像的编号并回车。直接回车表示选用缺省值。选择缺省值式,对读入的所有的靶标图像进行角点提取。

n Matlab命令窗口出现“Window size for corner finder (wintx and winty): ”时,分别在“wintx ([] = 5) =”和“winty ([] = 5) =”输入行中输入角点提取区域的窗口半宽m和半高nmn为正整数,单位为像素,缺省值为5个像素。选定mn后,命令窗口显示角点提取区域的窗口尺寸(2n+1)x(2m+1)。例如,选择缺省时角点提取区域的窗口尺寸为11x11像素。

n Matlab命令窗口出现“Do you want to use the automatic square counting mechanism (0=[]=default) or do you always want to enter the number of squares manually (1,other)? ”时,选择缺省值0表示自动计算棋盘格靶标选定区域内的方格行数和列数,选择值1表示人工计算并输入棋盘格靶标选定区域内的方格行数和列数。

n 到显示所选择靶标图像的图形窗口,利用鼠标点击设定棋盘格靶标的选定区域。点击的第一个角点作为靶标坐标系的原点,顺序点击4个角点形成四边形。注意,所形成的四边形的边应与棋盘格靶标的网格线基本平行。否则,影响角点提取精度,甚至导致角点提取错误。

n Matlab命令窗口出现“Size dX of each square along the X direction ([]=100mm) = ”和“Size dY of each square along the Y direction ([]=100mm) = ”时,分别输入方格长度和宽度,单位为mm。方格长度和宽度的缺省值均为100mm

n Matlab命令窗口出现“Need of an initial guess for distortion? ([]=no, other=yes) ”时,如果选择no则不输入畸变初始值,如果选择yes则输入畸变初始值。输入的畸变初始值,将同时赋值给需要估计的5个畸变系数,即径向畸变系数kc(1)kc(2)kc(5)和切向畸变系数kc(3)kc(4)。如果不估计6阶径向畸变系数kc(5),则kc(5)被赋值为0

     按照上述步骤,对用于标定的每一幅靶标图像进行角点提取。提取过程如下所示:


注意进行轮廓绘制时要安顺时针方向从左上点开始。

标定结果图:


2 0
原创粉丝点击