空间后方交会精度分析及实验验证
单像空间后方交会实习报告

单像空间后方交会实习报告摘要本报告旨在总结并评估笔者在单像空间后方交会实习中的经验和收获。
首先,报告介绍了单像空间后方交会实习的目的和背景。
接着,报告详细描述了实习期间所进行的实验和操作步骤。
在实习过程中,笔者遇到了一些挑战,但通过团队合作和专业指导取得了成功。
最后,报告总结了实习对于个人职业发展的重要性,并提出了改进实习体验的建议。
1. 引言单像空间后方交会是测量和分析地球或其他星球上的点的空间坐标的方法之一。
该方法通过将来自不同位置的图像投影到一个共同的平面上,并在该平面上对图像进行测量和分析,以确定点的坐标。
本实习旨在将现实生活中的实地测量和图像处理技术相结合,通过实际操作了解和掌握单像空间后方交会的原理和应用。
2. 实习过程本次实习分为三个步骤:图像获取、图像处理和空间坐标计算。
2.1 图像获取首先,为了进行后续的图像处理和分析,我们需要获取一组具有不同视角的图像。
为了实现这个目标,我们选择了一片公共景区进行实地测量。
在测量过程中,我们使用了专业的测量设备和相机,并按照一定的间隔和角度拍摄了一组图像。
这些图像将被用于后续的图像处理和分析。
2.2 图像处理在图像处理阶段,我们使用了专业的图像处理软件对获取到的图像进行处理。
首先,我们使用了相机标定算法对相机内外参数进行校准,以保证后续测量的精度和准确度。
然后,我们对每张图像进行了特征点提取和匹配,以建立图像之间的对应关系。
最后,根据所获得的对应关系,我们重建了图像场景的三维模型,并将其用于后续的空间坐标计算。
2.3 空间坐标计算在空间坐标计算阶段,我们使用了单像空间后方交会的原理,计算了每个图像特征点的空间坐标。
首先,我们将图像场景的三维模型与图像上的特征点进行对应,以确定特征点在三维空间中的位置。
然后,我们利用三角测量原理计算出特征点的三维坐标。
最后,通过对所有图像特征点的计算,我们可以得到目标点的空间坐标。
3. 实习挑战与解决在实习过程中,我们遇到了一些挑战,如图像质量、算法调优和测量误差等。
摄影测量学空间后方交会实验报告

摄影测量学实验报告实验一、单像空间后方交会学院:建测学院班级:测绘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.实验结果四.实验总结此次实验让我深入了解单像空间后方交会的计算过程,加强了对空间后方交会基本公式和误差方程式,法线方程式的记忆。
单像空间后方交会实验报告(c++版)

单像空间后方交会实验报告(c++版)单像空间后方交会姓名:学号:时间:目录一、作业任务..................................................... - 4 -二、计算原理..................................................... - 4 -三、算法流程..................................................... - 8 -四、源程序....................................................... - 9 -五、计算结果..................................................... - 9 -六、结果分析..................................................... - 9 -七、心得与体会................................................... - 9 -八、附页......................................................... - 9 -1.c++程序.................................................. - 10 -2.C++程序截图.............................................. - 17 -3.matlb程序 ............................................... - 17 -一、 作业任务已知条件:摄影机主距f=153.24mm ,x0=0,y0=0, 像片比例尺为1:40000,有四对点的像点坐标与相应的地面坐标如下表。
(样本)空间后方交会实验报告

空间后方交会实验报告
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 实习心得与总结:
略。
后方交会实验报告

