摄像机标定程序使用方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、材料准备

1 准备靶标:

根据摄像头的工作距离,设计靶标大小。使靶标在规定距离范围里,尽量全屏显示在摄像头图像内。

注意:靶标设计、打印要清晰。

2图像采集:

将靶标摆放成各种不同姿态,使用左摄像头采集N幅图像。尽量保存到程序的debug->data文件夹内,便于集中处理。

二、角点处理(Process菜单)

1 准备工作:

在程序debug文件夹下,建立data,left,right文件夹,将角探测器模板文件target.txt 复制到data文件夹下,便于后续处理。

2 调入图像:

File->Open 打开靶标图像

3 选取角点,保存角点:

点击Process->Prepare Extrcor ,点击鼠标左键进行四个角点的选取,要求四个角点在最外侧,且能围成一个正方形区域。每点击一个角点,跳出一个显示角点坐标的提示框。当点击完第四个角点时,跳出显示四个定位点坐标的提示框。

点击Process->Extract Corners ,对该幅图的角点数据进行保存,最好保存到debug->data-> left文件夹下。命名时,最好命名为cornerdata*.txt,*代表编号。

对其余N-1幅图像进行角点处理,保存在相同文件夹下。这样在left文件夹会出现N 个角点txt文件。

三、计算内部参数(Calibration菜单)

1 准备工作:

在left文件夹中挑出5个靶标姿态差异较大的角点数据txt,将其归为一组。将该组数据复制到data文件夹下,重新顺序编号,此时,文件名必须为cornerdata*,因为计算参数时,只识别该类文件名。

2 参数计算:

点击Calibration->Cameral Calibrating,跳出该组图像算得的摄像机内部参数alpha、beta、gama、u0、v0、k1、k2七个内部参数和两组靶标姿态矩阵,且程序默认保存为文件CameraCalibrateResult.txt。

3 处理其余角点数据文件

在原来N个角点数据文件中重新取出靶标姿态较大的5个数据文档,重复步骤1和2;反复取上M组数据,保存各组数据。

注意:在对下一组图像进行计算时,需要将上一组在data文件夹下的5个数据删除。

四、数据精选

1 将各组内部参数计算结果进行列表统计,要求|gama|<2,且gama为负,删掉不符合条件的数据。

2 挑出出现次数最高的一组数据。

一、材料准备

1靶标准备:

根据摄像头的工作距离,设计靶标大小。使靶标在规定距离范围里,尽量全屏显示在摄像头图像内。

注意:靶标设计、打印要清晰。

2图像采集:

将两摄像头固定在支架上,此后不能改变两摄像头间的相对位置关系,如有改变,需重新对外部参数进行标定。

令靶标呈现N种不同的姿态,左右摄像头同一时刻对同一姿态进行图像采集,并在data 文件夹下创建两个小文件夹,最好命名为leftnorm_all和rightnorm_all用于存储原始图像和角点数据(cornerdata)。

3辅助软件准备:

安装文本编辑软件UltraEdit,附有序列号。

二、归一化处理(Calibration菜单的Wvmeas Target)

1角点处理

按照摄像头内部参数标定方法中的焦点处理方法,获得双目采集状态下左右摄像头图像的角点数据文件,同样命名为cornerdata*txt。

将摄像机内部参数文件CameraCalibrateResult.txt里的数据格式进行修改,使文本中仅剩下7个基本数据,删掉其他注释和靶标的姿态矩阵。

2归一化处理(Wvmeas Target)

点击Calibration->Wvmeas Target进入归一化对话框,点击Read camera intra param...加载左摄像头的内部参数文件CameraCalibrateResult.txt,点击Read feature point...加载左图像的角点文件cornerdata1txt,点击Emendate distortion and Normalize coorditiate,获得单幅图像的归一化结果,跳出保存文件对话框,命名为left_norm1,并保存到文件夹leftnorm_all文件夹中。

由于左摄像头图像有N个cornerdata文件,故此操作重复进行N次,保存为N个left_norm*.txt文件

按此方法对右摄像头的角点数据进行归一化处理,结果保存到rightnorm_all文件夹中,且分别命名为right_norm*.txt。

三、计算外部参数

1打开软件UltraEdit,点击文件->新建,打开一个空白文档,点击快捷图标:列块模式,将数据按列输入。

2在leftnorm_all和rightnorm_all中分别挑出5个形态差异比较大的归一化文件(共计10个),先将左摄像头的5个归一化文件按列粘贴到UltraEdit文档中,在其右侧粘贴右摄像头的5个归一化文件。将组合好的UltraEdit文档进行保存,且命名为normcoor.txt。

3点击Calibration->Mosaic,跳出Mosaic对话框,点击load file加载刚才保存的normcoor 文件,点击calculate,出现摄像头的外部参数,即旋转矩阵和平移矩阵。系统默认保存为rt.txt。4按此方法,重新选取左右各5组归一化文件进行外部参数的计算,从而得到M个外部参数文件rt.txt,为不产生冲突,请重新命名。

四、数据精选

挑出各外部参数文档中平移矩阵的T1和T3分量,测量两摄像头之间的距离即光心距,比较2

321T T 与光心距,选出两者最为接近的一组外部参数,即为最终标定结果。 五、检验参数准确性

(一) 匹配效果检验

1准备工作:

在左右摄像文件中,分别、随意抽出5个归一化文件,创建两个文件夹:leftnorm 与rightnorm ,将左摄像文件中的抽出的5个归一化文件,按顺序进行组合为left_norm1放到leftnorm 中(不用在软件中进行,在txt 中顺序放置即可),右摄像文件中的抽出的5个归一化文件组合为right_norm1,并复制到rightnorm 中。

注意:需将第四步中精选后的参数文件(内外部矩阵参数)进行修改,使文本中仅剩数据项,重命名并保存。

2匹配处理:

点击Process->Match ,挑出匹配对话框,点击“匹配,重构...”,加载修改后的外部参数矩阵,程序将自动处理刚才复制后的文件,处理后默认保存为MatchResult.txt 。 3比较结果

MatchResult.txt 中保存的是匹配后的坐标点,将原来挑出的左右共10个文件按列复制到UltraEdit 中,比较匹配后的坐标点和源文件中的500个点,两者较为接近的话,匹配效果较好。

(二) 三维精度检验

1点击Calibration->Wvmeas Target ,在跳出的对话框中点击Reconstruct...,加载任意一个组合后的normcoor.txt 文件,将显示500个匹配点的三维坐标值,默认保存在3Dcoordinate.txt 文件中。

2点击Calibration->Precision ,加载3Dcoordinate.txt ,将跳出50组(5对图像,每幅图像有10行、10列)在H 、V 两个方向上的棋盘格宽度,每个方向显示9个棋盘格,小方框实际宽度为9mm ,显示的棋盘格宽度越接近9mm 越好。

相关文档
最新文档