摄影测量课堂实习报告 下载本文

内容发布更新时间 : 2024/5/13 8:25:43星期一 下面是文章的全部内容请认真阅读。

《摄影测量学》

课堂实习报告(必修课)

( 2014 - 2015 学年 第 一 学期)

专业班级:测 绘 1105 学 号:311105010514 姓 名:黎 代 孔

实验成绩:

□ 优秀:格式完全符合规范要求,内容完整,图表规范美观;实验原理清楚,实验步骤合理,结果正确;

严格遵守实习纪律,按时上交实验报告。

□ 良好:格式符合规范要求,内容完整,图表规范;实验原理较清楚,实验步骤合理,结果正确;遵守

实习纪律,按时上交实验报告。

□ 中等:格式基本符合规范要求,内容较完整;实验原理较清楚,实验步骤基本合理,结果正确;能遵

守实习纪律,能按时上交实验报告。

□ 及格:格式问题较多,内容基本完整;实验原理较清楚,实验步骤基本合理,结果基本正确;能遵守

实习纪律,能按时上交实验报告。

□ 不及格:格式问题突出,内容不完整;实验原理不清楚,实验步骤欠合理,结果不正确;有抄袭现象,

不遵守实习纪律,未时上交实验报告。

指导教师签名:

年 月 日

编写单片空间后方交会程序

一、目的

用程序设计语言(Visual C++或者C语言)编写一个完整的单片空间后方交会程序,通过对提供的试验数据进行计算,输出像片的外方位元素并评定精度。本实验的目的在于让学生深入理解单片空间后方交会的原理,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。通过上机调试程序加强动手能力的培养,通过对实验结果的分析,增强学生综合运用所学知识解决实际问题的能力。

二、内容

利用一定数量的地面控制点(像片上三个以上控制点的像点坐标和相应的物方坐标),根据共线条件方程求解像片外方位元素, 实现单幅影像的空间后方交会。

三、数据准备

??已知航摄仪的内方位元素:f=153.24mm,x0=y0=0.0mm,摄影比例尺为1:50000;

k

??4个地面控制点的地面坐标及其对应像点的像片坐标: 点号 1 2 3 4 像片坐标(mm) x -86.15 -53.40 -14.78 10.46 y -68.99 82.21 -76.63 64.43 地面点坐标(m) X 36589.41 37631.08 39100.97 40426.54 Y 25273.32 31324.51 24934.98 30319.81 Z 2195.17 728.69 2386.50 757.31 四、计算流程 五. 实验结果

1.核心代码

//定义外方位元素

double Xs=0.0,Ys=0.0,Zs=0.0,pitch=0.0,roll=0.0,yaw=0.0;

//外方位元素的改正数 double delta[6] = {0.0}; //定义旋转矩阵

double rotate[3][3]={0.0};

Xs=(groundcontrol[0][0]+groundcontrol[1][0]+groundcontrol[2][0]+groundcontrol[3][0])/4.0;

Ys=(groundcontrol[0][1]+groundcontrol[1][1]+groundcontrol[2][1]+groundcontrol[3][1])/4.0;

Zs = scale * f;

//打印外方位元素的初始值

printf(\外方位元素的初始值为:\\n\

printf(\ printf(\

doublex[4]={0},y[4]={0},A[8][6]={0},AT[6][8]={0},ATA[6][6]={0},ATAInv[6][6]={0},LL[8]={0},ATAAT[6][8]={0};double v[8]={0},m0=0,m[6]={0},AX[8]={0},vv=0; while(1)

{ //旋转矩阵

rotate[0][0] = cos(pitch)*cos(yaw)-sin(pitch)*sin(roll)*sin(yaw);

rotate[0][1]= (-1.0)*cos(pitch)*sin(yaw)-sin(pitch)*sin(roll)*cos(yaw); rotate[0][2] = (-1.0)*sin(pitch)*cos(roll); rotate[1][0] = cos(roll)*sin(yaw); rotate[1][1] = cos(roll)*cos(yaw); rotate[1][2] = (-1.0)*sin(roll);

rotate[2][0] = sin(pitch)*cos(yaw)+cos(pitch)*sin(roll)*sin(yaw);

rotate[2][1]= (-1.0)*sin(pitch)*sin(yaw)+cos(pitch)*sin(roll)*cos(yaw); rotate[2][2] = cos(pitch)*cos(roll); for(i=0;i<4;i++) {

x[i]=(-1.0)*f*(rotate[0][0]*(groundcontrol[i][0]-Xs)+rotate[1][0]*(groundcontrol[i][1]-Ys)+rotate[2][0]*(groundcontrol[i][2]-Zs))/(rotate[0][2]*(groundcontrol[i][0]-Xs)+rotate[1][2]*(groundcontrol[i][1]-Ys)+rotate[2][2]*(groundcontrol[i][2]-Zs));

y[i]=(-1.0)*f*(rotate[0][1]*(groundcontrol[i][0]-Xs)+rotate[1][1]*(groundcontrol[i][1]-Ys)+rotate[2][1]*(groundcontrol[i][2]-Zs))/(rotate[0][2]*(groundcontrol[i][0]-Xs)+rotate[1][2]*(groundcontrol[i][1]-Ys)+rotate[2][2]*(groundcontrol[i][2]-Zs));

LL[i*2] = imagecontrol[i][0] - x[i]; LL[i*2+1] = imagecontrol[i][1] - y[i];

A[i*2][0] = (-1.0)*f/(Zs-groundcontrol[i][2]); A[i*2][1] = 0.0;