摄影测量学实验报告实验名称:空间后方交会班级:测绘工程12-1一.实验目的掌握运用空间后方交会求解外方元素的过程。
学会运用空间后方交会的原理,根据所给控制点的地面摄影测量坐标系坐标以及相应的像平面坐标系中的坐标,利用已知公式和计算机编程语言实现空间后方交会的过程,完成外方位元素的求解。
二.实验工具个人电脑,visual basic6.0三.实验源代码Private Sub Command1_Click()Dim c(),kx(),ky(),l(),aa(),a11(),a12(),a13(),a14(),a15(),a16(), a21(),a22(),a23(),a24(),a25()Dim a26(),v(),mm(5)nn=Val(Text2.Text)nnt=nn-1ReDim c(nnt,5),kx(nnt),ky(nnt),l(2*nnt+1,0),aa(2*nnt+1,5), a11(nnt),a12(nnt),a13(nnt),a14(nnt),a15(nnt),a16(nnt),a21(nnt), a22(nnt),a23(nnt),a24(nnt),a25(nnt)ReDim a26(nnt)f=Val(Text1.Text)fei=0#w=0#k=0#If Label2.Caption=""ThenMsgBox"尚未读取文本",,"提示信息"Elsea=Split(Label2.Caption,vbCrLf)For i=0To nnthh=Split(a(i),"")For j=0To5c(i,j)=Val(hh(j))Next jNext im1=(c(0,1)-c(1,1))^2+(c(0,2)-c(1,2))^2 m2=(c(0,3)-c(1,3))^2+(c(0,4)-c(1,4))^2 m=Sqr(m2/m1)zs=m*fxs=0ys=0For i=0To nntxs=xs+c(i,3)ys=xs+c(i,4)Next ixs=xs/nnys=ys/nnDoa1=Cos(fei)*Cos(k)-Sin(fei)*Sin(w)*Sin(k)a2=-Cos(fei)*Sin(k)-Sin(fei)*Sin(w)*Cos(k)a3=-Sin(fei)*Cos(w)b1=Cos(w)*Sin(k)b2=Cos(w)*Cos(k)b3=-Sin(w)c1=Sin(fei)*Cos(k)+Cos(fei)*Sin(w)*Sin(k)c2=-Sin(fei)*Sin(k)+Cos(fei)*Sin(w)*Cos(k)c3=Cos(fei)*Cos(w)For i=0To nntkx(i)=-f*(a1*(c(i,3)-xs)+b1*(c(i,4)-ys)+c1*(c(i,5)-zs)) /(a3*(c(i,3)-xs)+b3*(c(i,4)-ys)+c3*(c(i,5)-zs))ky(i)=-f*(a2*(c(i,3)-xs)+b2*(c(i,4)-ys)+c2*(c(i,5)-zs)) /(a3*(c(i,3)-xs)+b3*(c(i,4)-ys)+c3*(c(i,5)-zs))Next iFor i=0To nntl(i*2,0)=c(i,1)-kx(i)l(i*2+1,0)=c(i,2)-ky(i)Next iFor i=0To nntzb=(a3*(c(i,3)-xs)+b3*(c(i,4)-ys)+c3*(c(i,5)-zs))a11(i)=(a1*f+a3*c(i,1))/zba12(i)=(b1*f+b3*c(i,1))/zba13(i)=(c1*f+c3*c(i,1))/zba21(i)=(a2*f+a3*c(i,2))/zba22(i)=(b2*f+b3*c(i,2))/zba23(i)=(c2*f+c3*c(i,2))/zba14(i)=c(i,2)*Sin(w)-(c(i,1)*(c(i,1)*Cos(k)-c(i,2)*Sin(k)) /f+f*Cos(k))*Cos(w)a15(i)=-f*Sin(k)-c(i,1)/f*(c(i,1)*Sin(k)+c(i,2)*Cos(k))a16(i)=c(i,2)a24(i)=-c(i,1)*Sin(w)-(c(i,2)*(c(i,1)*Cos(k)-c(i,2)*Sin(k)) /f-f*Sin(k))*Cos(w)a25(i)=-f*Cos(k)-c(i,2)/f*(c(i,1)*Sin(k)+c(i,2)*Cos(k)) a26(i)=-c(i,1)Next iFor i=0To nntaa(2*i,0)=a11(i)aa(2*i,1)=a12(i)aa(2*i,2)=a13(i)aa(2*i,3)=a14(i)aa(2*i,4)=a15(i)aa(2*i,5)=a16(i)aa(2*i+1,0)=a21(i)aa(2*i+1,1)=a22(i)aa(2*i+1,2)=a23(i)aa(2*i+1,3)=a24(i)aa(2*i+1,4)=a25(i)aa(2*i+1,5)=a26(i)Next iReDim at(5,2*nnt+1),ata(5,5),nata(5,5),nataat(5,2*nnt+1), detx(5,0)at=zhuanzhi(aa)ata=cheng(at,aa)nata=qiuni(ata)nataat=cheng(nata,at)detx=cheng(nataat,l)xs=xs+detx(0,0)ys=ys+detx(1,0)zs=zs+detx(2,0)fei=fei+detx(3,0)w=w+detx(4,0)k=k+detx(5,0)Loop Until Abs(detx(0,0))<0.000001And Abs(detx(1,0))< 0.000001And Abs(detx(2,0))<0.000001And Abs(detx(3,0))<0.000001And Abs(detx(4,0))<0.000001And Abs(detx(5,0))< 0.000001ReDim v(2*nnt+1,0),ax(2*nnt+1,0)ax=cheng(aa,detx)v=jian(ax,l)vv=0For i=0To2*nnt+1vv=v(i,0)^2+vvNext imo=Sqr(vv/(2*nn-6))For i=0To5mm(i)=mo*Sqr(nata(i,i))Next itxtshow.Text=txtshow.Text&"外方元素为中误差为"&vbCrLf&"Xs"&xs&" "&mm(0)&vbCrLf&"Ys"&ys&" "&mm(1)&vbCrLf&"Zs"&zs&" "&mm(2)&vbCrLf&"Φ"&fei&"" &mm(3)&vbCrLf&"W"&w&"" &mm(4)&vbCrLf&"K"&k&""& mm(5)&vbCrLf&vbCrLftxtshow.Text=txtshow.Text&"报告时间:"&Year(Date)&Format(Month(Date),"00")& Format(Day(Date),"00")&vbCrLftxtshow.Text=txtshow.Text&"审批人签字:"End IfEnd SubPrivate Sub Command2_Click()CommonDialog1.Filter="文档|*.txt"CommonDialog1.ShowOpenLabel1.Caption=CommonDialog1.FileNameEnd SubPrivate Sub Command3_Click()Label2.Caption=""Dim mylineIf Label1.Caption<>""ThenOpen Label1.Caption For Input As#1Do While Not EOF(1)Line Input#1,mylineLabel2.Caption=Label2.Caption+myline+vbCrLfLoopClose#1End SubPrivate Sub Command4_Click()CommonDialog1.DialogTitle="保存文件" CommonDialog1.Filter="文档|*.doc" CommonDialog1.Action=2If CommonDialog1.FileName<>""ThenOpen CommonDialog1.FileName For Output As#1 Print#1,txtshow.TextClose#1End IfEnd SubPrivate Sub Command5_Click()txtshow.Text=""End SubPrivate Sub Command6_Click()If MsgBox("确认退出程序?",68,"提示信息")=6Then EndEnd IfEnd SubPublic Function cheng(a(),b())ReDim s(UBound(a,1),UBound(b,2))If UBound(a,2)<>UBound(b,1)Then MsgBox"不符合乘法要求"EndElseFor i=0To UBound(s,1)For j=0To UBound(s,2)s(i,j)=0For Q=0To UBound(a,2)s(i,j)=Val(s(i,j))+Val(a(i,Q))*Val(b(Q,j)) Next QNext jNext icheng=sEnd IfEnd FunctionPublic Function zhuanzhi(a())Dim sReDim s(UBound(a,2),UBound(a,1))For i=0To UBound(a,1)For j=0To UBound(a,2)s(j,i)=a(i,j)Next jNext izhuanzhi=sEnd FunctionPublic Function qiuni(m())Dim s()If UBound(m,1)<>UBound(m,2)Then MsgBox("求逆错误")EndElsen=UBound(m,1)Dim e(),m1,m2,m3ReDim e(n,2*n+1)ReDim s(n,2*n+1)For i=0To nFor j=0To ne(i,j)=m(i,j)Next jNext iFor i=0To nFor j=n+1To2*n+1e(i,j)=0Next jNext iFor i=0To ne(i,n+i+1)=1 Next iFor t=0To nIf e(t,t)=0Then For i=t+1To nFor j=0To2*n+1 s(i,j)=e(i,j)e(i,j)=e(t,j)e(t,j)=s(t,j)Next jIf e(t,t)<>0Then GoTo daima1End IfNext iIf e(t,t)=0Then MsgBox("求逆错误") EndGoTo lastlineEnd Ifdaima1:m1=e(t,t)For j=0To2*n+1e(t,j)=e(t,j)/m1Next jFor i=t+1To nm2=e(i,t)For j=0To2*n+1e(i,j)=e(i,j)-m2*e(t,j) Next jNext iNext tFor t=0To n-1For i=t+1To nm3=e(t,i)For j=0To2*n+1e(t,j)=e(t,j)-m3*e(i,j) Next jNext iNext tReDim c(n,n)For i=0To nFor j=0To nc(i,j)=Round(e(i,j+n+1),2)Next jNext iqiuni=cEnd Iflastline:End FunctionPublic Function jian(a(),b())Dim s,tReDim s(UBound(a,1),UBound(a,2))If UBound(a,1)<>UBound(b,1)Or UBound(a,2)<>UBound(b,2) ThenMsgBox"不符合减法要求"EndElseFor i=0To UBound(a,1)For j=0To UBound(a,2)s(i,j)=Val(a(i,j))-Val(b(i,j))Next jNext ijian=sEnd IfEnd FunctionPrivate Sub Form_Load()Form1.Image1.Top=0Form1.Image1.Left=0Form1.Image1.Width=Form1.Width Form1.Image1.Height=Form1.Height End SubPrivate Sub Form_Resize()Form1.Image1.Top=0Form1.Image1.Left=0Form1.Image1.Width=Form1.Width Form1.Image1.Height=Form1.Height End Sub四.实验框图获取已知数据量测控制点的像点坐标确定未知数初始值五.实验数据1-0.08615-0.0689936589.4125273.322195.17 2-0.053400.0822137631.0831324.51728.69 3-0.01478-0.0766339100.9724934.982386.5 40.010460.0644340426.5430319.81757.31六.实验截图七.实验心得此次实验让我更加了解空间后方交会的计算过程,加强了对空间后方交会基本公式和误差方程式,法线方程式的记忆。
摄影测量学空间后方交会实验报告13页

