单像空间后方交会和双像解析空间后方-前方交会的算法程序实现
基于MATLAB的摄影交会测量计算程序设计与开发

产业科技创新 Industrial Technology Innovation78Vol.2 No.17产业科技创新 2020,2(17):78~79Industrial Technology Innovation 基于MATLAB的摄影交会测量计算程序设计与开发袁 龙,曹雅迪(四川省测绘技术服务中心,四川 成都 610036)摘要:交会测量是测量学中一种常用的测量方法,在摄影测量中单张像片空间后方交会是摄影测量基本问题之一,其基本原理是通过地面已知的若干控制点和其在摄影像片上的相应像点坐标,通过计算的方法求解其摄站参数。
本文研究通过使用单像空间后方交会的基于共线条件方程的平差解法,使用安徽省某区域的实验数据,通过matlab软件实现了基于单像空间后方交会的程序设计,计算了其左右像片的收敛情况,结果表明其计算结果的数据精度和收敛情况较好,达到了预期的实验效果。
通过单像空间的后方交会的计算结果,文章进而根据其数据结果在matlab中构建了其空间前方交会的程序设计,求解实验区待定点的地面坐标,通过前方交会坐标变换情况,分析了其结果精度和需要注意的问题。
从总的研究结果来看,单张像片的空间后方交会是前方交会计算的基础,因此,单张像片空间后方交会成为解决这两个问题以及算法程序实现的关键。
关键词:摄影交会;后方交会;前方交会;程序设计中图分类号:U495 文献标识码:A 文章编号:2096-6164(2020)17-0078-02摄影测量是指通过搭载摄影设备,获取地物空间信息的手段完成测量作业,摄影测量的主要任务是通过获取二维的像片点空间坐标得到对应目标的实际三维坐标,完成数据的测量,后期通过数据处理和软件操作,应用到空间物体的三维建模、空间分析和综合制图等领域,有着广泛的社会应用和较高的使用价值。
单像空间后方交会的数据计算从目前来说主要有三种方法:基于共线条件方程的平差解法、基于直接线性变换的解法和角锥法。
单像空间后方交会名词解释

单像空间后方交会名词解释
单像空间后方交会是摄影测量学中的一个重要概念,它是指利用单个影像进行地物测量和定位的方法。
在单像空间后方交会中,通过对单张影像进行分析,可以确定地面上物体的位置和形状。
这个过程涉及到对影像中的特征点进行识别和匹配,然后利用相机内外参数以及影像上的像点坐标来计算地物的三维坐标。
单像空间后方交会的过程包括以下几个步骤,首先是对影像进行预处理,包括去畸变、影像配准等操作;然后是特征点的提取和匹配,这一步是通过计算机视觉算法来实现的,可以利用角点、边缘等特征来进行匹配;接下来是相机内外参数的标定,这一步是为了将像素坐标转换为实际世界坐标而进行的;最后是利用已知的相机参数和像点坐标来计算地物的三维坐标。
单像空间后方交会在航空摄影、遥感影像解译和地图制图等领域有着广泛的应用。
它可以通过对单张影像的处理,实现对地物的测量和定位,为地理信息系统和地图制图提供了重要的数据基础。
同时,随着计算机视觉和图像处理技术的不断发展,单像空间后方交会的精度和效率也在不断提高,为各种应用领域提供了更加可靠和精确的地物信息。
摄影测量复习题

