摄像机标定程序使用方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 越好。