摄影测量学空间后方交会实验报告13页报告摘要:本实验以三张已知高度物体的相片为样本,运用摄影测量学的空间后方交会算法,通过MATLAB编程实现对物体三维坐标的计算,并加以检验与探讨,得出结论相对合理。
同时,本实验也通过对MATLAB编程的应用,掌握了空间后方交会算法的理论及实践方法。
1. 实验目的(1)学习和应用摄影测量学中的空间后方交会算法,掌握其计算方法和程序实现过程。
(2)了解数字像相机的相关特性,并掌握其使用方法。
(3)通过对样本数据的处理,熟悉和掌握MATLAB编程的应用技巧。
2. 实验器材数字相机一部,尺子一把,样本图像三张,MATLAB软件。
3. 实验原理在精密测量领域中,采用摄影测量学的空间后方交会算法,可实现三维坐标的测量和重建。
这种方法是将已知物体的照片,通过对像点的提取及校准,得出像点坐标系下的物体的三维坐标系下的坐标。
这种算法的基本思路是:利用像点坐标系下的物体三维坐标系下的坐标关系,构建一个误差最小的方程组,通过矩阵的求解,得到物体三维坐标系下的坐标。
数字相机是一种基于CCD或CMOS成像器材料的成像设备,根据数字信号的处理能力,合成电子图像。
数字相机的性能主要包括分辨率、感光度、曝光控制、焦距、光圈等参数。
使用数字相机拍摄时,应根据拍摄对象的光线条件、距离、尺寸、景深等因素,进行调节。
4. 实验过程(1)利用数字相机拍摄三张已知高度物体的照片,并在样本上面贴标记,用尺子测算实际高度。
(2)利用图像处理软件MATLAB,对照片进行像点识别和校准,得到像点坐标系下的坐标。
(3)根据相片中已知物体的测高值及像点坐标系下的坐标值,通过MATLAB编写空间后方交会的程序算法,得出物体的三维坐标系下的坐标。
(4)对得出的坐标值进行检验及探讨,分析误差来源及部分工具库的使用方法。
5. 实验结果与分析本实验所得出的三维坐标值,原本应是在一个确定点之间展开的点集。
知道参数计算不全或精度不够是常有的事情(尤其在没有精密测量器具的条件下),这种情况我们应该考虑从给出的角度和图像来看和计算得到位置。
空间后方交会放样实习报告

