资源描述:
《《摄像机标定》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、摄像机标定1、摄像机外参:决定摄像机坐标与世界坐标系之间相对位置关系。其中Pw为世界坐标,Pc是摄像机坐标,他们之间关系为 Pc=RPw+T 式中,T=(Tx,Ty,Tz),是平移向量,R=R(α,β,γ)是旋转矩阵,分别是绕摄像机坐标系z轴旋转角度为γ,绕y轴旋转角度为β,绕x轴旋转角度为α。6个参数组成(α,β,γ,Tx,Ty,Tz)为摄像机外参。2、摄像机内参:确定摄像机从三维空间到二维图像的投影关系。 针孔摄像机模型为6个参数(f,κ
2、,Sx,Sy,Cx,Cy);远心摄像机模型为5个参数(f,Sx,Sy,Cx,Cy)。 线阵摄像机为9个参数(f,κ,Sx,Sy,Cx,Cy,width.highth)。 其中,f为焦距; κ表示径向畸变量级,如果κ为负值,畸变为桶型畸变,如果为正值,那畸变为枕型畸变。 Sx,Sy是缩放比例因子。对针孔摄像机来讲,表示图像传感器上水平和垂直方向上相邻像素之间的距离; 对于远心摄像机模型,表示像素在世界坐标系中的尺寸。
3、 Cx,Cy是图像的主点。对针孔摄像机来讲,这个点是投影中心在成像平面上的垂直投影,同时也是径向 畸变的中心 。 对于远心摄像机模型,只表示畸变的中心 。 Vx,Vy,Vz:线阵摄像机必须与被拍摄物体之间有相对移动才能拍摄到一幅有用的图像。这是运动向量。sx和sy是相邻像元的水平和垂直距离 3、标定板为正方形,尺寸大小为要照射区域宽度的1/3,如像区为100*80mm,那么标定板为30
4、*30mm。其中标定板按照D:ProgramFilesHALCON-10.0calib(具体的视个人安装位置所定)来用CAD画图。下面是自制标定板的网址。http://www.halconbbs.com/read.php?tid=944、按照下面网址步骤进行标定http://wenku.baidu.com/view/69e81567ddccda38376bafd7.html5、具体实施步骤标定的目的是确定相机的内参和外参。第一步: 依照halcon标定板描述文件(后缀名是.descr)尺寸制作标定板。
5、一般标定板大小是照射区域的1/3,每个标定孔的像素不能少于10个。第二步: 先定义内参的初始值。StartCamPar:=[0.006,0,6e-6,6e-6,Width*0.5,Height*0.5,Width,Height]依次是[焦距,畸变,像素尺寸宽,像素尺寸高,中心点坐标宽,中心点坐标高,图片尺寸]第三步:通过标定助手实现标定 把内存保存成文件,通过标定助手完成。write_cam_par(StartCamPar,'E:/Halcon例子/摄像机标定/标定.dat')导入自己刚才
6、保存的参数选择正确的描述文件然后可以标定了利用相机不断采集标定为使得图片标定完成,调节下面这些参数。具体参数意义见翻译的find_caltab、find_marks_and_pose这两个参数。标定要是有问题会提示警告,如果没有问题,标定板在每个位置每个标定孔都能识别出来。标定需要转化十几副图片来准确确定内参和外参。查看结果相机外参显示在这块相机内参会显示在这块点击保存可以把内参和外参保存成文件。接着可以入下图插入代码。插入代码,插入整个标定过程第四步:使用程序实现相机标定create_calib_data('c
7、alibration_object',1,1,CalibModelID)set_calib_data_cam_param(CalibModelID,0,'area_scan_division',StartCamPar)set_calib_data_calib_object(CalibModelID,0,'caltab_100mm.descr')先定义一个标定模版句柄。接着打开相机取图或者直接读文件里的图,开始标定。通过find_caltab找到标定板位置,然后通过find_marks_and_pose确定标定点坐
8、标和相机外参RCoord,CCoord,StartPose。通过set_calib_data_observ_points把读取的标定点坐标与描述文件比较结合相机外参,不断修正相机标定模版CalibModelID。calibrate_cameras(CalibModelID,ErrorsDiv) get_calib_data(CalibModelID,'camera'