空间后方交会编程实习报告

合集下载

摄影测量学单像空间后方交会编程实习报告(精品资料).doc

摄影测量学单像空间后方交会编程实习报告(精品资料).doc

【最新整理,下载后即可编辑】摄影测量学单像空间后方交会编程实习报告班级:130x姓名:xx学号:2013302590xxx指导老师:李欣一、实习目的通过对提供的数据进行计算,输出像片的外方位元素并评定精度。

深入理解单像空间后方交会的思想,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。

通过尝试编程实现加强编程处理问题的能力和对实习内容的理解,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。

了解摄影测量平差的基本过程,掌握空间后方交会的定义和实现算法。

二、实习内容根据学习的单像空间后方交会的知识,用程序设计语言(C++或C语言)编写一个完整的单像空间后方交会程序,通过对提供的数据进行计算,输出像片的外方位元素并评定精度。

三、实习数据已知航摄仪的内方位元素:fk =153.24mm,x=y=0,摄影比例尺为1:15000;4个地面控制点的地面坐标及其对应像点的像片坐标:四、实习原理如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。

因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。

可采取的方法有:利用雷达、全球定位系统(GPS)、惯性导航系统(INS)以及星相摄影机来获取影像的外方位元素;也可以利用影像覆盖范围内一定数量的控制点的空间坐标与摄影坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间后方交会。

单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,ϕ,ω,κ。

五、 实习流程1. 获取已知数据。