、名词解释1、像片比例尺:把摄影像片当做水平像片,地面取平均高程,这时相片上线段l 与地面上相应线段水平距离 L 之比。
2、绝对航高 :相对于平均海平面的航高,是指摄影物镜在摄影瞬间的真实海拔高度。
3、相对航高:摄影机物镜相对于某一基准面的高度。
4、像点位移:在实际航空摄影时,在中心投影的情况下,当航摄的飞行姿态出现较大倾斜,地面有起伏 时,便会导致地面点在航摄相片上构象相对于在理想情况下的构象,产生位置的差异,这一差异称为像 点位移。
5、摄影基线 :航线方向相邻两个摄影站点间的空间距离。
6、航向重叠:同一条航线内相邻像片之间的影像重叠7、旁向重叠:两相邻航带像片之间也需要有一定的影像重叠,这种重叠影像部分称为旁向重叠度。
8、像片倾角:摄影瞬间摄影机主光轴偏离铅垂线的夹角称为相片倾角。
9、像片的方位元素:确定摄影瞬间摄影物镜(摄影中心)与像片在地面设定的空间坐标系中的位置与姿 态参数,即确定这三者之间相关位置的参数。
10、像片的内方位元素:表示摄影中心与像片之间相互位置的参数。
11、像片的外方位元素:表示摄影中心与像片在地面坐标系中的位置和姿态的参数。
12、相对定向元素:确定一个立体像对两像片的相对位置的元素 。
13、绝对定向元素:描述立体像对在摄影瞬间的绝对位置和姿态的参数。
14、单像空间后方交会:利用影像覆盖范围内一定数量的控制点的空间坐标与影像坐标,根据共线条件 方程,反求该影像的外方位元素,这种方法称单幅影像的空间后方交会。
15、空间前方交会:由立体像对左右两影像的内、外方位元素和同名像点影像坐标量测值来确定相应模 型点坐标(或地面点的地面坐标) ,称立体像对的空间前方交会。
16、双像解析摄影测量:17、空中三角测量:根据航摄像片上所测量的像点坐标以及极少量的地面控制点求出地面加密点的物方 空间坐标。
18、POS :(机载定位定向系统)是基于全球定位系统(GPS )和惯性测量装置(IMU )的直接测定影像外方位元素的现代航空摄影导航系统,可用于在无地面控制或仅有少量地面控制点情况下的航空遥感对 地定位和影像获取。
摄影测量考试复习题说课讲解

摄影测量考试复习题说课讲解摄影测量考试复习题一、名词解释:1、摄影测量学:对研究的对象进行摄影,根据所获得的构象信息,从几何方面和物理方面加以分析研究,从而对所摄对象的本质提供各种资料的一门学科。
2、解析空中三角测量:用计算的方式,根据量测的像点坐标和少量的控制点,采用较严密的数学公式,利用最小二乘原理,在计算机上解求测图所需控制点的平面坐标和高程。
3、数字摄影测量是基于数字影像与摄影测量的基本原理,应用计算计算机技术,数字影像处理,影像匹配,模拟识别等多学科的理论与方法,提取所摄对象,用数字方式表达几何与物理信息的摄影测量学的分支学科。
4、空间前方交会:由立体像对的内、外方位元素和像点坐标来确定相应地面点坐标的方法。
5、单向空间后方交会:利用航片上三个以上的像点坐标及相应的地面控制点坐标计算像片外方位元素的工作。
6、影像匹配:利用两个影像信号相关的函数,评价它们之间的相似性,以确定同名像点的过程。
7、数字影像匹配:用数字计算的方法对立体像对经数字化后所取得的灰度值,通过相关函数,探求左右影像的相似程度,以确定同名像点。
8、像片解析:利用数学分析的方法,研究被摄景物的成像规律,根据像片上的影像与所摄物体之间的数学关系式,从而建立起的像点与物点的坐标关系式。
9、双向解析摄影测量:按照立体像对与被摄物体的几何关系,以数学计算方式,通过计算机解求被摄物体的三维空间坐标的方法。
光束法:用已知的少数控制点以及待求的地面点,在立体像对内同时解求两像片的外方位元素和待定点的坐标,俗称一步定向法。
10、摄影基线:航线方向相邻两个摄站点间的空间距离。
11、相对定向:根据立体像对内在的几何关系恢复两张像片之间的相对位置和姿态,使同名光线对对相交,建立与地面相似的立体模型,即确定一个立体像对两张相片的相对位置。
12、绝对定向:用已知的地面控制点确定相对定向所建立的立体几何模型的比例尺和空间方位。
解析法绝对定向:利用已知的地面控制点,从绝对定向的关系式出发,解求七个绝对定向元素。
摄影测量学空间后方交会实验报告

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