实习报告一、实习目的与任务本次实习的主要目的是让同学们掌握空间后方交会的原理和方法,以及在实际工程中的应用。
通过实习,要求同学们能够独立完成空间后方交会的计算和放样工作,提高在测量、记录、计算和绘图等方面的能力。
同时,培养同学们良好的团队协作意识和个人责任感,充分认识到测量工作的科学性、精密性,引导专业素质的养成。
实习任务是在给定的控制点上,利用空间后方交会方法,测定待放样点的位置。
二、实习原理空间后方交会是一种基于多测站测量的空间位置确定方法。
它通过在多个观测站上对同一目标进行观测,利用观测数据求解目标的空间位置。
空间后方交会的基本原理是:根据已知的控制点坐标和观测数据,通过解算方程组,求解待放样点的坐标。
三、实习过程1. 准备工作:在实习开始前,同学们先学习了有关空间后方交会的理论知识,了解了其原理和操作方法。
然后,指导老师向同学们讲解了实习的具体任务和注意事项,强调了测量工作的精确性和严谨性。
2. 实习实施:同学们分成若干小组,每组负责一部分放样任务。
在实际操作中,同学们严格遵循测量规范,使用经纬仪、全站仪等测量仪器,进行测站设置、观测和数据记录。
3. 数据处理:观测完成后,同学们利用空间后方交会原理,对观测数据进行处理,求解待放样点的位置。
在数据处理过程中,同学们充分运用所学的数学知识和计算方法,严格把控计算过程中的每一个环节。
4. 成果检查:为了确保放样结果的准确性,同学们对放样成果进行了严格的检查。
检查内容包括坐标精度、高程误差等方面。
对于发现的问题,同学们及时进行修正,确保放样成果满足工程要求。
四、实习收获与体会通过本次实习,同学们掌握了空间后方交会的基本原理和操作方法,提高了在测量、记录、计算和绘图等方面的能力。
实习过程中,同学们充分认识到测量工作的科学性、精密性,培养了良好的团队协作意识和个人责任感。
同时,实习也让同学们明白了测量工作在工程建设中的重要性。
测量放样的精确性直接影响到工程的质量和进度,因此,作为一名测绘工程专业的学生,我们要不断提高自己的专业素质,为我国工程建设贡献力量。
后方交会方法及其精度评定问题的研究_朱宝训-ok

