




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.摄影测量学单像空间前方交会编程实习报告班级:130*姓名:****:2013302590***指导教师:欣实习目的通过对提供的数据进展计算,输出像片的外方位元素并评定精度。深入理解单像空间前方交会的思想,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。通过尝试编程实现加强编程处理问题的能力和对实习内容的理解,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。了解摄影测量平差的根本过程,掌握空间前方交会的定义和实现算法。实习内容根据学习的单像空间前方交会的知识,用程序设计语言〔C++或C语言〕编写一个完整的单像空间前方交会程序,通过对提供的数据进展计算,输出像片的外方位元素并评定精度。实习数据航摄仪的内方位元素:fk=153.24mm,*0=y0=0,摄影比例尺为1:15000;4个地面控制点的地面坐标及其对应像点的像片坐标:像片坐标地面点坐标*(mm)y(mm)*(m)Y(m)Z(m)1-86.15-68.9936589.4125273.322195.172-53.4082.2137631.0831324.51728.693-14.78-76.6339100.9724934.982386.50410.4664.4340426.5430319.81757.31实习原理如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。可采取的方法有:利用雷达、全球定位系统〔GPS〕、惯性导航系统〔INS〕以及星相摄影机来获取影像的外方位元素;也可以利用影像覆盖范围内一定数量的控制点的空间坐标与摄影坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间前方交会。单像空间前方交会的根本思想是:以单幅影像为根底,从该影像所覆盖地面范围内假设干控制点的地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素*s,Ys,Zs,ϕ,ω,κ。实习流程获取数据。从摄影资料中查取影像比例尺1/m,平均摄影距离〔航空摄影的航高、内方位元素*0,y0,QUOTE;获取控制点的空间坐标*t,Yt,Zt。量测控制点的像点坐标并进展必要的影像坐标系统误差改正,得到像点坐标。确定未知数的初始值。单像空间前方交会必须给出待定参数的初始值,在竖直航空摄影且地面控制点大体对称分布的情况下,可按如下方法确定初始值:式中:m为摄影比例尺分母,n为控制点个数;计算旋转矩阵R。利用角元素的近似值按公式计算方向余弦值a1,a2,a3,b1,b2,b3,c1,c2,c3,组成R阵。逐点计算像点坐标的近似值。利用未知数的近似值按共线条件方程计算控制点像点坐标的近似值(*),(y)。逐点计算误差方程式的系数和常数项,组成误差方程。计算法方程的系数矩阵ATA与常数项ATL,组成法方程。解求外方位元素。根据法方程,解求外方位元素的改正数,并与相应的近似值求和,得到外方位元素新的近似值。检查计算是否收敛。将所求得的外方位元素的改正数与规定的限差比拟,通常对ϕ,ω,κ的改正数给予限差,当改正数小于限差时,迭代完毕。否则用新的近似值重复〔4〕——〔8〕步骤计算,直到满足要求为止。空间前方交会的精度估计:按上述方法所求得的影像外方位元素的精度可以通过法方程式中未知数的系数矩阵的逆阵〔ATA〕-1来解求,此时视像点坐标为等精度不相关观测值。因为(ATA〕-1中第i个主对角线上的元素Qii就是法方程式中第i个未知数的权倒数,假设单位权中误差为m0,则第i个未知数的中误差为:当参加空间前方交会的控制点有n个时,则单位权中误差可按下式计算:流程图如下:程序代码#include<stdio.h>#include"Matri*.h"//矩阵运算头文件,来自网络,已上传voidmain(){ double*s,Ys,Zs,q,w,k; //外方位元素double*0,y0,f; //内方位元素double*[4],y[4]; //影像坐标double*0[4],Y0[4],Z0[4];//地面坐标doublem; //比例尺doublea1,a2,a3,b1,b2,b3,c1,c2,c3;//旋转矩阵intn=0; //迭代次数//地面坐标*0[0]=36589.41; *0[1]=37631.08; *0[2]=39100.97; *0[3]=40426.54; Y0[0]=25273.32; Y0[1]=31324.51; Y0[2]=24934.98; Y0[3]=30319.81; Z0[0]=2195.17; Z0[1]=728.69; Z0[2]=2386.50; Z0[3]=757.31; //影像坐标*[0]=-0.08615; *[1]=-0.05340; *[2]=-0.01478; *[3]=0.01046; y[0]=-0.06899; y[1]=0.08221; y[2]=-0.07663; y[3]=0.06443; //确定内外方位元素初始值*0=0;y0=0; f=153.24/1000; m=15000; *s=0;Ys=0; q=0;w=0;k=0; for(inti=0;i<4;i++) { *s+=*0[i]; Ys+=Y0[i]; } *s/=4; Ys/=4; Zs=f*m; Matri*A(8,6); Matri*L(8,1); Matri*AT(6,8); Matri*ATA(6,6); Matri*ATA_(6,6); Matri***(6,1); //迭代计算do { //旋转矩阵R a1=cos(q)*cos(k)-sin(q)*sin(w)*sin(k); a2=-cos(q)*sin(k)-sin(q)*sin(w)*cos(k); a3=-sin(q)*cos(w); b1=cos(w)*sin(k); b2=cos(w)*cos(k); b3=-sin(w); c1=sin(q)*cos(k)+cos(q)*sin(w)*sin(k); c2=-sin(q)*sin(k)+cos(q)*sin(w)*cos(k); c3=cos(q)*cos(w); //计算像点坐标for(inti=0;i<4;i++) { double*=a1*(*0[i]-*s)+b1*(Y0[i]-Ys)+c1*(Z0[i]-Zs); doubleY=a2*(*0[i]-*s)+b2*(Y0[i]-Ys)+c2*(Z0[i]-Zs); doubleZ=a3*(*0[i]-*s)+b3*(Y0[i]-Ys)+c3*(Z0[i]-Zs); double**=*[i]-*0; doubleyy=y[i]-y0; A[2*i][0]=(a1*f+a3***)/Z; A[2*i][1]=(b1*f+b3***)/Z; A[2*i][2]=(c1*f+c3***)/Z; A[2*i][3]=yy*sin(w)-(***(***cos(k)-yy*sin(k))/f+f*cos(k))*cos(w); A[2*i][4]=-f*sin(k)-***(***sin(k)+yy*cos(k))/f; A[2*i][5]=yy; A[2*i+1][0]=(a2*f+a3*yy)/Z; A[2*i+1][1]=(b2*f+b3*yy)/Z; A[2*i+1][2]=(c2*f+c3*yy)/Z; A[2*i+1][3]=-***sin(w)-(yy*(***cos(k)-yy*sin(k))/f-f*sin(k))*cos(w); A[2*i+1][4]=-f*cos(k)-yy*(***sin(k)+yy*cos(k))/f; A[2*i+1][5]=-**; L[2*i][0]=*[i]-(-f**/Z); L[2*i+1][0]=y[i]-(-f*Y/Z); } //法方程的解*=(ATA)_ATL AT=A.Transpose();//转置ATA=AT*A; ATA_=ATA.Inverse(); //求逆**=(ATA_*AT)*L; //法方程解*s+=**[0][0]; Ys+=**[1][0]; Zs+=**[2][0]; q+=**[3][0]; w+=**[4][0]; k+=**[5][0]; n++; //printf("%d\n",n); //printf("%lf%lf%lf %.5lf%.5lf%.5lf\n",*s,Ys,Zs,q,w,k); }while((abs(**[3][0])>0.000001||abs(**[4][0])>0.000001||abs(**[5][0])>0.000001)&&n<100); //求中误差doublem0,mi[6];//单位权中误差的绝对值m0以及第i个未知数的中误差mi m0=sqrt(((A***-L).Transpose()*(A***-L)).ToDouble()/(2*4-6)); Matri*Q(6,6); Q=(A.Transpose()*A).Inverse(); for(inti=0;i<6;i++) { mi[i]=(sqrt(Q[i][i]))*m0; } //printf("%lf\n",m0); //输出printf("迭代次数:%d\n",n); printf("旋转矩阵R:\n"); printf("%.5lf%.5lf%.5lf\n",a1,a2,a3); printf("%.5lf%.5lf%.5lf\n",b1,b2,b3); printf("%.5lf%.5lf%.5lf\n",c1,c2,c3); printf("\n外方位元素解:\nWs=%.2lfYs=%.2lfZs=%.2lf\nq=%.5lfw=%.5lfk=%.5lf\n\n",*s,Ys,Zs,q,w,k); printf("单位权中误差的绝对值:%lfm\n",m0); printf("*s的精度:%lfm\n",mi[0]); printf("Ys的精度:%lfm\n",mi[1]); printf("Zs的精度:%lfm\n",mi[2]); printf("q的精度:%lf\n",mi[3]); printf("w的精度:%lf\n",mi[4]); printf("k的精度:%lf\n",mi[5]); //保存到文件,结果文件默认保存在程序目录FILE*fp; fp=fopen("result.t*t","w"); // fprintf(fp,"迭代次数:%d\n",n); fprintf(fp,"旋转矩阵R:\n"); fprintf(fp,"%.5lf%.5lf%.5lf\n",a1,a2,a3); fprintf(fp,"%.5lf%.5lf%.5lf\n",b1,b2,b3); fprintf(fp,"%.5lf%.5lf%.5lf\n",c1,c2,c3); fprintf(fp,"\n外方位元素解:\nWs=%.2lfYs=%.2lfZs=%.2lf\nq=%.5lfw=%.5lfk=%.5lf\n\
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版西北旺外墙改造项目质量保障及施工合同
- 2025年度事业单位员工退休待遇补充合同
- 2025保险代理咨询服务合同模板(含保险科技)
- 河北省昌黎县2025年上半年公开招聘村务工作者试题含答案分析
- 2025年度光伏产品代理进口合作协议
- 海南省万宁市2025年上半年公开招聘村务工作者试题含答案分析
- 2025电脑包年维护合同含硬件更换与故障响应服务
- 海南省澄迈县2025年上半年公开招聘城市协管员试题含答案分析
- 2025版石材幕墙安装与工程款支付进度合同
- 2025年度拆迁安置房买卖及物业管理合同
- 现代农业技术讲座课件
- 建设单位向施工企业施工安全交底
- 学习《中小学教育惩戒规则(试行)》课件
- 初中数学教材解读人教八年级上册(2023年修订)第十三章轴对称等边三角形 导学案
- DB11-T1515-2018养老服务驿站设施设备配置规范
- 政府会计制度应用课件
- 五年级上册美术教学计划
- 有色金属贵金属冶金
- 2020外研社高中英语选择性必修四课文翻译
- 西方文论课程教学大纲
- 外科医学—颅内和椎管内血管性疾病
评论
0/150
提交评论