摄影测量学单像空间后方交会编程实习报告
摄影测量学单像空间后方交会编程实习报告(精品资料).doc
![摄影测量学单像空间后方交会编程实习报告(精品资料).doc](https://img.taocdn.com/s3/m/6bebb6ac964bcf84b8d57b5f.png)
【最新整理,下载后即可编辑】摄影测量学单像空间后方交会编程实习报告班级: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. 量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。
单像空间后方交会实习报告
![单像空间后方交会实习报告](https://img.taocdn.com/s3/m/73412a5178563c1ec5da50e2524de518974bd307.png)
单像空间后方交会实习报告一、实习目的单像空间后方交会是摄影测量中确定像片外方位元素的重要方法。
通过本次实习,旨在深入理解单像空间后方交会的基本原理和计算过程,熟练掌握相关软件的操作,提高对摄影测量数据处理的实践能力,并培养解决实际问题的思维和方法。
二、实习原理单像空间后方交会的目的是利用像片上的像点坐标以及相应的地面控制点坐标,通过数学模型求解像片的外方位元素(三个线元素 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、数据准备整理地面控制点的物方空间坐标和像点坐标,确保数据的准确性。
输入像片的基本参数,如像主点坐标、焦距等。
单像空间后方交会实习报告
![单像空间后方交会实习报告](https://img.taocdn.com/s3/m/5a9ffea750e79b89680203d8ce2f0066f4336476.png)
单像空间后方交会实习报告摘要本报告旨在总结并评估笔者在单像空间后方交会实习中的经验和收获。
首先,报告介绍了单像空间后方交会实习的目的和背景。
接着,报告详细描述了实习期间所进行的实验和操作步骤。
在实习过程中,笔者遇到了一些挑战,但通过团队合作和专业指导取得了成功。
最后,报告总结了实习对于个人职业发展的重要性,并提出了改进实习体验的建议。
1. 引言单像空间后方交会是测量和分析地球或其他星球上的点的空间坐标的方法之一。
该方法通过将来自不同位置的图像投影到一个共同的平面上,并在该平面上对图像进行测量和分析,以确定点的坐标。
本实习旨在将现实生活中的实地测量和图像处理技术相结合,通过实际操作了解和掌握单像空间后方交会的原理和应用。
2. 实习过程本次实习分为三个步骤:图像获取、图像处理和空间坐标计算。
2.1 图像获取首先,为了进行后续的图像处理和分析,我们需要获取一组具有不同视角的图像。
为了实现这个目标,我们选择了一片公共景区进行实地测量。
在测量过程中,我们使用了专业的测量设备和相机,并按照一定的间隔和角度拍摄了一组图像。
这些图像将被用于后续的图像处理和分析。
2.2 图像处理在图像处理阶段,我们使用了专业的图像处理软件对获取到的图像进行处理。
首先,我们使用了相机标定算法对相机内外参数进行校准,以保证后续测量的精度和准确度。
然后,我们对每张图像进行了特征点提取和匹配,以建立图像之间的对应关系。
最后,根据所获得的对应关系,我们重建了图像场景的三维模型,并将其用于后续的空间坐标计算。
2.3 空间坐标计算在空间坐标计算阶段,我们使用了单像空间后方交会的原理,计算了每个图像特征点的空间坐标。
首先,我们将图像场景的三维模型与图像上的特征点进行对应,以确定特征点在三维空间中的位置。
然后,我们利用三角测量原理计算出特征点的三维坐标。
最后,通过对所有图像特征点的计算,我们可以得到目标点的空间坐标。
3. 实习挑战与解决在实习过程中,我们遇到了一些挑战,如图像质量、算法调优和测量误差等。
单像空间后方交会实习报告
![单像空间后方交会实习报告](https://img.taocdn.com/s3/m/4346d373ef06eff9aef8941ea76e58fafab04595.png)
单像空间后方交会实习报告本文是一份单像空间后方交会实习报告,旨在总结和分享本人在这个领域进行实习的经验和所得。
一、实习背景和目的在开始正文之前,首先介绍一下实习的背景和目的。
本次实习是为了深入了解单像空间后方交会的原理和应用,并提升我的实践能力。
通过与团队合作,完成一系列的实习任务和项目,我期望能够在这个领域不断成长和进步。
二、实习内容和方法2.1 实习内容本次实习主要涉及单像空间后方交会的方法和技术。
我通过参与实际项目,了解和学习了从数据采集到数据处理的整个流程,并深入研究了相关的算法和工具。
2.2 实习方法为了能够全面了解单像空间后方交会的知识和技术,我采用了多种实习方法。
首先,我积极参与了团队的讨论和会议,与同事们交流和分享我们的学习和经验。
其次,我通过独立完成一些小型项目和任务,提升了自己的实践能力。
此外,我还阅读了大量的相关文献和资料,深入研究了该领域的理论知识。
三、实习成果和收获3.1 实习成果在实习期间,我完成了几个实践项目任务,并取得了一些成果。
首先,我成功实现了单像空间后方交会的基本原理和方法,并在实际项目中应用。
其次,我编写了一份详尽的实习报告,总结了整个实习过程和所得的经验。
3.2 实习收获通过这次实习,我获得了很多宝贵的经验和收获。
首先,我深入了解并掌握了单像空间后方交会的原理和方法,提升了自己的实践能力。
其次,我学会了如何与团队合作,并通过与他人的交流和合作进一步提升自己。
此外,我还学会了如何独立思考和解决问题,在实践中培养了自己的创新思维能力。
四、实习感悟和建议4.1 实习感悟通过实习,我深刻体会到了理论与实践的结合的重要性。
只有将所学的理论知识应用到实践项目中,才能真正理解和掌握。
在实践中遇到各种困难和挑战,我也学会了如何从失败中总结经验,再次进行尝试。
4.2 实习建议对于即将进行单像空间后方交会实习的同学们,我有几点建议。
首先,要注重理论知识的学习和积累,打好基础。
摄影测量学空间后方交会实验报告
![摄影测量学空间后方交会实验报告](https://img.taocdn.com/s3/m/5de2fa5ca200a6c30c22590102020740be1ecd9a.png)
摄影测量学实验报告实验一、单像空间后方交会学院:建测学院班级:测绘082姓名:肖澎学号: 15一.实验目的1.深入了解单像空间后方交会的计算过程;2.加强空间后方交会基本公式和误差方程式,法线方程式的记忆;3.通过上机调试程序加强动手能力的培养。
二.实验原理以单幅影像为基础,从该影像所覆盖地面范围内若干控制点和相应点的像坐标量测值出发,根据共线条件方程,求解该影像在航空摄影时刻的相片外方位元素。
三.实验内容1.程序图框图2.实验数据(1)已知航摄仪内方位元素f=153.24mm,Xo=Yo=0。
限差0.1秒(2)已知4对点的影像坐标和地面坐标:3.实验程序using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication3{class Program{static void Main(){//输入比例尺,主距,参与平参点的个数Console.WriteLine("请输入比例尺分母m:\r");string m1 = Console.ReadLine();double m = (double)Convert.ToSingle(m1);Console.WriteLine("请输入主距f:\r");string f1 = Console.ReadLine();double f = (double)Convert.ToSingle(f1);Console.WriteLine("请输入参与平差控制点的个数n:\r");string n1 = Console.ReadLine();int n = (int)Convert.ToSingle(n1);//像点坐标的输入代码double[] arr1 = new double[2 * n];//1.像点x坐标的输入for (int i = 0; i < n; i++){Console.WriteLine("请输入已进行系统误差改正的像点坐标的x{0}值:\r", i+1);string u = Console.ReadLine();for (int j = 0; j < n; j += 2){arr1[j] = (double)Convert.ToSingle(u);}}//2.像点y坐标的输入for (int i = 0; i < n; i++){Console.WriteLine("请输入已进行系统误差改正的像点坐标的y{0}值:\r", i+1);string v = Console.ReadLine();for (int j = 1; j < n; j += 2){arr1[j] = (double)Convert.ToSingle(v);}}//控制点的坐标输入代码double[,] arr2 = new double[n, 3];//1.控制点X坐标的输入for (int j = 0; j < n; j++){Console.WriteLine("请输入控制点在地面摄影测量坐标系的坐标的X{0}值:\r", j+1);string u = Console.ReadLine();arr2[j , 0] = (double)Convert.ToSingle(u);}//2.控制点Y坐标的输入for (int k = 0; k < n; k++){Console.WriteLine("请输入控制点在地面摄影测量坐标系的坐标的Y{0}值:\r", k+1);string v = Console.ReadLine();arr2[k , 1] = (double)Convert.ToSingle(v);}//3.控制点Z坐标的输入for (int p =0; p < n; p++){Console.WriteLine("请输入控制点在地面摄影测量坐标系的坐标的Z{0}值:\r", p+1);string w = Console.ReadLine();arr2[p , 2] = (double)Convert.ToSingle(w);}//确定外方位元素的初始值//1.确定Xs的初始值:double Xs0 = 0;double sumx = 0;for (int j = 0; j < n; j++){double h = arr2[j, 0];sumx += h;}Xs0 = sumx / n;//2.确定Ys的初始值:double Ys0 = 0;double sumy = 0;for (int j = 0; j < n; j++){double h = arr2[j, 1];sumy += h;}Ys0 = sumy / n;//3.确定Zs的初始值:double Zs0 = 0;double sumz = 0;for (int j = 0; j <= n - 1; j++){double h = arr2[j, 2];sumz += h;}Zs0 = sumz / n;doubleΦ0 = 0;doubleΨ0 = 0;double K0 = 0;Console.WriteLine("Xs0,Ys0,Zs0,Φ0,Ψ0,K0的值分别是:{0},{1},{2},{3},{4},{5}", Xs0, Ys0, Zs0, 0, 0, 0);//用三个角元素的初始值按(3-4-5)计算各方向余弦值,组成旋转矩阵,此时的旋转矩阵为单位矩阵I:double[,] arr3 = new double[3, 3];for (int i = 0; i < 3; i++)arr3[i, i] = 1;}double a1 = arr3[0, 0]; double a2 = arr3[0, 1]; double a3 = arr3[0, 2];double b1 = arr3[1, 0]; double b2 = arr3[1, 1]; double b3 = arr3[1, 2];double c1 = arr3[2, 0]; double c2 = arr3[2, 1]; double c3 = arr3[2, 2];/*利用线元素的初始值和控制点的地面坐标,代入共线方程(3-5-2),* 逐点计算像点坐标的近似值*///1.定义存放像点近似值的数组double[] arr4 = new double[2 * n];//----------近似值矩阵//2.逐点像点坐标计算近似值//a.计算像点的x坐标近似值(x)for (int i = 0; i < 2 * n; i += 2){for (int j = 0; j < n; j++){arr4[i] = -f * (a1 * (arr2[j, 0] - Xs0) + b1 * (arr2[j, 1] - Ys0) + c1 * (arr2[j, 2] - Zs0)) / (a3 * (arr2[j, 0] - Xs0) + b3 * (arr2[j, 1] - Ys0) + c3 * (arr2[j, 2] - Zs0)); }}//b.计算像点的y坐标近似值(y)for (int i = 1; i < 2 * n; i += 2){for (int j = 0; j < n; j++){arr4[i] = -f * (a2 * (arr2[j, 0] - Xs0) + b2 * (arr2[j, 1] - Ys0) + c2 * (arr2[j, 2] - Zs0)) / (a3 * (arr2[j, 0] - Xs0) + b3 * (arr2[j, 1] - Ys0) + c3 * (arr2[j, 2] - Zs0)); }}//逐点计算误差方程式的系数和常数项,组成误差方程:double[,] arr5 = new double[2 * n, 6]; //------------系数矩阵(A)//1.计算dXs的系数for (int i = 0; i < 2 * n; i += 2){arr5[i, 0] = -1 / m; //-f/H == -1/m}//2.计算dYs的系数for (int i = 1; i < 2 * n; i += 2){arr5[i, 1] = -1 / m; //-f/H == -1/m}//3.a.计算误差方程式Vx中dZs的系数for (int i = 0; i < 2 * n; i += 2)arr5[i, 2] = -arr1[i] / m * f;}//3.b.计算误差方程式Vy中dZs的系数for (int i = 1; i < 2 * n; i += 2){arr5[i, 2] = -arr1[i] / m * f;}//4.a.计算误差方程式Vx中dΦ的系数for (int i = 0; i < 2 * n; i += 2){arr5[i, 3] = -f * (1 + arr1[i] * arr1[i] / f * f);}//4.a.计算误差方程式Vy中dΦ的系数for (int i = 1; i < 2 * n; i += 2){arr5[i, 3] = -arr1[i - 1] * arr1[i] / f;}//5.a.计算误差方程式Vx中dΨ的系数for (int i = 0; i < 2 * n; i += 2){arr5[i, 4] = -arr1[i] * arr1[i + 1] / f;}//5.b.计算误差方程式Vy中dΨ的系数for (int i = 1; i < 2 * n; i += 2){arr5[i, 4] = -f * (1 + arr1[i] * arr1[i] / f * f);}//6.a.计算误差方程式Vx中dk的系数for (int i = 0; i < 2 * n; i += 2){arr5[i, 5] = arr1[i + 1];}//6.b.计算误差方程式Vy中dk的系数for (int i = 1; i < 2 * n; i += 2){arr5[i, 5] = -arr1[i - 1];}//定义外方位元素组成的数组double[] arr6 = new double[6];//--------------------外方位元素改正数矩阵(X)//定义常数项元素组成的数组double[] arr7 = new double[2 * n];//-----------------常数矩阵(L)//计算lx的值for (int i = 0; i < 2 * n; i += 2)arr7[i] = arr1[i] - arr4[i]; //将近似值矩阵的元素代入}//计算ly的值for (int i = 1; i <= 2 * (n - 1); i += 2){arr7[i] = arr1[i] - arr4[i]; //将近似值矩阵的元素代入}/* 对于所有像点的坐标观测值,一般认为是等精度量测,所以权阵P为单位阵.所以X=(ATA)-1ATL *///1.计算ATdouble[,] arr5T = new double[6, 2 * n];for (int i = 0; i < 6; i++){for (int j = 0; j < 2 * n; j++){arr5T[i, j] = arr5[j, i];}}//A的转置与A的乘积,存放在arr5AA中double[,] arr5AA = new double[6, 6];for (int i = 0; i < 6; i++){for (int j = 0; j < 6; j++){arr5AA[i, j] = 0;for (int l = 0; l < 2 * n; l++){arr5AA[i, j] += arr5T[i, l] * arr5[l, j];}}}nijuzhen(arr5AA);//arr5AA经过求逆后变成原矩阵的逆矩阵//arr5AA * arr5T存在arr5AARATdouble[,] arr5AARAT = new double[6, 2 * n];for (int i = 0; i < 6; i++){for (int j = 0; j < 2 * n; j++){arr5AARAT[i, j] = 0;for (int p = 0; p < 6; p++){arr5AARAT[i, j] += arr5AA[i, p] * arr5T[p, j];}}}//计算arr5AARAT x L,存在arrX中double[] arrX = new double[6];for (int i = 0; i < 6; i++){for (int j = 0; j < 1; j++){arrX[i] = 0;for (int vv = 0; vv < 6; vv++){arrX[i] += arr5AARAT[i, vv] * arr7[vv];}}}//计算外方位元素值double Xs, Ys, Zs, Φ, Ψ, K;Xs = Xs0 + arrX[0];Ys = Ys0 + arrX[1];Zs = Zs0 + arrX[2];Φ = Φ0 + arrX[3];Ψ = Ψ0 + arrX[4];K = K0 + arrX[5];for (int i = 0; i <= 2; i++){Xs += arrX[0];Ys += arrX[1];Zs += arrX[2];Φ += arrX[3];Ψ += arrX[4];K += arrX[5];}Console.WriteLine("Xs,Ys,Zs,Φ,Ψ,K的值分别是:{0},{1},{2},{3},{4},{5}", Xs0, Ys0, Zs0, Φ, Ψ, K);Console.Read();}//求arr5AA的逆矩public static double[,] nijuzhen(double[,] a) {double[,] B = new double[6, 6];int i, j, k;int row = 0;int col = 0;double max, temp;int[] p = new int[6];for (i = 0; i < 6; i++){p[i] = i;B[i, i] = 1;}for (k = 0; k < 6; k++){//找主元max = 0; row = col = i;for (i = k; i < 6; i++){for (j = k; j < 6; j++){temp = Math.Abs(a[i, j]);if (max < temp){max = temp;row = i;col = j;}}}//交换行列,将主元调整到k行k列上if (row != k){for (j = 0; j < 6; j++){temp = a[row, j];a[row, j] = a[k, j];a[k, j] = temp;temp = B[row, j];B[row, j] = B[k, j];B[k, j] = temp;i = p[row]; p[row] = p[k]; p[k] = i; }if (col != k){for (i = 0; i < 6; i++){temp = a[i, col];a[i, col] = a[i, k];a[i, k] = temp;}}//处理for (j = k + 1; j < 6; j++){a[k, j] /= a[k, k];}for (j = 0; j < 6; j++){B[k, j] /= a[k, k];a[k, k] = 1;}for (j = k + 1; j < 6; j++){for (i = 0; j < k; i++){a[i, j] -= a[i, k] * a[k, j];}for (i = k + 1; i < 6; i++){a[i, j] -= a[i, k] * a[k, j];}}for (j = 0; j < 6; j++){for (i = 0; i < k; i++){B[i, j] -= a[i, k] * B[k, j];}for (i = k + 1; i < 6; i++){B[i, j] -= a[i, k] * B[k, j];}for (i = 0; i < 6; i++) {a[i, k] = 0;a[k, k] = 1;}}//恢复行列次序for (j = 0; j < 6; j++){for (i = 0; i < 6; i++) {a[p[i], j] = B[i, j]; }}for (i = 0; i < 6; i++){for (j = 0; j < 6; j++) {a[i, j] = a[i, j];}}return a;}4.实验结果四.实验总结此次实验让我深入了解单像空间后方交会的计算过程,加强了对空间后方交会基本公式和误差方程式,法线方程式的记忆。
单像空间后方交会实习报告
![单像空间后方交会实习报告](https://img.taocdn.com/s3/m/84fb36546d175f0e7cd184254b35eefdc8d315ea.png)
单像空间后方交会实习报告一、引言在我参加实习项目期间,我有幸在测绘工程实践中学习到了单像空间后方交会的相关知识和技能。
本报告旨在总结和详细介绍我在这个项目中所学到的内容,并分享我在实践中的经验和感悟。
二、实习背景实习项目的目标是通过使用单像空间后方交会方法对给定的影像数据进行三维测量,实现对地物位置和形状的准确测绘。
实习过程中,我所参与的任务是基于无人机获取的航片进行测绘,希望能达到较高的准确性和精度。
三、实习内容1. 影像数据获取与准备为了能够进行后方交会,首先我需要获取一组高质量、清晰度较高的影像数据。
在实习项目中,我们使用了专业的无人机拍摄了一系列航测相片。
在选择相机设备、安装和定位无人机方面,我们尽可能保证了影像的质量和准确性。
2. 影像处理和点提取获取到影像数据后,对影像进行预处理以满足后方交会的需要。
这一步骤包括图像的几何校正、色调校正等。
接下来,从影像中手动或者自动提取出具有明显特征点的区域,作为后方交会的控制点。
3. 单像空间后方交会参数计算在进行后方交会之前,需要确定准确的内、外方位元素。
内方位元素包拟化比例分母纸试验、比例尺、转分度仪、坐标尺等设备。
外方位元素的测量利用经纬度、高程等信息,通过空间三角测量的方法来计算。
4. 控制点的标定和精度评定为了保证交会精度,需要至少有三个以上的控制点,同时还需在计算之前对这些控制点进行标定。
控制点的标定首先进行坐标基准的精确定义,然后通过重复测量来评估控制点的精度。
5. 三维坐标的计算根据前面计算得到的内、外方位元素以及控制点的坐标,可以利用单像空间后方交会的方法来计算其它像上点的坐标。
这一步骤主要涉及相对定向和绝对定向的计算,其中相对定向可以通过一些数学模型和算法来实现。
四、实习总结通过参与单像空间后方交会实习项目,我深刻认识到了测绘工程的重要性和挑战性。
在实践中,我学到了很多相关的知识和技能。
首先,我掌握了使用无人机获取影像数据的方法和技巧,了解了影像处理的基本步骤和注意事项。
单像空间后方交会实习报告
![单像空间后方交会实习报告](https://img.taocdn.com/s3/m/5968a32ba8956bec0975e3fe.png)
框图。
3
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,通力根1保过据护管生高线产中敷工资设艺料技高试术中卷0资不配料仅置试可技卷以术要解是求决指,吊机对顶组电层在气配进设置行备不继进规电行范保空高护载中高与资中带料资负试料荷卷试下问卷高题总中2体2资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况1卷中下安,与全要过,加度并强工且看作尽护下可1都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷编.工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术写5、卷交重电保底要气护。设设装管备备置线4高、调动敷中电试作设资气高,技料课中并3术试、件资且中卷管中料拒包试路调试绝含验敷试卷动线方设技作槽案技术,、以术来管及避架系免等统不多启必项动要方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽 纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
单片空间后方交会实习报告范文
![单片空间后方交会实习报告范文](https://img.taocdn.com/s3/m/4e6acaddb04e852458fb770bf78a6529647d3593.png)
单片空间后方交会实习报告范文程序设计实习报告班级:学号:姓名:实习任务:用C或VC++语言实现单片后方交汇的计算。
实习目的:1、深入理解单片空间后方交会的原理,2、在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。
3.通过上机调试程序加强动手能力的培养实习原理以单幅影象为基础,从该影象所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,求解该影象在航空摄影时刻的像片外方位元素某,Y,Z,ф,ω,κ.共线条件方程如下:某-某0=-f某[a1(某-某)+b1(Y-Y)+c1(Z-Z)]/[a3(某-某)+b3(Y-Y)+c3(Z-Z)]y-y0=-f某[a2(某-某)+b2(Y-Y)+c2(Z-Z)]/[a3(某-某)+b3(Y-Y)+c3(Z-Z)]某,y为像点的像平面坐标;某0,y0,f为影像的外方位元素;某,Y,Z为摄站点的物方空间坐标;某,Y,Z为物方点的物方空间坐标;.实习主要仪器:电脑(创天中文VC++)程序框图:输入原始数据归算像点坐标某,,y计算和确定初值某0,Y0,Z0,φ0,ω0,κ0组成旋转矩阵R计算(某),(y)和l某,ly逐点组成误差方程并法化迭代次数小于限差否?所有点完否?解法方程,求未知数改正数计算改正后外方位元素未知数改正数尺为1:50000;4个地面控制点的地面坐标及其对应像点的像片坐标:结果输出:已知条件:像点坐标某,y:-53.482.21-14.78-76.6310.4664.43153.24-86.15地点坐标某a,Ya,Za:37631.131324.5728.6939101249352386.540426.530319.8757.31-68.9936589.425273.3内方位元素:某0=y0=0f=153.24mm计算结果:旋转矩阵:0.9977090.06753340.00398399-0.06752540.997715-0.00211178-0.00411750.001837920.99999像点坐标位:(单位:mm)-86.15-68.99-53.4182.21-14.78-76.6310.4764.43单位权中误差:7.2602632e-006外方位元素:某=39795.435精度为:1.1254813Y=27476.479精度为:1.2437625Z=7572.6929精度为:0.48380521q=-0.0039840098精度为:0.00018182003w=0.0021117837精度为:0.00015959235k=-0.067576934精度为:7.2440432e-005迭代次数:4Preanykeytocontinue实习总结:通过这次实习,在最初的程序中遇到了很多地困难,但最终还是克服了它。
摄影测量学单像空间后方交会编程实习报告
![摄影测量学单像空间后方交会编程实习报告](https://img.taocdn.com/s3/m/1a8b27c8d5d8d15abe23482fb4daa58da0111c83.png)
摄影测量学单像空间后方交会编程实习报告本次实习中,我使用编程语言进行了单像空间后方交会的实现,并取得了一定的成果。
首先,我了解了单像空间后方交会的基本原理。
根据光线在透镜上的成像规律,可以推导出物体点在像平面上的坐标与图像点在像平面上的坐标之间的关系式。
通过已知的摄像机内外方位元素和图像点坐标,可以反求得物体点的坐标。
在程序编写过程中,我采用了Python编程语言。
首先,我定义了一个类,用于存储摄像机的内外方位元素和图像点坐标。
然后,我编写了一个函数,用于计算物体点的坐标。
该函数根据已知的内外方位元素和图像点坐标,使用逆向投影的方式反求物体点的坐标。
最后,我编写了一个主函数,通过读取输入文件中的数据,调用计算函数,并将结果保存到输出文件中。
在实现的过程中,我遇到了一些问题。
首先,由于摄像机的内外方位元素需要提前获取,因此我通过测量方法获得了实际的内外方位元素。
然而,测量的过程中存在一定的误差,因此在计算物体点坐标时可能存在一定的误差。
其次,图像坐标与物体点坐标之间的关系式中存在一些参数,如焦距、主点坐标等,这些参数也需要提前获取。
在程序中,我将这些参数作为输入参数,通过外部文件进行输入。
在实习的过程中,我充分运用了自己所学的摄影测量学知识,并将其与编程技能相结合。
在实现过程中,我遇到了一些难题,但通过查阅资料和与老师的讨论,最终得以解决。
通过编程实习,我深入理解了单像空间后方交会的原理,并通过实际操作提高了自己的计算能力。
总的来说,本次实习使我对摄影测量学有了更深入的认识,也提升了我的计算和编程能力。
通过此次实习,我对摄影测量学的兴趣更加浓厚,也更加期待在今后的学习和研究中能够进一步深入探索。
摄影测量实习报告
![摄影测量实习报告](https://img.taocdn.com/s3/m/c639586b2a160b4e767f5acfa1c7aa00b52a9ddc.png)
摄影测量实习报告第一篇:摄影测量实习报告篇一:摄影测量实习报告一、实习任务利用自己所熟悉的一种编程语言,实现单像空间后方交会,解求此张像片的6个外方位元素,,ω,κ,范文之实习报告:摄影测量实习报告。
二、实习目的1、深刻理解单张像片空间后方交会的原理与意义;2、在存在多余观测值时,利用最小二乘平差方法,经过迭代,求的外方位元素的最佳值;3、熟悉vc编程方法,利用编程实现计算。
三、实习原理以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,求解该影象在航空摄影时刻的像片外方位元素,,ω,κ共线条件方程如下:x-x0=-f*[a1(x-xs)+b1(y-ys)+c1(z-zs)]/[a3(x-xs)+b3(y-ys)+c3(z-zs)] y-y0=-f*[a2(x-xs)+b2(y-ys)+c2(z-zs)]/[a3(x-xs)+b3(y-ys)+c3(z-zs)]其中:x,y为像点的像平面坐标;x0,y0,f为影像的外方位元素;,为摄站点的物方空间坐标;x,y,z为物方点的物方空间坐标;旋转矩阵r为;由于此共线条件方程是非线性方程,先对其进行线性化,利用泰勒展开得:=(x)-x++++++++ =(y)-y++++++++像点观测值一般视为等权,即p=i;矩阵形式:v=ax-l,p=i;通过间接平差,为提高精度,增加多余观测方程,根据最小二乘平差原理,可计算出外方位元素的改正数。
经过迭代计算,每次迭代用未知数的近似值与上次迭代计算的改正数之和作为新的近似值,重复计算,求出新的改正数,这样反复趋近,直到改正数小于某个限值为止。
四、程序框图输入原始数据归算像点坐标x,y计算并确定初值,,组成旋转矩阵r计算(x)(y)和逐点组成误差方程式并法化所有点完否?解法方程,求未知数改正数计算改正后的外方位元素未知数改正数<限差否?整理并输出计算结果正常结束非正常结束输出中间结果和出错信息迭代次数是否小于限差否?否否否是五、计算结果1、像点坐标,地面坐标点数像点编号 x y x y z 2像片内方位元素:f = 153.840 x0=y0=0摄影比例尺:1:2500运算结果:六、数据分析选取第六张像片进行计算,迭代次数为2次。
摄影测量实习报告
![摄影测量实习报告](https://img.taocdn.com/s3/m/353e156e783e0912a2162a24.png)
摄影测量实习报告——单张影像空间后方交会程序设计一、 实习目的深入理解单张影像空间后方交会呃原理,体会再有多余观测情况下,用最小二乘平差方法编程实现解求影像外方为元素的过程。
利用Visual C++或者Matlab (或其他熟悉的计算机语言)边学一个完整的单张影像空间后方交会程序,通过对提供的试验数据进行计算,输出相片的外方为元素并进行评定精度。
通过编写程序实现单张影像空间后方交会计算,掌握非线性方程线性化的过程、相应数据读入与存储的方法以及迭代计算的特点,巩固各类基础课程及计算机课程的学习内容,培养上机调试程序的主动能力,通过对实验结果的分析,增强综合运用所学知识解决专业实际问题的能力。
二、 实习环境1、 硬件环境:Windows 操作系统;2、 软件环境:VC++活Matlab 或其他计算机语言。
三、 实习内容利用一定数量的地面控制点,根据共线条件方程求解相片外方为元素并进行精度评定。
四、 实习原理 1.共线方程)()()()()()()()()()()()(333222333111s s s s s s s s s s s s Z Z c Y Y b X X a Z Z c Y Y b X X a fy Z Z c Y Y b X X a Z Z c Y Y b X X a f x -+-+--+-+--=-+-+--+-+--=2.精度评定iii Q m m ∙=0 其中[]620-±=n VV m五、实习数据2. 模拟像片一对:左片号23 右片号24 2.像片比例尺: 1/30000 3.航摄机主距:f=150mm 4.每张像片有4个控制点 5.点位略图6.各片像点坐标及其地面坐标七、验证数据1.已知航摄仪内方位元素f =153.24mm ,Xo =Yo =0。
2.已知4对点的影像坐标和地面坐标影像坐标 地面坐标 x (mm ) y (mm ) X(m) Y (m ) Z(m) 1 -86.15 -68.99 36589.41 25273.32 2195.17 2 -53.40 82.21 37631.08 31324.51 728.69 3 -14.78 -76.63 39100.97 24934.98 2386.50 410.4664.4340426.5430319.81757.31八、程序设计如下using System;using System.Collections.Generic; using ponentModel;3. Δ6 Δ12 4.5. ⊙5 ⊙8 6.7. Δ4 Δ108. Δ3 Δ9 9. 10.⊙5⊙8 11. 12.Δ1Δ7片 号 点 号 像点坐标(mm ) 地面坐标(m ) x y X Y Z 231 -91.596 -74.859 100000.00 137500.00 11.00 3 -94.230 81.446 100000.00 142500.00 36.00 7 95.207 -75.521 106000.00 137500.00 42.00 9 96.797 83.077 106000.00 142500.00 56.00 244 -102.695 -79.618 103000.00 137500.00 90.006 -99.904 81.754 103000.00 142500.00 31.00 10 86.890 -77.540 109000.00 137500.00 7.00 1288.90476.257109000.00142500.005.00using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Data.OleDb;namespace 单像空间后方交会{public partial class 后方交会: Form{public 后方交会(){InitializeComponent();}//定义已知数据,x[]、y[]存储像点坐标,X[]、Y[]、Z[]存储地面点坐标double []x = new double[4], y = new double[4],X = new double[4], Y = new double[4], Z = new double[4];double f, d;//f为主距,d为迭代精度private void openDataToolStripMenuItem_Click(object sender, EventArgs e){////打开*.txt文件数据if (ofdOpenFile.ShowDialog() == DialogResult.OK){StreamReader mystreamreader = new StreamReader(ofdOpenFile.FileName);//将文件载入到mystreamreaderstring Line;//读取的每行信息将记录在该字符串中double[] Temp = new double[22];//将每一行的信息存放在该一维数组中int temp = 0;//将*.text文件中的信息读如到Temp[]一维数组中while ((Line = mystreamreader.ReadLine()) != null){Temp[temp++] = Convert.ToDouble(Line);}mystreamreader.Close();for (int i = 0; i < 4; i++){//根据所读的数据赋值已知数据x[i] = Temp[5 * i];y[i] = Temp[5 * i + 1];X[i] = Temp[5 * i + 2];Y[i] = Temp[5 * i + 3];Z[i] = Temp[5 * i + 4];//将已知数据添加到列表视图中ListViewItem a;a = lst已知数据.Items.Add(x[i].ToString());a.SubItems.Add(y[i].ToString());a.SubItems.Add(X[i].ToString());a.SubItems.Add(Y[i].ToString());a.SubItems.Add(Z[i].ToString());}//将所读数据赋值给f和d,并显示到文本框中f =Temp[20];d =Temp[21];txt主距f.Text = f.ToString() + "m";txt限差d.Text = d.ToString() + "m";}}private void btnCalculate_Click(object sender, EventArgs e) {/////////////////初始计算///////////////////////已知数据//double[] x ={ -0.08615, -0.0534, -0.01478, 0.01046 };//double[] y ={ -0.06899, 0.08221, -0.07663, 0.06443 };//double[] X ={ 36859.41, 37631.08, 39100.97, 40426.54 };//double[] Y ={ 25273.32, 31324.51, 24934.98, 30319.81 };//double[] Z ={ 2195.17, 728.69, 2386.50, 757.31 };//double f = 0.15324, d = 0.000001;const int c_N = 100;//迭代次数int n=0;//迭代次数统计变量double H,m=0;//H为航高,m为比例尺//// 求m的值int t = 0;double sum;double[] mid = new double[6];//存储比例尺m的值for (int i = 0; i < 4; i++)//求六对线段的长度比{for (int j = i + 1; j < 4; j++){mid[t] = (Math.Sqrt((X[i] - X[j]) * (X[i] - X[j]) + (Y[i] - Y[j]) * (Y[i] - Y[j]))) /(Math.Sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])));t++;}}sum = 0.0;for (int i = 0; i < t; i++){sum = sum + mid[i];}m = sum / t;//比例尺为各段长度比的均值H = f * m;//计算航高lbl比例尺m.Text = "比例尺m=" + m.ToString();//显示比例尺lblH.Text = "航高H=" + H.ToString()+"m";//显示航高////定义外方位元素,并附初值double Xs , Ys , Zs , φ = 0, ω = 0, κ= 0;Xs = (X[0] + X[1] + X[2] + X[3]) / 4.0;Ys = (Y[0] + Y[1] + Y[2] + Y[3]) / 4.0;Zs = (Z[0] + Z[1] + Z[2] + Z[3]) / 4.0 + m * f;////定义x,y近似值double[] _x = new double[4];double[] _y = new double[4];////定义共线方程中的分子分母项,便于计算double[] _X = new double[4];double[] _Y = new double[4];double[] _Z = new double[4];////定义旋转矩阵Rdouble[,] R = new double[3, 3];////定义解方程所用矩阵double[,] A = new double[8, 6];//A系数阵double[,] AT = new double[6, 8];//A系数阵转置double[,] ATA = new double[6, 6];//A的转置与A的乘积double[,] temp = new double[6, 12];//临时矩阵double[,] ATAR = new double[6, 6];//A的转置与A的乘积的逆double[,] ATARAT = new double[6, 8];//A的转置与A的乘积的逆的转置double[,] L = new double[8, 1];//误差方程中的常数项double[,] XX = new double[6, 1];//X向量//////////////////开始迭代///////////////////do{////计算旋转矩阵R*0, 0+ = Math.Cos(φ) * Math.Cos(κ) - Math.Sin(φ) * Math.Sin(ω) * Math.Sin(κ);//a1R[0, 1] = -Math.Cos(φ) * Math.Sin(κ) - Math.Sin(φ) * Math.Sin(ω) * Math.Cos(κ);//a2R[0, 2] = -Math.Sin(φ) * Math.Cos(ω);//a3R*1, 0+ = Math.Cos(ω) * Math.Sin(κ);//b1R*1, 1+ = Math.Cos(ω) * Math.Cos(κ);//b2R[1, 2] = -Math.Sin(ω);//b3R*2, 0+ = Math.Sin(φ) * Math.Cos(κ) + Math.Cos(φ) * Math.Sin(ω) * Math.Sin(κ);//c1R[2, 1] = -Math.Sin(φ) * Math.Sin(κ) + Math.Cos(φ) * Math.Sin(ω) * Math.Cos(κ);//c2R*2, 2+ = Math.Cos(φ) * Math.Cos(ω);//c3for (int i = 0; i < 4; i++){//用共线方程计算x,y 的近似值_X[i] = R[0, 0] * (X[i] - Xs) + R[1, 0] * (Y[i] - Ys) + R[2, 0] * (Z[i] - Zs);_Y[i] = R[0, 1] * (X[i] - Xs) + R[1, 1] * (Y[i] - Ys) + R[2, 1] * (Z[i] - Zs);_Z[i] = R[0, 2] * (X[i] - Xs) + R[1, 2] * (Y[i] - Ys) + R[2, 2] * (Z[i] - Zs);_x[i] = -f * _X[i] / _Z[i];_y[i] = -f * _Y[i] / _Z[i];}for (int i = 0; i < 4; i++){//计算系数矩阵A[2 * i, 0] = (R[0, 0] * f + R[0, 2] * x[i]) / _Z[i];A[2 * i, 1] = (R[1, 0] * f + R[1, 2] * x[i]) / _Z[i];A[2 * i, 2] = (R[2, 0] * f + R[2, 2] * x[i]) / _Z[i];A*2 * i, 3+ = y*i+ * Math.Sin(ω) - ((x*i+ / f) * (x*i+ * Math.Cos(κ) - y*i+ * Math.Sin(κ)) + f * Math.Cos(κ)) * Math.Cos(ω);A[2 * i, 4] = -f * Math.Sin(κ) - (x*i+ / f) * (x*i+ * Math.Sin(κ) + y*i+ * Math.Cos(κ));A[2 * i, 5] = y[i];A[2 * i + 1, 0] = (R[0, 1] * f + R[0, 2] * y[i]) / _Z[i];A[2 * i + 1, 1] = (R[1, 1] * f + R[1, 2] * y[i]) / _Z[i];A[2 * i + 1, 2] = (R[2, 1] * f + R[2, 2] * y[i]) / _Z[i];A[2 * i + 1, 3] = -x*i+ * Math.Sin(ω) - ((x[i] / f) * (x[i] * Math.Cos(κ) - y*i+ * Math.Sin(κ)) - f * Math.Sin(κ)) * Math.Cos(ω);A[2 * i + 1, 4] = -f * Math.Cos(κ) - (y[i] / f) * (x*i+ * Math.Sin(κ) + y*i+ * Math.Cos(κ));A[2 * i + 1, 5] = -x[i];//计算常数项L[2 * i, 0] = x[i] - _x[i];L[2 * i + 1, 0] = y[i] - _y[i];}////计算A的转置,存在AT中for (int i = 0; i < 6; i++)for (int j = 0; j < 8; j++){AT[i, j] = A[j, i];}////计算A的转置与A的乘积,存在ATA中for (int i = 0; i < 6; i++)for (int j = 0; j < 6; j++){ATA[i, j] = 0;for (int l = 0; l < 8; l++)ATA[i, j] += AT[i, l] * A[l, j];}////////计算ATA的逆矩阵////////////初始化temp--临时数组for (int l = 0; l < 6; l++)for (int p = 0; p < 12; p++){temp[l, p] = 0;}////把ATA各值赋给tempfor (int i = 0; i < 6; i++)for (int j = 0; j < 6; j++){temp[i, j] = ATA[i, j];}////在temp中加入初等方阵for (int l = 0; l < 6; l++)temp[l, l + 6] = 1;////初等变换for (int l = 0; l < 6; l++){if (temp[l, l] != 1){double bs = temp[l, l];temp[l, l] = 1;for (int p = l + 1; p < 12; p++)temp[l, p] /= bs;}for (int q = 0; q < 6; q++){if (q != l){double bs = temp[q, l];for (int p = l; p < 12; p++)temp[q, p] -= bs * temp[l, p];}elsecontinue;}}////得到ATA的逆阵后存在ATAR中for (int i = 0; i < 6; i++)for (int j = 0; j < 6; j++){ATAR[i, j] = temp[i, j + 6];}////ATAR * AT存在ATARAT中for (int i = 0; i < 6; i++)for (int j = 0; j < 8; j++){ATARAT[i, j] = 0;for (int l = 0; l < 6; l++)ATARAT[i, j] += ATAR[i, l] * AT[l, j];}////计算ATARAT * L,存在XX中for (int i = 0; i < 6; i++)for (int j = 0; j < 1; j++){XX[i, j] = 0;for (int l = 0; l < 8; l++)XX[i, j] += ATARAT[i, l] * L[l, 0];}n++;if (n > c_N){MessageBox.Show("请检查阈值和迭代次数!" + (n - 1), "计算失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);break;}////计算外方位元素值Xs += XX[0, 0];Ys += XX[1, 0];Zs += XX[2, 0];φ += XX*3, 0+;ω += XX*4, 0+;κ += XX*5, 0+;}while (Math.Abs(XX[0, 0]) >= d || Math.Abs(XX[1, 0]) >= d || Math.Abs(XX[2, 0]) >= d || Math.Abs(XX[3, 0]) >= 1000*d || Math.Abs(XX[4, 0]) >= 1000*d || Math.Abs(XX[5, 0]) >= 1000*d);////输出显示结果if (n > c_N)MessageBox.Show("超过迭代精度,此数值下可能不收敛!", "提示", MessageBoxButtons.OK, rmation);else{MessageBox.Show("计算完成,显示计算结果", "提示", MessageBoxButtons.OK, rmation);txt计算结果.Text = "Xs:" + Xs.ToString() + "m" + "\r\n" + "Ys:" + Ys.ToString() + "m" + "\r\n" + "Zs:" + Zs.ToString() + "m" + "\r\n\r\n"+ "φ:" + φ.ToString() + "rad" + "\r\n" + "ω:" + ω.ToString() + "rad" + "\r\n" + "κ:" + κ.ToString() + "rad" + "\r\n\r\n"+ "dXs:" + XX[0, 0].ToString() + "m" + "\r\n" + "dYs:" + XX[1, 0].ToString() + "m" + "\r\n" + "dZs:" + XX[2, 0].ToString() + "m" + "\r\n"+ "dφ:" + XX[3, 0].ToString() + "rad" + "\r\n" + "dω:" + XX[4, 0].ToString() + "rad" + "\r\n" + "dκ:" + XX[5, 0].ToString() + "rad" + "\r\n\r\n" + "迭代次数:" + n.ToString();}////保存结果if (MessageBox.Show("是否保存结果数据.", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes){if (ofdSaveFile.ShowDialog() == DialogResult.OK){StreamWriter mystreamwriter = new StreamWriter(ofdSaveFile.FileName);mystreamwriter.WriteLine("计算结果为:" );mystreamwriter.WriteLine("m:" + m.ToString());mystreamwriter.WriteLine("H:" + H.ToString() + "m");mystreamwriter.WriteLine("\r\n");mystreamwriter.WriteLine("Xs:" + Xs.ToString() + "m" );mystreamwriter.WriteLine("Ys:" + Ys.ToString() + "m");mystreamwriter.WriteLine("Zs:" + Zs.ToString() + "m");mystreamwriter.WriteLine("\r\n");mystreamwriter.WriteLine("φ:" + φ.ToString() + "rad");mystreamwriter.WriteLine("ω:" + ω.ToString() + "rad");mystreamwriter.Write Line("κ:" + κ.ToString() + "rad");mystreamwriter.WriteLine("\r\n");mystreamwriter.WriteLine("dXs:" + XX[0, 0].ToString() + "m");mystreamwriter.WriteLine("dYs:" + XX[1, 0].ToString() + "m");mystreamwriter.WriteLine("dZs:" + XX[2, 0].ToString() + "m");mystreamwriter.WriteLine("dφ:" + XX*3, 0+.ToString() + "rad");mystreamwriter.WriteLine("dω:" + XX*4, 0+.ToString() + "rad");mystreamwriter.WriteLine("dκ:" + XX*5, 0+.ToString() + "rad");mystreamwriter.WriteLine("迭代次数:" + n.ToString());mystreamwriter.Close();}}elsereturn;}private void editorToolStripMenuItem_Click(object sender, EventArgs e){MessageBox.Show("地信XXX","个人信息");}}}九、运行结果十、实习总结通过这次摄影测量实习,是我学到了许多课本上学不到的知识和实践经验,也初步学会了关于单张影像空间后方交会的程序设计,丰富了自己的专业知识,让自己对摄影测量又有了性得了解;同时,在实习中也发现了自身的许多不足,使相关的专业知识和技巧得到了进一步提高。
单像空间后方交会实习报告
![单像空间后方交会实习报告](https://img.taocdn.com/s3/m/2e1abb132bf90242a8956bec0975f46527d3a702.png)
单像空间后方交会实习报告单像空间后方交会实习报告一、引言空间后方交会是摄影测量学中的一项重要内容,它能通过对已知控制点的旁边影像进行分析和计算,确定未知控制点的空间坐标,这在地图制作、城市规划、工程测量等领域有着广泛的应用。
本次实习旨在通过实际操作掌握空间后方交会的方法和技巧,进一步加深对摄影测量学的理解,并提升实际操作能力。
二、实习目的1. 学习空间后方交会的理论知识,了解其基本原理和计算方法。
2. 掌握使用数字相机采集控制点及待测控制点影像的技巧。
3. 熟练使用后方交会软件进行影像的处理和计算,得到待测控制点的空间坐标。
4. 分析实际数据的精度和误差,评估后方交会结果的可靠性。
三、实习过程1. 准备工作在实习开始前,我们需要准备好数字相机、相机标定板以及控制点和待测控制点的影像。
同时还需要安装并熟悉后方交会软件,以便后续处理和计算。
2. 影像采集首先,在实地选取控制点和待测控制点,并采用全站仪等测量仪器获取其地面坐标。
接着,通过相机标定板进行相机标定,获取相机内外参数。
然后,使用数字相机对控制点和待测控制点进行影像采集。
为了减小误差,我们要保证相机的光心与全站仪的标尺中心对准,并使用三脚架固定相机。
3. 影像的处理和计算将采集到的影像导入到后方交会软件中,根据相机内外参数和控制点的地面坐标,进行畸变校正和像点坐标的提取。
接下来,通过自动或手动方法选取控制点和待测控制点进行像点匹配。
通过匹配的像点坐标和已知控制点的地面坐标,利用后方交会公式进行计算,得到待测控制点的空间坐标。
4. 结果分析和评估对得到的结果进行精度分析,并评估其可靠性。
通过对比实测控制点的地面坐标与计算得到的空间坐标,计算精度检查,进一步评估后方交会结果的准确性。
同时,还要检查影像的质量和匹配的像点之间的差异,排除控制点标定、像点提取或匹配过程中出现的问题。
四、实习总结通过这次实习,我对空间后方交会的理论知识和实际操作有了更深入的了解。
单向空间后方交会实习报告
![单向空间后方交会实习报告](https://img.taocdn.com/s3/m/9649151432687e21af45b307e87101f69e31fb0b.png)
一、实习目的本次实习的主要目的是通过单张影像的空间后方交会算法,掌握摄影测量学中的基本原理和方法,培养实际操作能力和理论联系实际的能力。
通过实习,要求学生了解空间后方交会的概念、原理和计算方法,熟练运用相关软件进行空间后方交会的实际操作,并对结果进行分析和评定。
二、实习内容1. 了解空间后方交会的基本概念:空间后方交会是一种摄影测量方法,通过分析单张影像上若干个控制点的地面坐标和像坐标,利用共线条件方程,求解影像的外方位元素。
2. 学习空间后方交会的原理:影像上的控制点与相机镜头中心形成共线方程,通过最小二乘法求解影像的外方位元素。
外方位元素包括六个参数:三个表示相机在三维空间中的位置,三个表示相机在三维空间中的姿态。
3. 掌握空间后方交会的计算方法:利用共线条件方程,通过最小二乘法求解外方位元素。
计算过程中需要注意控制点的选择、权重的分配和迭代求解的精度。
4. 熟悉空间后方交会的实际操作:使用相关软件(如MATLAB、ERDAS IMAGINE等)进行空间后方交会的实际操作,包括数据的输入、参数的设置和结果的输出。
5. 结果分析和评定:对空间后方交会的结果进行分析和评定,包括计算精度、误差分析和结果的可信度。
三、实习过程1. 理论学习和讨论:在学习空间后方交会的基本概念和原理的基础上,进行小组讨论,理解并掌握空间后方交会的计算方法。
2. 软件操作练习:在老师的指导下,使用相关软件进行空间后方交会的实际操作,熟悉软件的操作界面和功能。
3. 数据处理和计算:根据实习提供的数据,进行空间后方交会的计算,包括控制点的选择、权重的分配和迭代求解的过程。
4. 结果分析和评定:对空间后方交会的结果进行分析和评定,计算精度、误差分析和结果的可信度。
四、实习总结通过本次实习,我对空间后方交会的基本概念、原理和计算方法有了更深入的了解,掌握了相关软件的操作方法,并能够进行空间后方交会的实际操作。
在实习过程中,我学会了如何选择控制点、分配权重和判断迭代求解的精度。
2019年摄影测量学单像空间后方交会编程实习报告-范文word版 (13页)
![2019年摄影测量学单像空间后方交会编程实习报告-范文word版 (13页)](https://img.taocdn.com/s3/m/0c4867def8c75fbfc77db281.png)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! == 摄影测量学单像空间后方交会编程实习报告篇一:摄影测量学单像空间后方交会编程实习报告摄影测量学单像空间后方交会编程实习报告班级:姓名:学号:201X302590xxx指导老师:李欣一、实习目的通过对提供的数据进行计算,输出像片的外方位元素并评定精度。
深入理解单像空间后方交会的思想,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。
通过尝试编程实现加强编程处理问题的能力和对实习内容的理解,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。
了解摄影测量平差的基本过程,掌握空间后方交会的定义和实现算法。
二、实习内容根据学习的单像空间后方交会的知识,用程序设计语言(C++或C语言)编写一个完整的单像空间后方交会程序,通过对提供的数据进行计算,输出像片的外方位元素并评定精度。
三、实习数据已知航摄仪的内方位元素:fk=153.24mm,x0=y0=0,摄影比例尺为1:15000;4个地面控制点的地面坐标及其对应像点的像片坐标:四、实习原理如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。
因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。
可采取的方法有:利用雷达、全球定位系统(GPS)、惯性导航系统(INS)以及星相摄影机来获取影像的外方位元素;也可以利用影像覆盖范围内一定数量的控制点的空间坐标与摄影坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间后方交会。
单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,?,ω,κ。
五、实习流程1. 获取已知数据。
单像空间后方交会实习报告
![单像空间后方交会实习报告](https://img.taocdn.com/s3/m/8c779ac0fbb069dc5022aaea998fcc22bcd14302.png)
单像空间后方交会实习报告在我大二的时候,我在学校的地理信息科学实验室进行了一次后方交会实习。
这次实习让我学到了很多关于单像空间后方交会的知识和技能,也让我感受到了这个领域的重要性和挑战性。
一、实习背景地理信息科学实验室每年都会招募一些学生进行实习,我很幸运地被录取了。
这次实习的任务是处理一张由我校经济学院提供的无人机航拍图,将其转换为面状地图,并标注出地物和道路等信息。
这需要我们进行一系列的处理和分析步骤,其中包括单像空间后方交会。
二、单像空间后方交会的概念单像空间后方交会是指利用单个航空(或是航天)影像数据,通过对影像信息的解译和解算,实现航空(或是航天)影像数据与地面控制点、地物控制点的精确定位和测量。
在数字摄影测量中,它被广泛应用于三维地图制图、遥感分析、环境监测等领域。
三、后方交会的步骤在进行单像空间后方交会的过程中,我们需要按照以下步骤进行:1. 确定控制点和目标点首先,我们需要去现场进行勘测,确定一些地面控制点和地物控制点。
这些控制点通常是人为放置的,其经纬度和高程值可以通过全球卫星定位系统(GPS)进行测量。
同时,我们也需要标注出一些目标点,例如建筑物、道路等。
2. 数字化影像然后,我们需要将航拍图数字化,得到其高分辨率的像元值。
数字化过程中需要对影像进行去畸变和空间校正处理,保证像号与光学系统的参数之间的一一对应关系。
3. 特征提取接着,我们需要对数字化影像进行特征提取,例如道路、建筑物、不规则物体的边缘等,得到这些待测量的点的坐标信息。
4. 内方位元素的解算接下来,我们需要对影像的内部参数进行计算,包括焦距、主点位置、像距和畸变参数等。
这些参数对后面的后方交会计算至关重要。
5. 外方位元素的解算然后,我们需要通过空三测量方法,计算航拍机的位置和姿态信息,即外方位元素。
外方位元素包括愚角、俯仰角、横滚角、以及平台的三维坐标。
6. 后方交会计算最后,我们需要将上述内外方位元素的解算值与控制点的经纬度和高程值进行计算,得到待测点在像元和地面坐标系下的坐标值。
摄影测量实习报告-单片空间后方交会8页word文档
![摄影测量实习报告-单片空间后方交会8页word文档](https://img.taocdn.com/s3/m/23e68f501ed9ad51f11df202.png)
摄影测量实习报告实习内容:单片空间后方交会编程实习者:李友兵学号:0810050121指导老师:张金平老师实习时间:2019.05.30——2019.06.03一、实习目的与任务此次摄影测量实习主要是要自主编程实现单像空间后方交会,通过已知的内方位元素和控制点像点坐标和地面坐标求解六个外方位元素,在此过程中深入理解单像空间后方交会的原理和对编程的熟悉和理解(我用的是C语言编程),和对时间的合理运用,对知识的综合运用,培养理论的实际运用能力,任务是在一个星期内自主完成。
二、单片空间后方交会理论基础单像空间后方交会:是通过以像点平面坐标为观测值,以控制点坐标为已知值,利用共线条件方程和最小二乘原理,运用间接平差方法,通过迭代求解6个外方位元素。
程序设计的思路与流程三、程序设计的思路与流程(编程框架和步骤)1、根据内方位元素和已知的数据将控制点的框标坐标转换为像平面坐标系坐标:x=x′-x0,y=y′-y02、确定未知数的初始值:角元素初始值κ0=ω0=Φ0=0;线元素初始值Zs0=H=mf,Xs0=(X1+X2+X3+X4)/4,Ys0=(Y1+Y2+Y3+Y4)/43、利用角元素初始值计算方向余弦值组成旋转矩阵Ra1=cosΦ*cosκ-sinΦ*sinω*sinκ,a2=-cosΦ*sinκ-sinΦ*sin ω*cosκ,a3=-sinΦ*cosωb1=cosω*sinκ,b2=cosω*cosκ,b3=-sinωc1=sinΦ*cosκ+cosΦ*sinω*sinκ,c2=-sinΦ*sinκ+cosΦ*sin ω*cosκ,c3=cosΦ*cosω4、逐点计算控制点的像点坐标的近似值,共线方程为:x=(-f*(a1*(X-Xs)+b1*(Y-Ys)+c1*(Z-Zs)))/(a3*(X-Xs)+b3*(Y-Ys) +c3*(Z-Zs))y=(-f*(a2*(X-Xs)+b2*(Y-Ys)+c2*(Z-Zs)))/(a3*(X-Xs)+b3*(Y-Ys) +c3*(Z-Zs))(x)=(-f*(a1*(X-Xs)+b1*(Y-Ys)+c1*(Z-Zs)))/(a3*(X-Xs)+b3*(Y-Y s)+c3*(Z-Zs))(y)=(-f*(a2*(X-Xs)+b2*(Y-Ys)+c2*(Z-Zs)))/(a3*(X-Xs)+b3*(Y-Y s)+c3*(Z-Zs))5、组成误差方程:Vx=a11*dXs+a12*dYs+a13*dZs+a14*dΦ+a15*dω+a16*dκ+(x)-xVy=a21*dXs+a22*dYs+a23*dZs+a24*dΦ+a25*dω+a26*dκ+(y)-y系数求解(是共线方程分别外方位元素求导,是共线方程线性化的系数):变量代换A= a1*(X-Xs)+b1*(Y-Ys)+c1*(Z-Zs)B= a2*(X-Xs)+b2*(Y-Ys)+c2*(Z-Zs)C= a3*(X-Xs)+b3*(Y-Ys)+c3*(Z-Zs)a11=(a1*f+a3*x)/C,a12=(b1*f+b3*x)/C,a13=(c1*f+c3*f)/C,a14=y *sinω-((x*(x*cosκ-y*sinκ))/f+f*cosκ)cosω,a15=-f*sin κ-(x*(x*sinκ+y*cosκ)/f),a16=ya21=(a2*f+a3*x)/C,a22=(b2*f+b3*x)/C,a23=(c2*f+c3*x)/C,a24=-xsinω-((x*(x*cosκ-y*sinκ))/f-f*sinκ)cosω,a25=-f*cosκ-(y*(x*sinκ+y*cosκ)/f),a26 =-x 误差方程的常系数(是像点坐标观测值与计算的近似值的差值):lx=x-(x) ,ly=y-(y)6、组成法方程,解求外方位元素改正数X=(A T A)-1A T L(A为误差方程的系数矩阵,L为误差方程的常系数矩阵,通过步骤5求得,此处先求A T A再求矩阵的逆矩阵,解得的改正数加上相应的近似值得到外方位元素新的近似值)7、检查计算是否收敛:将求得的外方位元素改正数与规定的限差比较,大于限差继续迭代,小于限差则终止。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摄影测量学单像空间后方交会编程实习报告实习背景
在本次实习中,我们学习了摄影测量学单像空间后方交会的编程实现。
这是一种通过计算影像中各点的坐标来确定被摄物的三维坐标的方法,应用广泛于测绘、地理信息、建筑等领域。
本次实习采用 MATLAB 软件进行编程,目的是将理论知识应用到实际操作中,让我们更深入理解摄影测量学单像空间后方交会的原理和应用。
实习内容
理论部分
首先,我们在工作室进行了理论部分的学习。
老师讲解了单像空间后方交会的原理,以及如何通过影像坐标、相机外方位元素、像点坐标和像平面坐标等参数来计算被摄物的三维坐标。
在理论部分的学习过程中,我们通过公式的推导和实例分析,更加深入地理解了单像空间后方交会的原理。
实践部分
实践部分是本次实习的重头戏。
我们利用 MATLAB 软件进行了单像空间后方交会的编程实现,具体步骤如下:
1.输入相机外方位元素
通过读取文本文件,将相机外方位元素(相机在拍摄时的姿态、位置等参数)输入到 MATLAB 中。
2.输入影像坐标
通过读取文本文件,将影像中的像点坐标输入到 MATLAB 中。
3.计算像平面坐标
利用相机内定标参数,将像点坐标转化为像平面坐标。
4.计算被摄物三维坐标
根据单像空间后方交会的原理,利用相机外方位元素、像平面坐标和像点坐标等参数,计算被摄物的三维坐标。
5.输出结果
将计算结果输出到文本文件中,以便后续的数据处理和分析。
在实际操作中,我们首先编写了 MATLAB 脚本文件,根据上述步骤逐步实现了单像空间后方交会的计算过程。
然后,我们利用自己拍摄的实际照片进行实验,将相机外方位元素和像点坐标输入到程序中,最终得到了被摄物的三维坐标结果。
实习收获
通过本次实习,我从理论到实践,更深入地理解了摄影测量学单像空间后方交会的原理和应用,同时也掌握了 MATLAB 的编程技能。
在实践中,我遇到了许多问题,包括数据的输入输出、代码的调试和结果的分析等等。
通过和同学的讨论和老师的指导,我不仅解决了这些问题,还对摄影测量学的应用有了更深入的认识。
本次实习为我提供了一个很好的机会来深入学习和掌握摄影测量学单像空间后方交会的方法和应用,让我受益匪浅。
同时,也让我更加认识到了学习的重要性和实践的必要性。