从摄影资料中查取影像比例尺1/m ,平均摄影距离(航空摄影的航高、内方位元素x 0,y 0,f ;获取控制点的空间坐标X t ,Y t ,Z t 。

2. 量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。

单像空间后方交会实习报告

单像空间后方交会实习报告

单像空间后方交会实习报告一、实习目的单像空间后方交会是摄影测量中确定像片外方位元素的重要方法。

通过本次实习,旨在深入理解单像空间后方交会的基本原理和计算过程,熟练掌握相关软件的操作,提高对摄影测量数据处理的实践能力,并培养解决实际问题的思维和方法。

二、实习原理单像空间后方交会的目的是利用像片上的像点坐标以及相应的地面控制点坐标,通过数学模型求解像片的外方位元素(三个线元素 Xs、Ys、Zs 和三个角元素φ、ω、κ)。

其基本原理基于共线条件方程,即摄影中心、像点和相应的地面点位于同一条直线上。

共线条件方程可以表示为:\\begin{align}x x_0&= f\frac{a_1(X X_s) + b_1(Y Y_s) + c_1(Z Z_s)}{a_3(X X_s) + b_3(Y Y_s) + c_3(Z Z_s)}\\y y_0&= f\frac{a_2(X X_s) + b_2(Y Y_s) + c_2(Z Z_s)}{a_3(X X_s) + b_3(Y Y_s) + c_3(Z Z_s)}\end{align}\其中,\((x,y)\)为像点坐标,\((x_0,y_0)\)为主点坐标,\(f\)为摄影机焦距,\((X,Y,Z)\)为地面点的物方空间坐标,\((X_s,Y_s,Z_s)\)为摄影中心的物方空间坐标,\((a_1,b_1,c_1),(a_2,b_2,c_2),(a_3,b_3,c_3)\)为由角元素φ、ω、κ 构成的旋转矩阵的元素。

三、实习数据本次实习使用了一组航空像片,像片比例尺为 1:5000,焦距为152mm,像主点坐标为\((x_0,y_0)=(5000mm,5000mm)\)。

同时,提供了 6 个均匀分布在像片范围内的地面控制点的物方空间坐标和像点坐标。

四、实习步骤1、数据准备整理地面控制点的物方空间坐标和像点坐标,确保数据的准确性。

输入像片的基本参数,如像主点坐标、焦距等。

单像空间后方交会实习报告

单像空间后方交会实习报告

单像空间后方交会实习报告摘要本报告旨在总结并评估笔者在单像空间后方交会实习中的经验和收获。

首先,报告介绍了单像空间后方交会实习的目的和背景。

接着,报告详细描述了实习期间所进行的实验和操作步骤。

在实习过程中,笔者遇到了一些挑战,但通过团队合作和专业指导取得了成功。

最后,报告总结了实习对于个人职业发展的重要性,并提出了改进实习体验的建议。

1. 引言单像空间后方交会是测量和分析地球或其他星球上的点的空间坐标的方法之一。

该方法通过将来自不同位置的图像投影到一个共同的平面上,并在该平面上对图像进行测量和分析,以确定点的坐标。

本实习旨在将现实生活中的实地测量和图像处理技术相结合,通过实际操作了解和掌握单像空间后方交会的原理和应用。

2. 实习过程本次实习分为三个步骤:图像获取、图像处理和空间坐标计算。

2.1 图像获取首先,为了进行后续的图像处理和分析,我们需要获取一组具有不同视角的图像。

为了实现这个目标,我们选择了一片公共景区进行实地测量。

在测量过程中,我们使用了专业的测量设备和相机,并按照一定的间隔和角度拍摄了一组图像。

这些图像将被用于后续的图像处理和分析。

2.2 图像处理在图像处理阶段,我们使用了专业的图像处理软件对获取到的图像进行处理。

首先,我们使用了相机标定算法对相机内外参数进行校准,以保证后续测量的精度和准确度。

然后,我们对每张图像进行了特征点提取和匹配,以建立图像之间的对应关系。

最后,根据所获得的对应关系,我们重建了图像场景的三维模型,并将其用于后续的空间坐标计算。

2.3 空间坐标计算在空间坐标计算阶段,我们使用了单像空间后方交会的原理,计算了每个图像特征点的空间坐标。

首先,我们将图像场景的三维模型与图像上的特征点进行对应,以确定特征点在三维空间中的位置。

然后,我们利用三角测量原理计算出特征点的三维坐标。

最后,通过对所有图像特征点的计算,我们可以得到目标点的空间坐标。

3. 实习挑战与解决在实习过程中,我们遇到了一些挑战,如图像质量、算法调优和测量误差等。

单像空间后方交会实习报告

单像空间后方交会实习报告

单像空间后方交会实习报告本文是一份单像空间后方交会实习报告,旨在总结和分享本人在这个领域进行实习的经验和所得。

一、实习背景和目的在开始正文之前,首先介绍一下实习的背景和目的。

本次实习是为了深入了解单像空间后方交会的原理和应用,并提升我的实践能力。

通过与团队合作,完成一系列的实习任务和项目,我期望能够在这个领域不断成长和进步。

二、实习内容和方法2.1 实习内容本次实习主要涉及单像空间后方交会的方法和技术。

我通过参与实际项目,了解和学习了从数据采集到数据处理的整个流程,并深入研究了相关的算法和工具。

2.2 实习方法为了能够全面了解单像空间后方交会的知识和技术,我采用了多种实习方法。

首先,我积极参与了团队的讨论和会议,与同事们交流和分享我们的学习和经验。

其次,我通过独立完成一些小型项目和任务,提升了自己的实践能力。

此外,我还阅读了大量的相关文献和资料,深入研究了该领域的理论知识。

三、实习成果和收获3.1 实习成果在实习期间,我完成了几个实践项目任务,并取得了一些成果。

首先,我成功实现了单像空间后方交会的基本原理和方法,并在实际项目中应用。

其次,我编写了一份详尽的实习报告,总结了整个实习过程和所得的经验。

3.2 实习收获通过这次实习,我获得了很多宝贵的经验和收获。

首先,我深入了解并掌握了单像空间后方交会的原理和方法,提升了自己的实践能力。

其次,我学会了如何与团队合作,并通过与他人的交流和合作进一步提升自己。

此外,我还学会了如何独立思考和解决问题,在实践中培养了自己的创新思维能力。

四、实习感悟和建议4.1 实习感悟通过实习,我深刻体会到了理论与实践的结合的重要性。

只有将所学的理论知识应用到实践项目中,才能真正理解和掌握。

在实践中遇到各种困难和挑战,我也学会了如何从失败中总结经验,再次进行尝试。

4.2 实习建议对于即将进行单像空间后方交会实习的同学们,我有几点建议。

首先,要注重理论知识的学习和积累,打好基础。

单像空间后方交会实习报告

单像空间后方交会实习报告

单像空间后方交会实习报告一、引言在我参加实习项目期间,我有幸在测绘工程实践中学习到了单像空间后方交会的相关知识和技能。

本报告旨在总结和详细介绍我在这个项目中所学到的内容,并分享我在实践中的经验和感悟。

二、实习背景实习项目的目标是通过使用单像空间后方交会方法对给定的影像数据进行三维测量,实现对地物位置和形状的准确测绘。

实习过程中,我所参与的任务是基于无人机获取的航片进行测绘,希望能达到较高的准确性和精度。

三、实习内容1. 影像数据获取与准备为了能够进行后方交会,首先我需要获取一组高质量、清晰度较高的影像数据。

在实习项目中,我们使用了专业的无人机拍摄了一系列航测相片。

在选择相机设备、安装和定位无人机方面,我们尽可能保证了影像的质量和准确性。

2. 影像处理和点提取获取到影像数据后,对影像进行预处理以满足后方交会的需要。

这一步骤包括图像的几何校正、色调校正等。

接下来,从影像中手动或者自动提取出具有明显特征点的区域,作为后方交会的控制点。

3. 单像空间后方交会参数计算在进行后方交会之前,需要确定准确的内、外方位元素。

内方位元素包拟化比例分母纸试验、比例尺、转分度仪、坐标尺等设备。

外方位元素的测量利用经纬度、高程等信息,通过空间三角测量的方法来计算。

4. 控制点的标定和精度评定为了保证交会精度,需要至少有三个以上的控制点,同时还需在计算之前对这些控制点进行标定。

控制点的标定首先进行坐标基准的精确定义,然后通过重复测量来评估控制点的精度。

5. 三维坐标的计算根据前面计算得到的内、外方位元素以及控制点的坐标,可以利用单像空间后方交会的方法来计算其它像上点的坐标。

这一步骤主要涉及相对定向和绝对定向的计算,其中相对定向可以通过一些数学模型和算法来实现。

四、实习总结通过参与单像空间后方交会实习项目,我深刻认识到了测绘工程的重要性和挑战性。

在实践中,我学到了很多相关的知识和技能。

首先,我掌握了使用无人机获取影像数据的方法和技巧,了解了影像处理的基本步骤和注意事项。

摄影测量学单像空间后方交会编程实习报告

摄影测量学单像空间后方交会编程实习报告

摄影测量学单像空间后方交会编程实习报告实习背景在本次实习中,我们学习了摄影测量学单像空间后方交会的编程实现。

这是一种通过计算影像中各点的坐标来确定被摄物的三维坐标的方法,应用广泛于测绘、地理信息、建筑等领域。

本次实习采用 MATLAB 软件进行编程,目的是将理论知识应用到实际操作中,让我们更深入理解摄影测量学单像空间后方交会的原理和应用。

实习内容理论部分首先,我们在工作室进行了理论部分的学习。

老师讲解了单像空间后方交会的原理,以及如何通过影像坐标、相机外方位元素、像点坐标和像平面坐标等参数来计算被摄物的三维坐标。

在理论部分的学习过程中,我们通过公式的推导和实例分析,更加深入地理解了单像空间后方交会的原理。

实践部分实践部分是本次实习的重头戏。

我们利用 MATLAB 软件进行了单像空间后方交会的编程实现,具体步骤如下:1.输入相机外方位元素通过读取文本文件,将相机外方位元素(相机在拍摄时的姿态、位置等参数)输入到 MATLAB 中。

2.输入影像坐标通过读取文本文件,将影像中的像点坐标输入到 MATLAB 中。

3.计算像平面坐标利用相机内定标参数,将像点坐标转化为像平面坐标。

4.计算被摄物三维坐标根据单像空间后方交会的原理,利用相机外方位元素、像平面坐标和像点坐标等参数,计算被摄物的三维坐标。

5.输出结果将计算结果输出到文本文件中,以便后续的数据处理和分析。

在实际操作中,我们首先编写了 MATLAB 脚本文件,根据上述步骤逐步实现了单像空间后方交会的计算过程。

然后,我们利用自己拍摄的实际照片进行实验,将相机外方位元素和像点坐标输入到程序中,最终得到了被摄物的三维坐标结果。

实习收获通过本次实习,我从理论到实践,更深入地理解了摄影测量学单像空间后方交会的原理和应用,同时也掌握了 MATLAB 的编程技能。

在实践中,我遇到了许多问题,包括数据的输入输出、代码的调试和结果的分析等等。

通过和同学的讨论和老师的指导,我不仅解决了这些问题,还对摄影测量学的应用有了更深入的认识。

(样本)空间后方交会实验报告

(样本)空间后方交会实验报告

空间后方交会实验报告
1 实习目的:
用Visual C++编写一个完整的单片空间后方交会程序,通过对提供的试验数据进行计算,输出像片的外方位元素并评定精度。

深入理解单片空间后方交会的原理,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。

通过上机调试程序加强动手能力的培养,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。

2实习环境:
2.1硬件环境:window操作系统
2.2软件环境:vc++6.0

3实习内容:
利用一定数量的地面控制点,根据共线条件方程求解像片外方位元素:

4 数据准备:
4.1 已知航摄仪内方位元素f=153.24mm,Xo=Yo=0。

5实习过程:
5.1学习单张像片空间后方交会的基本理论,掌握其基本思想。


5.2在纸上绘出空间后方交会的计算机程序框图。

为了能够在宏观上指导我们编写程序,我们需要在草稿纸上绘出程序框图。

框图如下:










小↓完

限↓

否否↓
否︱↓是

输出中间结果和出错信息↓

非正常结束
6. 按照程序框图编写程序。

程序代码如下:必须有注释
7 程序结果显示
(略)
8 实习心得与总结:
略。

空间后交-前交程序设计实验报告

空间后交-前交程序设计实验报告

空间后交-前交程序设计(实验报告)姓名:班级:学号:时间:空间后交-前交程序设计一、实验目的用 C 、VB或MATLAB语言编写空间后方交会-空间前方交会程序⑴提交实习报告:程序框图、程序源代码、计算结果、体会⑵计算结果:像点坐标、地面坐标、单位权中误差、外方位元素及其精度二、实验数据f=150.000mm,x0=0,y0=0三、实验思路1.利用空间后方交会求左右像片的外方位元素(1).获取m(于像片中选取两点,于地面摄影测量坐标系中选取同点,分别计算距离,距离比值即为m),x,y,f,X,Y,Z(2).确定未知数初始值Xs,Ys,Zs,q,w,k(3).计算旋转矩阵R(4).逐点计算像点坐标的近似值(x),(y)(5).组成误差方程式(6).组成法方程式(7).解求外方位元素(8).检查是否收敛,即将求得的外方位元素的改正数与规定限差比较,小于限差即终止;否则用新的近似值重复步骤(3)-(7)2.利用求出的外方位元素进行空间前交,求出待定点地面坐标(1).用各自像片的角元素计算出左、右像片的方向余弦值,组成旋转矩阵R1,R2(2).根据左、右像片的外方位元素,计算摄影基线分量Bx,By,Bz(3).计算像点的像空间辅助坐标(X1,Y1,Z1)和(X2,Y2,Z2)(4).计算点投影系数N1和N2(5).计算未知点的地面摄影测量坐标四、实验过程⑴程序框图函数AandL%求间接平差时需要的系数%%%已知%a=像点坐标x,b=像点坐标y,f内方位元素主距%φ=q,ψ=w,κ=k%像空间坐标系X,Y,Z%地面摄影测量坐标系Xs,Ys,Zsfunction [A1,L1,A2,L2]=AandL(a,b,f,q,w,k,X,Y,Z,Xs,Ys,Zs) %%%%%%%%%%%选择矩阵元素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);%%%%%%%共线方程的分子分母X_=a1*(X-Xs)+b1*(Y-Ys)+c1*(Z-Zs);Y_=a2*(X-Xs)+b2*(Y-Ys)+c2*(Z-Zs);Z_=a3*(X-Xs)+b3*(Y-Ys)+c3*(Z-Zs);%%%%%%%近似值x=-f*X_/Z_;y=-f*Y_/Z_;%%%%%%%A组成L组成a11=1/Z_*(a1*f+a3*x);a12=1/Z_*(b1*f+b3*x);a13=1/Z_*(c1*f+c3*x);a21=1/Z_*(a2*f+a3*y);a22=1/Z_*(b2*f+b3*y);a23=1/Z_*(c2*f+c3*y);a14=y*sin(w)-(x/f*(x*cos(k)-y*sin(k))+f*cos(k))*cos(w);a15=-f*sin(k)-x/f*(x*sin(k)+y*cos(k)); a16=y;a24=-x*sin(w)-(y/f*(x*cos(k)-y*sin(k))-f*sin(k))*cos(w);a25=-f*cos(k)-y/f*(x*sin(k)+y*cos(k));a26=-x;lx=a-x;ly=b-y;%%%%%%%%%组成一个矩阵,并返回A1=[a11,a12,a13,a14,a15,a16];A2=[a21,a22,a23,a24,a25,a26];L1=lx;L2=ly;函数deg2dms%%%%%%%%角度转度分秒function y=deg2dms(x)a=floor(x);b=floor((x-a)*60);c=(x-a-b/60)*3600;y=a+(b/100)+(c/10000);函数dms2deg%%%%%度分秒转度function y=dms2deg(x)a=floor(x);b=floor((x-a)*100);c=(x-a-b/100)*10000;y=a+b/60+c/3600;函数ok%%%%%%%%%%%%%%目的是为了保证各取的值的有效值%%xy为n*1,a为1*nfunction result=ok(xy,a)format short gi=size(xy,1);for n=1:io=xy(n)-floor(xy(n,1));o=round(o*(10^a(n)))/(10^a(n));xy(n,1)=floor(xy(n,1))+o;endformat long gresult=xy;函数rad2dmsxy%%%%求度分秒表现形式的三个外方位元素,三个角度function xydms=rad2dmsxy(xy)[a,b,c,d,e,f]=testvar(xy);d=deg2dms(rad2deg(d));e=deg2dms(rad2deg(e));f=deg2dms(rad2deg(f));xydms=[a,b,c,d,e,f]';函数spacehoujiao%%%%%%%空间后交%%% f%%输入p(2*n,1)%%像点坐标x,y,X,Y,Z,均为(n,1)function [xy,m,R]=spacehoujiao(p,x,y,f,X,Y,Z)format long;%%%%%权的矢量化,这是等精度时的,如果非,将函数参数改为P P=diag(p);%%求nj=size(X,2);%%初始化Xs=0;Ys=0;Zs=0;for n=1:jXs=Xs+X(n);Ys=Ys+Y(n);Zs=Zs+Z(n);endSx=sqrt((x(2)-x(1))^2+(y(2)-y(1))^2);%%%%两像点之间距离Sd=sqrt((X(2)-X(1))^2+(Y(2)-Y(1))^2);%%%%两地面控制点之间距离m=Sd/Sx; %%%%图像比例系数Xs=Xs/j;Ys=Ys/j;Zs=m*f+Zs/j;m0=0;q=0;w=0;k=0;i=0;a=rand(2*j,6);l=rand(2*j,1);%%%%for n=1:j[a(2*n-1,:),l(2*n-1,1),a(2*n,:),l(2*n,1)]=AandL(x(n),y(n),f,q,w,k,X(n),Y(n),Z(n ),Xs,Ys,Zs);enddet=inv(a'*P*a)*transpose(a)*P*l;%%%%%%%%%循环体while 1%%%%%%%%%%%%%%%%[dXs,dYs,dZs,dq,dw,dk]=testvar(det);detXs=abs(dXs);detYs=abs(dYs);detZs=abs(dZs);detq=abs(dq);detw=abs(dw);detk=abs(dk);%%%%%%%%%if((detXs<0.01)&&(detYs<0.01)&&(detZs<0.01)&&(detq<pi/648000)&&(detw<pi/648000)&& (detk<pi/648000))break;elseV=(a*det-l);Q=inv(a'*P*a);m0=m0+sqrt((V'*P*V)/(2*j-6));%%m0需要每次的改正数算出来相加%%%Xs=Xs+dXs;Ys=Ys+dYs;Zs=Zs+dZs;q=q+dq;w=w+dw;k=k+dk;%%%for n=1:j[a(2*n-1,:),l(2*n-1,1),a(2*n,:),l(2*n,1)]=AandL(x(n),y(n),f,q,w,k,X(n),Y(n),Z(n ),Xs,Ys,Zs);enddet=inv(a'*P*a)*transpose(a)*P*l;i=i+1;%%%%end%%%end[dXs,dYs,dZs,dq,dw,dk]=testvar(det);detXs=abs(dXs);detYs=abs(dYs);detZs=abs(dZs);detq=abs(dq);detw=abs(dw);detk=abs(dk);V=(a*det-l);Q=inv(a'*P*a);m0=m0+sqrt((V'*P*V)/(2*n-6));%%%Xs=Xs+dXs;Ys=Ys+dYs;Zs=Zs+dZs;q=q+dq;w=w+dw;k=k+dk;%%%%%%%%%%%%%可以输出迭代次数的i%%%%%%%%%%%%Xs,Ys,Zs,q,w,k,i,dXs,dYs,dZs,dq,dw,dk,detXs,detYs,detZs %%%%%%%%%%%精度mo=m0*sqrt(Q);m=[mo(1,1),mo(2,2),mo(3,3),mo(4,4),mo(5,5),mo(6,6)]';[mXs,mYs,mZs,mq,mw,mk]=testvar(m);%%%%%%%%%输出xy=[Xs,Ys,Zs,q,w,k]';%%输出(6,1)的外方位元素m=[m0,mXs,mYs,mZs,mq,mw,mk]';%%单位误差,各元素中误差R=xyR(xy);%%旋转矩阵函数spaceqianjiao%%空间前交%输入f%输入x1,y1,x2,y2,R1,R2,xy1,xy2 (n,1)%输出X,Y,Z (n,1)function [X,Y,Z]=spaceqianjiao(x1,y1,x2,y2,f,R1,R2,xy1,xy2) i=size(x1,2);[Xs1,Ys1,Zs1,q1,w1,k1]=testvar(xy1);[Xs2,Ys2,Zs2,q2,w2,k2]=testvar(xy2);for n=1:i[X1(n),Y1(n),Z1(n)]=testvar(R1*[x1(n),y1(n),-f]');[X2(n),Y2(n),Z2(n)]=testvar(R2*[x2(n),y2(n),-f]');Bx=Xs2-Xs1;By=Ys2-Ys1;Bz=Zs2-Zs1;N1=(Bx*Z2(n)-Bz*X2(n))/(X1(n)*Z2(n)-X2(n)*Z1(n));N2=(Bx*Z1(n)-Bz*X1(n))/(X1(n)*Z2(n)-X2(n)*Z1(n));X(n)=Xs1+N1*X1(n);Z(n)=Zs1+N1*Z1(n);Y(n)=0.5*((Ys1+N1*Y1(n))+(Ys2+N2*Y2(n)));end函数testvar%分割矩阵。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

空间后方交会编程实习报告一实习目的用程序设计语言(Visual C++或者C语言)编写一个完整的单片空间后方交会程序,通过对提供的试验数据进行计算,输出像片的外方位元素并评定精度。

本实验的目的在于让学生深入理解单片空间后方交会的原理,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。

通过上机调试程序加强动手能力的培养,通过对实验结果的分析,增强学生综合运用所学知识解决实际问题的能力。

二实习内容利用一定数量的地面控制点,根据共线条件方程求解像片外方位元素。

三实习数据已知航摄仪的内方位元素:fk =153.24mm,x=y=0.0mm,摄影比例尺为1:50000;四实习原理如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。

因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。

可采取的方法有:利用雷达、全球定位系统(GPS)、惯性导航系统(INS)以及星相摄影机来获取影像的外方位元素;也可以利用影像覆盖范围内一定数量的控制点的空间坐标与摄影坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间后方交会。

单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,t,w,k。

五实习流程(1)获取已知数据。

从摄影资料中查取影像比例尺1/m,平均摄影距离(航空摄影的航高、内方位元素x0,y0,f;获取控制点的空间坐标Xt,Yt,Zt。

(2)量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。

(3)确定未知数的初始值。

单像空间后方交会必须给出待定参数的初始值,在竖直航空摄影且地面控制点大体对称分布的情况下,可按如下方法确定初始值:Z 0s=H=m*f+ΣZi/4; X 0s=Σxi/n; Y 0s=ΣYi/n; t=ω=κ=0;式中:m 为摄影比例尺分母;(4)计算旋转矩阵R 。

利用角元素的近似值按下式计算方向余弦值a1,a2,a3,b1,b2,b3,c1,c2,c3,组成R 阵。

(5)逐点计算像点坐标的近似值。

利用未知数的近似值按共线条件方程计算控制点像点坐标的近似值(x )、(y )。

(6)按下式逐点计算误差方程式的系数和常数项,组成误差方程。

(7)计算法方程的系数矩阵A T A 与常数项A TL ,组成法方程; (8)解求外方位元素。

根据法方程,解求外方位元素的改正数,并与相应的近似值求和,得到外方位元素新的近似值。

(9)检查计算是否收敛。

将所求得的外方位元素的改正数与规定的限差比较,通常对t 、ω、κ、Xs 、Ys 、Zs 的改正数Δt ,Δω,Δκ,ΔXs ,ΔYs ,ΔZs 给予限差,当改正数小于限差时,迭代结束。

否则用新的近似值重复(4)——(8)步骤计算,直到满足要求为止。

(10)空间后方交会的精度估计:按上述方法所求得的影像外方位元素的精度可以通过法方程式中未知数的系数矩阵的逆阵(A T A )-1来解求,此时视像点坐标为等精度不相关观测值。

因为A T A )-1中第i 个主对角线上的元素Qii 就是法方程式中第i 个未知数的权倒数,若单位权中误差为m0,则第i 个未知数的中误差为: mi=m Qii 0当参加空间后方交会的控制点有n 个时,则单位权中误差可按下式计算:62][-±=n vv m六 主要代码与详解void R(double t,double w,double k,double *a,double *b,double *c) {a[0]=cos(t)*cos(k)-sin(t)*sin(w)*sin(k); a[1]=-cos(t)*sin(k)-sin(t)*sin(w)*cos(k); a[2]=-sin(t)*cos(w); b[0]=cos(w)*sin(k); b[1]=cos(w)*cos(k); b[2]=-sin(w);c[0]=sin(t)*cos(k)+cos(t)*sin(w)*sin(k); c[1]=-sin(t)*sin(k)+cos(t)*sin(w)*cos(k); c[2]=cos(t)*cos(w); }//子函数计算旋转矩阵R 。

利用角元素的近似值按下式计算方向余弦值a1,a2,a3,b1,b2,b3,c1,c2,c3,组成R 阵。

void main(){int i,m,num;double t,w,k,Xs,Ys,Zs,f; //六个外方位元素与焦距fdouble x[N]={-86.15,-53.40,-14.78,10.46},y[N]={-68.99,82.21,-76.63,64.43};//4个像点坐标doubleX[N]={36589.41,37631.08,39100.97,40426.54},Y[N]={25273.32,31324.51,24934.98,303 19.81},Z[N]={2195.17,728.69,2386.50,757.31};//四个控制点的空间坐标m=50000;f=153.24;// 影像比例尺1/m 与焦距f// 以上主要是已知数据的定义doubleV[6]={0},a[3],b[3],c[3],Xo[N],Yo[N],Zo[N],A[6*M],B[6*M],l[M],C[36],D[6],E[8];for(i=0;i<N;i++){x[i]=x[i]/1000.0;y[i]=y[i]/1000.0;//像点坐标单位换算}// 以下为确定未知数的初始值。

Xs=(X[0]+X[1]+X[2]+X[3])/N;Ys=(Y[0]+Y[1]+Y[2]+Y[3])/N;Zs=m*f+(Z[0]+Z[1]+Z[2]+Z[3])/N;// Xs,Ys,Zs 为摄站点的空间坐标初始值 f=f/1000.0;t=w=k=0.0; //角元素的近似值for(num=1;num<10;num++) //num控制循环迭代次数{R(t,w,k,a,b,c);// 计算旋转矩阵R。

利用角元素的近似值按下式计算方向余弦值a1,a2,a3,b1,b2,b3,c1,c2,c3,组成R阵。

for(i=0;i<N;i++)//下面的循环用来逐点计算误差方程式的系数和常数项,组成误差方程。

{//以下是用共线条件方程计算控制点像点坐标的近似值(x)、(y)。

Xo[i]=-f*(a[0]*(X[i]-Xs)+b[0]*(Y[i]-Ys)+c[0]*(Z[i]-Zs))/(a[2]*(X[i]-Xs)+b[2]*(Y [i]-Ys)+c[2]*(Z[i]-Zs));Yo[i]=-f*(a[1]*(X[i]-Xs)+b[1]*(Y[i]-Ys)+c[1]*(Z[i]-Zs))/(a[2]*(X[i]-Xs)+b[2]*(Y [i]-Ys)+c[2]*(Z[i]-Zs));Zo[i]=a[2]*(X[i]-Xs)+b[2]*(Y[i]-Ys)+c[2]*(Z[i]-Zs);//Zo便于后面计算A[12*i+0]=(a[0]*f+a[2]*x[i])/Zo[i];A[12*i+1]=(b[0]*f+b[2]*x[i])/Zo[i];A[12*i+2]=(c[0]*f+c[2]*x[i])/Zo[i];A[12*i+3]=y[i]*sin(w)-(x[i]*(x[i]*cos(k)-y[i]*sin(k))/f+f*cos(k))*cos(w); A[12*i+4]=-f*sin(k)-x[i]*(x[i]*sin(k)+y[i]*cos(k))/f; A[12*i+5]=y[i];A[12*i+6]=(a[1]*f+a[2]*y[i])/Zo[i]; A[12*i+7]=(b[1]*f+b[2]*y[i])/Zo[i];A[12*i+8]=(c[1]*f+c[2]*y[i])/Zo[i];A[12*i+9]=-x[i]*sin(w)-(y[i]*(x[i]*cos(k)-y[i]*sin(k))/f-f*sin(k))*cos(w); A[12*i+10]=-f*cos(k)-y[i]*(x[i]*sin(k)+y[i]*cos(k))/f; A[12*i+11]=-x[i]; l[2*i]=x[i]-Xo[i];l[2*i+1]=y[i]-Yo[i];//计算l }zhuanzhi(A,B,8,6); //转置Axiangchen(B,A,C,6,8,6);//求A TAxiangchen(B,l,D,6,8,1); //求常数项A TLqiuni(C,6);//求A TA 的逆xiangchen(C,D,V,6,6,1);//求改正数VXs+=V[0]; Ys+=V[1]; Zs+=V[2]; t+=V[3]; w+=V[4];k+=V[5]; //结果改正if((fabs(V[0])<=0.00001)&&(fabs(V[1])<=0.00001)&&(fabs(V[2])<=0.00001)&&(fa bs(V[3])<=0.00001)&&(fabs(V[4])<=0.00001)&&(fabs(V[5])<=0.00001))break; //限差控制。

检查计算是否收敛。

将所求得的外方位元素的改正数与规定的限差比较。

当改正数小于限差时,迭代结束。

否则用新的近似值重复计算,直到满足要求为止 。

}//以下是计算单位权中误差 double s=0,m0,v[8];xiangchen(A,V,E,8,6,1); //计算AX for(i=0;i<8;i++) {v[i]=E[i]-l[i];//计算AX-L s+=v[i]*v[i];//计算[vv] } m0=sqrt(s/2);// 单位权中误差按下式计算:62][-±=n vv m ,这里n=4.R(t,w,k,a,b,c); //输出结果printf("像主点的空间坐标为:\n");printf("Xs=%.2f\n",Xs);printf("Ys=%.2f\n",Ys);printf("Zs=%.2f\n",Zs);printf("旋转矩阵R为:\n");for(i=0;i<3;i++)printf(" %.5f",a[i]);printf("\n");for(i=0;i<3;i++)printf(" %.5f",b[i]);printf("\n");for(i=0;i<3;i++)printf(" %.5f",c[i]);printf("\n");printf("单位权中误差为:",m0);cout<<m0<<endl;}七实习结果八实习总结通过本次实习我深刻地理解单片空间后方交会的原理,尤其是共线方程。

相关文档
最新文档