第12卷 第3期2004年9月 山东交通学院学报JOUR NAL OF SHANDON G JIAOTON G UNIVERSITY Vol .12No .3 Sep .2004后方交会方法及其精度评定问题的研究朱宝训,刘成龙,杨天宇(西南交通大学 土木工程学院,四川成都 610031)摘要:基于3个已知点的后方交会,推导了测角、测边后方交会的近似精度评定公式以及针对起算数据误差时的严密精度评定公式,并用间接平差方法对边角同测后方交会进行了严密的平差计算与精度评定;通过观测实验分别对测角、测边、边角同测后方交会的精度及坐标进行了比较分析。
关 键 词:后方交会;测边;测角;边角;起算数据误差中图分类号:TU198 文献标识码:A文章编号:1672-0032(2004)03-0026-04在工程测量中,后方交会是测量定位、控制网加密和自由设站法施工放样的重要方法之一。
传统的后方交会是以测角为主,随着电子测距仪在生产中的普遍应用,距离后方交会定位法日益得到应用。
目前,全站仪已逐渐普及,利用全站仪可以方便地同时测角和边,因此在实际工作中,就存在测边、测角、边角同测后方交会坐标计算问题以及它们的精度评定问题。
文献[1]、[2]分别对两个已知点边角同测的精度进行了探讨,本文以常用的3个已知点的后方交会为例,研究合理的后方交会坐标计算及其精度评定方法,并通过实验分别对测角、测边、边角同测后方交会的精度及坐标进行了比较分析。
1 测角后方交会如图1所示,已知A ,B ,C 点的坐标A (x A ,y A ),B (x B ,y B ),C (x C ,y C ),观测角度α,β,求待定点P 的坐标P (x P ,y P )。
图1 后方交会示意图因3个已知点的测角后方交会问题无多余观测,求P 点坐标的计算公式为[3]:x P =x B +Δx BP ,y P =y B +Δy BP ,式中 Δy BP =Δx BP tan αBP ,Δx BP =(y B -y A )(cot α-tan αBP )-(x B -x A )(1+c ot αtan αBP )1+tan αBP,其中 tan αBP =(y B -y A )cot α+(y B -y C )cot β+(x A -x C )(x B -x A )cot α+(x B -x C )cot β-(y A -y C ).求得不考虑原始数据误差影响时P 点在X ,Y 方向的坐标精度评定公式分别为:m 2x P=(F 1+ F 2)2m 2αρ2+(φF 2)2m 2βρ2,m 2y P=[(F 1tan αBP + (F 2tan αBP +Δx BP )]2m 2αρ2+[φ(F 2tan αBP +Δx BP )]2m 2βρ2,式中 F 1=Δx AB tan αBP -Δy A B (1+tan 2αBP )sin 2α,F 2=-2Δx BP tan αBP +Δy AB +Δx AB cot α1+tan 2αBP,ρ=206265(″), =M Δx AB -N Δy A B N 2sin 2α,φ=M Δx CB -N Δy CB N 2sin 2β, 收稿日期:2004-06-08 作者简介:朱宝训(1974-),男,山东日照人,西南交通大学硕士研究生.其中 M =(y B -y A )cot α+(y B -y C )c ot β+(x A -x C ),N =(x B -x A )cot α+(x B -x C )cot β-(y A -y C ).考虑原始数据误差影响时P 点在X ,Y 方向的坐标精度评定公式分别为m 2x ′P =(F 2a 1-n l )2m 2x A +(F 2a 2-m l )2m 2y A +(1+F 2a 3+n l)2m 2x B +(F 2a 4+m l)2m 2y B +(F 2a 5)2m 2x C +(F 2a 6)2m 2y C +m 2x P ,m 2y ′P =(ωa 1-tan αBP n l )2m 2x A +(ωa 2-tan αBP m l )2m 2y A +(ωa 3+tan αBP n l)2m 2x B +(1+ωa 4+tan αBP m l)2m 2y B +(ωa 5)2m 2x C +(ωa 6)2m 2y C +m 2y P ,式中 ω=F 2tan αBP +Δx BP ,a 1=M cot α+N N 2,a 2=M -N cot αN 2,a 3=-M (cot α+cot β)N2,a 4=(cot α+cot β)N ,a 5=M cot β-N N 2,a 6=-N c ot β+M N2,m =cot α-tan αBP ,n =1+c ot αtan αBP ,l =1+tan 2αBP .2 测边后方交会图1中,S 1,S 2,S 3为已知点构成的三角形的边,L 1,L 2,L 3为观测边,∠1、∠2为辅助角,求待定点的坐标P (x P ,y P )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
空间后方交会精度分析及实验验证张杰;范生宏;刘昌儒;石磊;管乐鑫【摘要】The single image space resection is a key step in photogrammetry to calculate 3D coordinates,it has a close and com⁃plicated mathematical formula,and is susceptible by its internal parameters and external environment.At present,there are more studies on resection solving methods but fewer studies on precision evaluation.This paper studies the factors that influence the resection preci⁃sion based on single image space resection theory analysis, and designs resection experiments for various situations. The influence of image point coordinates,object space point coordinates,control field size and photogrammetric distance on resection precision is studied in detail.The influence degree and trends of those influence factors on resection precision are obtained from experiments,which has some guiding significance for improving the precision of single image space resection in practical engineering applications.%单像空间后方交会是摄影测量计算三维坐标的关键步骤,有着严密且复杂的数学公式,其内部参数及外部环境都会成为交会精度的影响因素。
针对目前单像空间后方交会求解方法研究较多,而精度评价方面研究较少的现状,通过对单像空间后方交会理论进行分析,寻找影响交会精度的影响因素,设计各种情况的后方交会实验,着重研究了像点坐标、物方点坐标、控制场大小和摄影距离对交会精度的影响。
通过实验研究得出这几种影响因素对交会精度的影响大小和影响趋势,对于实际工程应用中提高单像空间后方交会精度具有一定的指导意义。
【期刊名称】《无线电工程》【年(卷),期】2015(000)012【总页数】5页(P59-63)【关键词】后方交会;精度;分析;像点坐标【作者】张杰;范生宏;刘昌儒;石磊;管乐鑫【作者单位】北京卫星制造厂,北京100094;清华大学土木工程系地球空间信息研究所,北京100084; 北京普达迪泰科技有限公司,北京100083;国家测绘地理信息局卫星测绘应用中心,北京100830;北京控制工程研究所,北京100190;北京控制工程研究所,北京100190【正文语种】中文【中图分类】TH133;TP183Abstract The single image space resection is a key step in photogrammetry to calculate 3D coordinates,it has a close and complicated mathematical formula,and is susceptible by its internal parameters and external environment.At present,there are more studies on resection solving methods but fewer studies on precision evaluation.This paper studies the factors that influence the resection precision based on single image space resection theory analysis,and designs resection experiments for various situations.The influence of image point coordinates,object space point coordinates,control field size and photogrammetric distance on resection precision is studied indetail.The influence degree and trends of those influence factors on resection precision are obtained from experiments,which has some guiding significance for improving the precision of single image space resection in practical engineering applications.Key words space resection;precision;analysis;image point coordinates单像空间后方交会是摄影测量的基本问题之一,是根据一定数量的控制点及其相应像点坐标解求摄站参数(XS,YS,ZS,ω,φ,κ)的过程,是摄影测量计算三维坐标的关键步骤[1,2]。
空间后方交会的求解就是共线方程线性化平差解算的过程,当前,众多学者对求解方法进行了研究,直接解法、角锥法以及直接线性变换解法[3,4]等都是常用的方法,但在精度评价方面却研究甚少,这主要受制于共线方程的复杂性以及实际情况的不可预测性。
Lumann[5]采用蒙特卡洛方法,使用大量模拟数据分析了后方交会及其相关转换的影响因素,得出了一定的结论,对后方交会精度分析进行了初步探讨,但实际测量情况复杂万变,此分析尚不足完全指导实践。
本文在分析后方交会经典模型的基础上,结合实际测量环境,概括总结了影响后方交会精度的内在因素和外在因素,同时进行了后方交会的测试实验,分析了各种因素对交会精度的影响,并重点阐述了主要因素的影响结果及其规避措施,以期望对实际工程应用有借鉴作用。
空间后方交会是基于单张像片的点位测量,其理想的投影成像模型是几何光学中的小孔成像模型[6],如图1所示。
图1中摄影镜头的光学中心为S(摄影中心),物方控制点P经过S投影到像平面上的像为p′,摄影光轴So与像平面垂直,o称为主点,So间的距离称为主距,记为f。
考虑相机畸变,根据几何透视变换可得共线方程[7,8]:。
式中,Δx,Δy,f 为相机内部参数,在相机标定过程中确定,此为后方交会精度的内在影响因素;XS,YS,ZS,(ai,bi,ci)(i=1,2,3)为摄影成像参数,空间后方交会时确定。
将式(1)微分,列出误差方程式:经过平差,可以得到以上参数的最小二乘解:式中,P为各观测值的权。
根据成像模型及空间交会参数值,可列出物方坐标系与像空间坐标系之间的转换关系:式中,x为像空间坐标;X为物方坐标;R、X′由空间交会参数组成。
根据误差传播定律,像空间坐标的精度与物方点坐标精度及后方交会各参数精度有关,旋转矩阵R为单位矩阵,则误差传播式(5)为:式中,σx为像空间坐标精度;σx为物方点精度;σx′为平移测量精度,由后方交会确定。
摄影距离可由几何方法计算,如图2所示。
图2中,b为物方点基线长度;γ为摄影基线夹角,则摄影距离计算公式为:根据Kahman理论,可得摄影距离h的精度计算公式:可见,在摄影距离一定时,其测量精度随着摄影基线夹角的增大以及物方点基线长度的增加而提高。
根据式(1)和式(2)可见,后方交会的精度不仅与点位测量精度有关,还与点位分布、控制面积、成像夹角等因素有关,此为后方交会精度的外在影响因素,这些参数的精度可通过协方差矩阵[9]衡量为:,式中,r为多余条件数,该方法计算的精度实质是平差以后的内符合精度。
根据以上分析设计了实验进行分析。
实验用相机为Basler生产的型号为scA1390-17gm的相机,CCD分辨率为1 392*1 040,像素尺寸为4.65 μm,配套镜头使用Computar厂家的M0814-MP镜头(f=8 mm,F=1.4),配合光源使用获取标志点图像。
控制场由19个控制点构成,均匀分布在1 000 mm×1 000 mm的平面范围内,如图3所示。
实验前对实验用相机使用十参数模型[9]进行相机内参标定,获取稳定准确的内参数,并使用高精度摄影测量系统对控制场进行测量,控制点测量精度优于0.03 mm,像点中心坐标识别精度为1/30 pixel=0.155 μm。
根据上节分析,像点、物方点误差,控制场区域大小,摄影距离,控制场横向位移,控制场与像平面夹角,控制场点位空间分布,相机内部畸变以及横向速度变化等都是后方交会精度的影响因素,其中前4项较为常见,且影响较大,现具体分析。
实验中Y轴方向为摄影方向,X、Z轴与像平面平行且与摄影方向Y轴垂直。
2.1 像点坐标误差由于像点误差值较小并且精度较高,本项实验误差梯度为0.05 μm,最大误差为1.05 μm。
由图4(a)可以看出,三轴的平移量精度与像点误差存在明显的线性关系,精度随着像点误差的增大而降低,这与共线方程的理论分析一致。
X、Z轴的变化趋势及其精度值相同,与X、Z轴相比,Y轴的精度损失较小,对像点坐标误差敏感性较差。
由图4(b)可知,与平移量的变化趋势相同,旋转角精度也与像点误差的大小存在着明显的线性甚至是二次函数的关系,当像点误差增大时旋转角精度变低,κ的精度明显好于其他2个旋转角。
综上可以得出,像点坐标的误差对后方交会的影响较大,实际使用中应采用高精度的图像点中心识别算法,提高像点坐标测量精度。
假设像点坐标精度达到1/30 pixel,即0.155 μm,没有其他误差,则后方交会的平移量精度可以达到0.35 mm,旋转角精度可以达到0.000 2 rad,具有较高的测量精度。