1.什么是摄影测量学,摄影测量发展的三个阶段摄影测量学是对研究的物体进行摄影,测量和解译所获得的影像,获取被摄物体的几何信息和物理信息的一门科学。
三个阶段:模拟、解析、数字摄影测量。
2.根据成图的需要,规定了摄影比例尺后,如何选择航空摄影机与航摄高度?答:采用特宽角航摄机,航高值就小,采用常角或窄角航摄机,航高值就大。
(航高的大小将决定飞机实际升限和最小安全高度的限制,另外,测图的高程测定精度与航高有关(高程中误差与航高成正比))大比例尺单像测图,应选用常角或窄角航摄机,小比例尺立体测图应选用特宽角航摄机。
3.什么是航摄像片的内外方位元素,各有何作用?答:内方位元素包括三个参数,即摄影中心S到像片的垂距(主距)f及像主点o在像框标坐标系中的坐标00,y x,用其来恢复摄影光束。
确定摄影光束在摄影瞬间的空间位置和姿态的参数,称为外方位元素,一张的外方位元素包括六个参数,其中有三个是直线元素,用于描述摄影中心的空问坐标值;另外三个是角元素,用于表达像片面的空间姿态。
4.摄影测量中常用的坐标系有哪些,各有何作用?答:摄影测量中常用的坐标系有两大类。
一类是用于描述像点的位置,称为像方空间坐标系;另——类是用于描述地面点的位置.称为物方空间坐标系。
(1)像方空间坐标系①像平面坐标系像平面坐标系用以表示像点在像平面上的位置,通常采用右手坐标系,xy轴的选择按需要而定.在解析和数字摄影测量中,常根据框标来确定像平面坐标系,称为像框标坐标系。
②像空间坐标系为了便于进行空间坐标的变换,需要建立起描述像点在像空间位置的坐标系,即像空间坐标系。
以摄影中心S为坐标原点,xy,轴与像平面坐标系的xy轴平行,z轴与主光轴重合,形成像空间右手直角坐标系s-xyz③像空间辅助坐标系像点的像空间坐标可直接以像平面坐标求得,但这种坐标的待点是每张像片的像空间坐标系不统一,这给计算带来困难。
为此,需要建立一种相对统一的坐标系.称为像空间辅助坐标系,用s-XYZ表示。
摄影测量实验报告(空间后方交会—前方交会)

