文档介绍:Matlab摄像机标定工具箱
工具箱下载:.edu/bouguetj/calib_doc/download/
说明文档:.edu/bouguetj/calib_doc/
安装:,将目录toolbox_calib拷贝到Matlab的目录下。
采集图像:采集的图像统一命名后,拷贝到toolbox_calib目录中。命名规则为基本名和编号,基本名在前,后面直接跟着数字编号。编号最多为3位十进制数字。
标定模型
内参数标定采用的模型如式(1-1)所示,Brown畸变模型式(1-2)所示。
(1-1)
式中:(u, v)是特征点的图像坐标,(xc, yc, zc)是特征点在摄像机坐标系的坐标,kx、ky是焦距归一化成像平面上的成像点坐标到图像坐标的放大系数,ks是对应于图像坐标u、v的摄像机的x、y轴之间不垂直带来的耦合放大系数,(u0, v0)是光轴中心点的图像坐标即主点坐标,(xc1, yc1)是焦距归一化成像平面上的成像点坐标。ks=ackx,ac是摄像机的实际y轴与理想y轴之间的夹角,单位为弧度。
(1-2)
式中:(xc1d, yc1d)是焦距归一化成像平面上的成像点畸变后的坐标,kc1是2阶径向畸变系数,kc2是4阶径向畸变系数,kc5是6阶径向畸变系数,kc3、kc4是切向畸变系数,r为成像点到摄像机坐标系原点的距离,r2= xc12 + yc12。
操作界面
将Matlab的当前目录设定为含有标定工具箱的目录,即toolbox_calib目录。在Matlab命令窗口运行calib_gui指令,弹出图1所示选择窗口。
图1 内存使用方式窗口
图1窗口中,具有两个选项,分别是“Standard”和“Memory efficient”。如果点击选择“Standard”,则将目录中的所有图像读入内存中,所需内存较大。如果点击选择“Memory efficient”,则将目录中的图像按照需要每次一幅图像读入内存中,所需内存较小。在选择了内存使用方式后,弹出标定工具箱操作面板。图2是选择“Standard”后弹出的标定工具箱操作面板。
图2 标定工具箱操作面板
图2所示的标定工具箱操作面板具有16个操作命令键,其功能如下:
(1) “Image names”键:指定图像的基本名(Basename)和图像格式,并将相应的图像读入内存。
(2) “Read names”键:将指定基本名和格式的图像读入内存。
(3) “Extract grid corners”键:提取网格角点。
(4) “Calibration”键:内参数标定。
(5) “Show Extrinsic”键:以图形方式显示摄像机与标定靶标之间的关系。
(6) “Project on images”键:按照摄像机的内参数以及摄像机的外参数(即靶标坐标系相对于摄像机坐标系的变换关系),根据网格点的笛卡尔空间坐标,将网格角点反投影到图像空间。
(7) “Analyse error”键:图像空间的误差分析
(8) “p. corners”键:重新提取网格角点。
(9) “Add/Suppress images”键:增加/删除图像。
(10) “Save”键:保存标定结果。,存放于toolbox_calib目录中。
(11) “Load”键:读入标定结果。。
(12) “Exit”键:退出标定。
(13) “Comp. Extrinsic”键:计算外参数。
(14) “Undistort image”键:生成消除畸变后的图像并保存。
(15) “Export calib data”键:输出标定数据。分别以靶标坐标系中的平面坐标和图像中的图像坐标,将每一幅靶标图像的角点保存为两个tex文件。
(16) “Show calib results”键:显示标定结果。
内参数标定
预先将命名为Image1~Image20的tif格式的20幅靶标图像保存在toolbox_calib目录中。当然,采集的靶标图像也可以采用不同的格式,如bmp格式、jpg格式等。但应注意,用于标定的靶标图像需要采用相同的图像格式。摄像机的内参数标定过程,如下所述。
(1) 指定图像基本名与图像格式
在图2所示的标定工具箱操作面板点击“Image names”键,在Matlab命令窗口分别输入基本名Image和图像格式t,出现下述对话内容:
Ba