《工程与工业摄影测量试验指导书_2012.doc》由会员分享,可在线阅读,更多相关《工程与工业摄影测量试验指导书_2012.doc(8页珍藏版)》请在金锄头文库上搜索。
1、工程与工业摄影测量试验指导书2基于开源相机标定软件的非量测数码相机标定试验1.1 数据例子影像1.2 使用语言Matlab 1.3 操作步骤:A 观看演示;B 也可以查看文件夹中的Camera Calibration Toolbox for Matlab.htm(1) 运行matlab(2) 进入到 toolbox_calib 所在的文件夹或者将toolbox_calib设置为当前目录进入文件夹 cd I:courseClose_range_imagepracticetoolbox_calib(3) 运行 calib_gui(4) 单击load image (5) Click on the E
2、xtract grid corners button in the Camera calibration tool window.(6) 单击回车(7) (8) 单击回车默认(9) (10) The first calibration image is then shown on Figure 2:The boundary of the calibration grid is then shown on Figure 2:Enter the sizesdXanddYin X and Y of each square in the grid (in this case,dX=dY=30mm=de
3、fault values):The image corners are then automatically extracted, and displayed on figure 3 (the blue squares around the corner points show the limits of the corner finder window):手动输入30 手动输入30(11) 以同样流程处理 2nd, 3rd, . , 19thimages.(12) Click on the buttonCalibrationof theCamera calibration toolto ru
4、n the main camera calibration procedure.(13) Click onShow Extrinsicin theCamera calibration tool. 截图保存(14) 1.4 要求撰写实验报告(toolbox_calib试验体会),提交时间(6.11)2 直接线性变换解法参数求解程序编写2.1 理论影像坐标系OxyDLT关系式内方位元素求解表达式:取与C相反的符号。DLT精度 检查点像点坐标,检查点3维坐标投影到影像上的坐标。2.2 数据格式Ctl3d.txt / 用于计算DLT参数n /三维点个数 matlab数据格式删除该行X1 Y1 Z1 /
5、三维点坐标. /一共n行.Xn Yn Zn /三维点坐标ctlimg1.txt ctlimg2.txt ctlimg3.txt /分别用于计算img1,img2,img3 的DLT参数n /像点个数 matlab数据格式删除该行x1 y1 /第一个点的影像坐标. /一共n行.xn yn /第n个点的影像坐标ck3d.txt /用于检查DLT精度n /三维点个数 matlab数据格式删除该行X1 Y1 Z1 /三维点坐标. /一共n行.Xn Yn Zn /三维点坐标ckimg1.txt ckimg2.txt ckimg3.txt /分别用于检查img1,img2,img3 的DLT参数精度n /
6、像点个数 matlab数据格式删除该行x1 y1 /第一个点的影像坐标. /一共n行.xn yn /第n个点的影像坐标2.3 使用语言可以使用Matlab 和 C+或者其他语言2.4 txt读取示例代码Matlab:X=load(control.txt);C/C+:int n3d = 0; /三维点个数FILE *fp = fopen(I:Close_rangeobject.txt,”r”); /打开文件if(fp= NULL)printf(“can not open the file for reading!”);return 0;fscanf(fp,”%ld”,&n3d); /读入点个数
7、int i=0;double *pobject = new doublen3d*3; /定义动态内存for(int i=0; in3d; i+)fscanf(fp,“%lf %lf %lf”,&pobjecti*3+0, &pobjecti*3+1, &pobjecti*3+2); /读入点坐标fclose(fp); /关闭文件if(pobject!=NULL)delete pobject;pobject = NULL;2.5 试验步骤:VC (提供c代码用于求逆矩阵和转置以及示例)a) 建立工程b) 读入数据c) 实现DLT参数求解d) 实现x0,y0,f,ds,的分解e) 利用检查点检查DLT的精度。f) 输出结果Matlaba) 建立m文件b) 读入数据c) 实现DLT参数求解d) 利用检查点检查DLT的精度。e) 实现x0,y0,f,ds,的分解f) 输出结果2.6 要求(1) 试验课之后作为课程期末考核一部分,并按时提交源代码和试验报告,具体见工程与工业测量课程期末考核。由课代表收齐,然后发给我。