空间后方交会—空间前方交会程序编程实验一.实验目的要求掌握运用空间后方交会-空间前方交会求解地面点的空间位置.学会运用空间后方交会的原理,根据所给控制点的地面摄影测量坐标系坐标以及相应的像平面坐标系中的坐标,利用计算机编程语言实现空间后方交会的过程,完成所给像对中两张像片各自的外方位元素的求解。
然后根据空间后方交会所得的两张像片的内外方位元素,利用同名像点在左右像片上的坐标,求解其对应的地面点在摄影测量坐标系中的坐标,并完成精度评定过程,利用计算机编程语言实现此过程.二.仪器用具计算机、编程软件(MATLAB)三.实验数据实验数据包含四个地面控制点(GCP)的地面摄影测量坐标及在左右像片中的像平面坐标。
此四对坐标运用最小二乘法求解左右像片的外方位元素,即完成了空间后方的过程.另外还给出了5对地面点在左右像片中的像平面坐标和左右像片的内方位元素。
实验数据如下:内方位元素:f=152。
000mm,x0=0,y0=0 四.实验框图此过程完成空间后方交会求解像片的外方位元素,其中改正数小于限差(0。
00003,相当于0。
1'的角度值)为止。
在这个过程中采用迭代的方法,是外方位元素逐渐收敛于理论值,每次迭代所得的改正数都应加到上一次的初始值之中。
在空间后方交会中运用的数学模型为共线方程确定Xs,Ys,Zs的初始值时,对于左片可取地面左边两个GCP的坐标的平均值作为左片Xs 和Ys的初始值,取右边两个GCP的坐标平均值作为右片Xs 和Ys的初始值。
Zs可取地面所有GCP的Z坐标的平均值再加上航高.空间前方交会的数学模型为:五.实验源代码function Main_KJQHFJH()global R g1 g2 m G a c b1 b2;m=10000;a=5;c=4;feval(@shuru);%调用shuru()shurujcp()函数完成像点及feval(@shurujcp);%CCP有关数据的输入XYZ=feval(@MQZqianfangjh); %调用MQZqianfangjh()函数完成空间前方、%%%%%% 单位权中误差%%%%%后方交会计算解得外方位元素global V1 V2;%由于以上三个函数定义在外部文件中故需VV=[]; %用feval()完成调用过程for i=1:2*cVV(i)=V1(i);VV(2*i+1)=V2(i);endm0=sqrt(VV*(VV’)/(2*c-6));disp('单位权中误差m0为正负:’);disp(m0); %计算单位权中误差并将其输出显示输入GCP像点坐标及地面摄影测量坐标系坐标的函数和输入所求点像点坐标函数:function shurujcp()global c m;m=input(’摄影比例尺:');%输入GCP像点坐标数据函数并分别将其c=input('GCP的总数=');%存入到不同的矩阵之中disp('GCP左片像框标坐标:');global g1;g1=zeros(c,2);i=1;while i<=cm=input('x=');n=input('y=');g1(i,1)=m;g1(i,2)=n;i=i+1;enddisp('GCP右片像框标坐标:’);global g2;g2=zeros(c,2);i=1;while i〈=cm=input('x=’);n=input('y=’);g2(i,1)=m;g2(i,2)=n;i=i+1;end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function shuru()global a;a=input('计算总像对点数='); %完成想计算所需的像平面坐标global b1;%坐标输入,存入不同的矩阵中b1=zeros(a,2);disp('左片像点坐标:')i=1;while i〈=am=input('x=’);n=input(’y=’);b1(i,1)=m;b1(i,2)=n;i=i+1;end%%global b2;b2=zeros(a,2);disp(’右片像点坐标:')i=1;while i〈=am=input('x=’);n=input('y=’);b2(i,1)=m;b2(i,2)=n;i=i+1;end%%global c;c=input(’GCP的总数=');disp('GCP摄影测量系坐标:’)global G;G=zeros(3,c);i=1;while i〈=cm=input(’X=');n=input(’Y=');v=input(’Z=');G(i,1)=m;G(i,2)=n;G(i,3)=v;i=i+1;end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%空间前方交会和后方交会函数:function XYZ=MQZqianfangjh()global R1 R2 a f b1 b2 Ra Rb;global X1 X2;R1=Ra;R2=Rb;R1=zeros(3,3);R2=zeros(3,3);global g1 g2 G V1 V2 V WF c QXX QXX1 QXX2;xs0=(G(1,1)+G(3,1))/2;ys0=(G(1,2)+G(3,2))/2;[Xs1,Ys1,Zs1,q1,w1,k1 R]=houfangjh(g1,xs0,ys0);%对左片调用后方交会函数R1=R;V1=V;WF1=WF;QXX1=QXX;save '左片外方位元素为。
空间后方—前方交会的原理

空间后方—前方交会的原理空间后方—前方交会是一种导航技术,通过测量目标物体在不同观测点的角度,并利用三角测量原理计算目标物体的位置。
这种技术广泛应用于航空、航天、导航等领域,可以帮助人们准确地确定目标物体的位置和方向。
在空间后方—前方交会中,观测者需要站在不同的位置观测目标物体,并测量目标物体相对于观测点的角度。
观测者需要使用测角仪或其他测量工具来测量角度,并记录下相应的数据。
测量完所有观测点的角度后,观测者需要根据这些角度数据进行三角计算,以确定目标物体的位置。
三角计算是利用三角函数来计算角度和边长的关系,通过已知的角度和边长来计算未知的角度和边长。
观测者需要根据测量得到的角度数据和观测点之间的距离,使用三角函数计算目标物体的位置坐标。
空间后方—前方交会的原理简单明了,但在实际应用中需要考虑一些因素。
首先,观测者需要选择合适的观测点,观测点的位置应尽量避免遮挡物,以确保观测到目标物体的角度准确无误。
其次,观测者需要准确测量角度,并尽量避免误差的产生。
最后,观测者需要进行精确的三角计算,以确保计算出的目标物体位置准确无误。
空间后方—前方交会技术的应用非常广泛。
在航空领域,飞行员可以利用该技术确定飞机的位置和方向,以确保飞行安全。
在航天领域,航天员也可以利用该技术确定航天器的位置和方向,以实现精确的轨道控制。
此外,该技术还可以应用于导航系统中,帮助人们准确导航和定位。
空间后方—前方交会是一种通过测量目标物体在不同观测点的角度,并利用三角计算原理确定目标物体位置的导航技术。
该技术在航空、航天、导航等领域有着广泛的应用,可以帮助人们准确地确定目标物体的位置和方向。
通过合理的观测点选择、准确的角度测量和精确的三角计算,空间后方—前方交会技术可以为人们提供准确可靠的导航和定位服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单像空间后方交会和双像解析空间后方-前方交会的算法程序实现遥感科学与技术摘要:如果已知每张像片的6个外方位元素,就能确定被摄物体与航摄像片的关系。
因此,利用单像空间后方交会的方法,可以迅速的算出每张像片的6个外方位元素。
而前方交会的计算,可以算出像片上点对应于地面点的三维坐标。
基于这两点,利用计算机强大的运算能力,可以代替人脑快速的完成复杂的计算过程。
关键词:后方交会,前方交会,外方位元素,C++编程0.引言:单张像片空间后方交会是摄影测量基本问题之一,是由若干控制点及其相应像点坐标求解摄站参数(X S,Y S,ZS,ψ、ω、κ)。
单像空间后方交会主要有三种方法:基于共线条件方程的平差解法、角锥法、基于直接线性变换的解法。
而本文将介绍第一种方法,基于共线条件方程反求象片的外方位元素。
而空间前方交会先以单张像片为单位进行空间后方交会,分别求出两张像片的外方位元素,再根据待定点的一对像点坐标,用空间前方交会的方法求解待定点的地面坐标。
可以说,这种求解地面点的坐标的方法是以单张像片空间后方交会为基础的,因此,单张像片空间后方交会成为解决这两个问题以及算法程序实现的关键。
1.单像空间后方交会的算法程序实现:(1)空间后方交会的基本原理:对于遥感影像,如何获取像片的外方位元素,一直是摄影测量工作者探讨的问题,其方法有:利用雷达(Radar)、全球定位系统(GPS)、惯性导航系统(I N S)以及星像摄影机来获取像片的外方位元素;也可以利用一定数量的地面控制点,根据共线方程,反求像片的外方位元素,这种方法称为单像空间后方交会(如图1所示)。
图中,地面坐标X i、Yi、Zi和对应的像点坐标x i、yi是已知的,外方位元素XS、Y S、ZS(摄站点坐标),ψ、ω、κ(像片姿态角)是待求的。
(2)空间后方交会数学模型:空间后方交会的数学模型是共线方程, 即中心投影的构像方程:式中X、Y、Z是地面某点在地面摄影测量坐标系中的坐标,x,y是该地面点在像片上的构像点的像片坐标,对于空间后方交会而言它们是已知的,还有主距f是已知的。
而9个方向余弦a 1,a 2,a3;b1,b 2,b 3;c 1,c2,c 3是未知的,具体表达式可以取可见方向余弦是3个独立参数ψ、ω、κ的函数。
共线方程中观测值与未知数之间是非线性函数关系。
为了便于计算机迭代计算, 需把非线性函数表达式用泰勒公式展开成线性形式。
现将共线方程的严密式 ( 1) 按泰勒级数展开取至一次项, 变成线性形式式中,(x)、(y)是函数的近似值;d X S、dY S、d ZS、dψ、dω、dκ是外方位元素的改正数,它们的系数是函数的偏导数。
通过对偏导数解算和推导、整理,得到竖直摄影情况下共线方程的线性化形式,即用共线方程计算外方位元素的实用公式共线方程按泰勒级数展开,取一次小项线性化后,当已知地面点的地面坐标及相应的像点坐标和摄影机主距时,给定外方位元素的近似值后,所有系数均可计算出。
此时,待求的未知数是6个外方位元素,至少需要6个方程。
由于每一对共轭点可列出两个方程,因此,若有3个已知地面坐标控制点,则可列出6个方程,解求6个外方位元素改正数d X S,d YS,d ZS,dψ、dω、dκ。
测量中为了提高精度,常有多余观测方程,应列误差方程式,按最小二乘法原理平差计算。
(3)空间后方交会的计算过程:A.获取已知数据。
B.量测控制点的像点坐标并做系统误差改正。
C.确定未知数的初始值Xs0, Ys0, Zs0, ψ0、ω0、κ0。
D.用三个角元素的初始值计算各方向的余弦值,组成旋转矩阵R。
E.逐点计算像点坐标的近似值。
F.逐点计算误差方程式的系数和常数项,组成误差方程式。
G.计算法方程的系数矩阵和常数项,组成法方程式。
H.解法方程,求得外方位元素的改正数d X S,d YS,d ZS,dψ、dω、dκ。
I.用前次迭代取得的近似值,加本次迭代的改正数,计算外方位元素的新值。
J.将求得的外方位元素的改正数与规定的限差比较,若小于限差,则迭代结束。
否则用新的近似值重复D—I,知道满足要求为止。
(4)空间后方交会的程序框图:(5)单像空间后方交会的算法程序实现:已知条件摄影机主距f=153.24mm,x0=0,y0=0, 像片比例尺为1:40000,有四对点的像点坐标与相应的地面坐标如下表。
点号像点坐标地面坐标x(mm) y(mm) X(m) Y(m) Z(m)1 -86.15 -68.99 36589.41 25273.32 2195.172 -53.40 82.21 37631.08 31324.51 728.693 -14.78 -76.63 39100.97 24934.98 2386.504 10.46 64.43 40426.54 30319.81 757.31以单像空间后方交会方法,求解该像片的外方位元素。
根据(2)、(3)、(4)点设计编辑c++代码并执行,得到该像片的外方位元素如图:2.空间前方交会的算法程序实现:(1)空间前方交会的基本原理:完成了空间后交部分,从而解算出一个像对两张像片各自的外方位元素:X S1,Y S 1,ZS 1,ψ1、ω1、κ1和XS 2,Y S 2,ZS 2,ψ2、ω2、κ2;再根据待定点的一对像点坐标,用空间前方交会方法解求待定点的地面坐标。
(2)空间前方交会数学模型:空间前方交会的计算步骤:由已知的外方位角元素及像点的坐标,根据(a)式计算像空间辅助坐标;⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡f y x R Z Y X 111111,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡f y x R Z Y X 111111(a )由外方位线元素,按(b )式计算摄影基线分量X B ,Y B ,Z B ; ⎪⎭⎪⎬⎫-=-=-=S1S2Z S1S2Y S1S2X Z Z B Y Y B X X B(b )由式1计算投影系数1N ,2N ;⎪⎪⎭⎪⎪⎬⎫--=--=12211121221221Z X Z X X B Z B N Z X Z X X B Z B N Z X Z X (1)由式2计算地面点的地面摄影测量坐标。
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡222222111222222222111111111Z N Y N X N B B B Z Y X Z N Y N X N Z Y X Z N Y N X N Z Y X Z Y X Z Y X S S S S S S S S S A A A (2) 注意:由于1N 和2N 系由式2中的第一、三两式求出,所以由式2计算地面坐标时A Y 应取平均值,即()()[]22S211S1A Y N Y Y N Y 21Y +++=(3)空间前方交会的计算过程利用解求出的外方位元素进行空间前方交会a.用各自像片的角元素计算出左右像片的旋转矩阵R1和R2。
b.根据左右像片的外方位元素计算摄影基线分量Bx,By,Bz 。
c.逐点计算像点的空间辅助坐标。
d.计算投影系数。
e.计算未知点的地面摄影测量坐标。
f.重复以上步骤完成所有点的地面坐标的计算。
(4)空间前方交会的程序框图空间前方交会利用已求得的线元素Xs1,Ys1,Zs1,p0,,w01,k01;Xs2,Ys2,Zs2,p02,w02,k02,计算基线分量: Bx=Xs2-Xs1; By=Ys2-Ys1; Bz=Zs2-Zs1; 利用已求得的角元素计算2张像片各自的旋转矩阵 输入像片坐标,利用旋转矩阵求解想空间辅助坐标 计算点投影系数: N1=(Bx*Z2-Bz*X2)/(X1*Z2-X2*Z1);N2=(Bx*Z1-Bz*X1)/(X1*Z2-X2*Z1);(5)后方交会-前方交会法的算法程序实现:已知条件:根据(2)、(3)、(4)点设计编辑c++代码并执行,得到改地面点坐标如图: 选取点号为15701、15702、15703.15801计算地面摄影测量坐标 Xt=((N1*X1+Xs1)+(N2*X2+Xs2))/2;Yt=((N1*Y1+Ys1)+(N2*Y2+Ys2))/2;Zt=((N1*Z1+Zs1)+(N2*Z2+Zs2)) /2 ;结束程序3.结论单像空间后方交会和双像解析空间后方-前方交会的算法程序可以代替人脑快速的完成复杂的计算过程,为我们的测量工作节约大量的时间。
如何利用好强大的计算机网络编程技术,仍是摄影测量工作中需要重点关注的问题,也是我们在日常学习中需要多加留意积累观察的问题。
4.心得体会从编写思路及步骤,然后是梳理框架,要用到的子函数,子函数参数,怎么编写,有不懂的东西网上参考资料;这其中,中国知网对我的帮助很大,我在网站上搜索了许多相关的论文及资料,对我的程序的编写以及科技论文的编写有很大的帮助。
再是自己动手编程,发现编程要求很细腻,出不得一点差错,程序编写出来后,有很多的错误,要求逐一进行改正,修改;最后才得以运行。
通过本次实验,我深刻理解了单片空间后方交会以及双像解析空间后方-前方交会原理,进一步熟悉理解了C语言编程,认识到了时间的搭配的重要性和参考资料的必要性,当遇到难题是要迎难而上,达到突破,当完成是能感到一丝丝欣慰和成就感。
5.参考文献[1]《C + + 编程计算像片外方位元素及多个用途》莫志恒方子岩张震《铁道勘察》2008年第4期[2]《空间前方交会法及其在测试技术中的应用》龙华伟《测量与校准》2009年第9期[3]空间前方交会中的系统误差处理付子傲《解放军测绘学院学报》1992年第1期。