摄影测量解析基础后方交会 前方交会
摄影测量程序汇总(后方交会+前方交会+单模型光束法平差)
程序运行环境为Visual Studio2010.运行前请先将坐标数据放在debug下。
1.单像空间后方交会原始数据:C语言程序:#include <stdio.h>#include <math.h>#include <iostream>double *readdata();void savedata(int hang,double *data,double *xishuarray,double *faxishu,double *l,int i,double xs,double ys,double zs,double fai,double oumiga,double kapa);void transpose(double *m1,double *m2,int m,int n);void inverse(double *a,int n);void multi(double *mat1,double * mat2,double * result,int a,int b,int c); void inverse(double *a,int n)/*正定矩阵求逆*/{int i,j,k;for(k=0;k<n;k++){for(i=0;i<n;i++){if(i!=k)*(a+i*n+k)=-*(a+i*n+k)/(*(a+k*n+k));}*(a+k*n+k)=1/(*(a+k*n+k));for(i=0;i<n;i++){if(i!=k){for(j=0;j<n;j++){if(j!=k)*(a+i*n+j)+=*(a+k*n+j)* *(a+i*n+k);}}}for(j=0;j<n;j++){if(j!=k)*(a+k*n+j)*=*(a+k*n+k);}}}void transpose(double *m1,double *m2,int m,int n) //矩阵转置{ int i,j;for(i=0;i<m;i++)for(j=0;j<n;j++)m2[j*m+i]=m1[i*n+j];return;}void multi(double *mat1,double *mat2,double * result,int a,int b,int c) { int i,j,k;for(i=0;i<a;i++){for(j=0;j<c;j++){result[i*c+j]=0;for(k=0;k<b;k++)result[i*c+j]+=mat1[i*b+k]*mat2[k*c+j];}}return;}double *readdata()FILE *fp;int i,j;int number;char datacatolog[100];//scanf("%s",datacatolog);if ((fp=fopen("控制点坐标.txt","r"))==NULL) {printf("读取数据出错!\n");return false;}fscanf(fp,"%d",&number);double *cordata=new double[number*5];for (i=0;i<number;i++){for (j=0;j<5;j++){fscanf(fp,"%lf",cordata+i*5+j);}}printf("控制点坐标数据读取成功!\n");return cordata;void savedata(int hang,double *data,double *xishuarray,double *faxishu,double *l,int i,double xs,double ys,double zs,double fai,double oumiga,double kapa){FILE *fp;char *file1="结算数据.txt";fp=fopen(file1,"w");fprintf(fp,"---------原始坐标数据为--------:\n");for (int i=0;i<hang;i++){for (int j=0;j<5;j++){fprintf(fp,"%7.4lf ",data[i*5+j]);}fprintf(fp,"\n");}fprintf(fp,"--------------------------------\n");fprintf(fp,"---------误差方程系数阵为:--------:\n");for (int i=0;i<hang*2;i++){for (int j=0;j<6;j++){fprintf(fp,"%7.4lf ",xishuarray[i*5+j]);}fprintf(fp,"\n");}fprintf(fp,"--------------------------------\n"); fprintf(fp,"---------法方程系数阵为:--------:\n"); for (int i=0;i<6;i++){for (int j=0;j<6;j++){fprintf(fp,"%7.5lf ",faxishu[i*5+j]);}fprintf(fp,"\n");}fprintf(fp,"--------------------------------\n"); fprintf(fp,"---------误差方程常数项为:--------:\n"); for (int i=0;i<hang*2;i++){fprintf(fp,"%lf ",l[i]);fprintf(fp,"\n");}fprintf(fp,"--------------------------------\n");fprintf(fp,"---------迭代次数为:--------:\n");fprintf(fp,"%d\n",i);fprintf(fp,"--------------------------------\n");fprintf(fp,"-----------外方位元素为:---------\n");fprintf(fp," Xs= %lf, Ys=%lf, Zs=%lf\n",xs,ys,zs);fprintf(fp," fai= %lf, oumiga=%lf, kapa=%lf\n",fai,oumiga,kapa);fprintf(fp,"--------------------------------\n");fclose(fp);return;}void main(){int i,j;int ii,jj;int diedainumber=0;double x0=0.0,y0=0.0,f=0.0;double m=50000; //估算比例尺double fai=0,oumiga=0,kapa=0,Xs=0,Ys=0,Zs=0;double R[3][3]={0.0};double X=0.0,Y=0.0,Z=0.0,L[8][1]={0.0},A[8][6]={0.0};doublecorrect[6][1]={0.0},AT[6][8]={0.0},ATA[6][6]={0.0},ATL[6][1]={0.0};int row; //row用于存放坐标行数double *controlpoint;controlpoint=readdata();row=sizeof(controlpoint);for (i=0;i<row;i++){for (j=0;j<5;j++){printf("%3.3lf ",controlpoint[i*5+j]);}printf("\n");}/*----------内方位元素----------*/printf("请输入像片的内方位元素(mm):\n");printf("x0=");x0/=1000.0;scanf("%lf",&x0); //double类型数据要用%lfprintf("y0=");y0/=1000.0;scanf("%lf",&y0);printf("f=");scanf("%lf",&f);f=f/1000.0;/*------------------------------*///-------确定未知数初始值------for(int i=0;i<row;i++){Xs=Xs+controlpoint[i*5+2];Ys=Ys+controlpoint[i*5+3];Zs=Zs+controlpoint[i*5+4];}Xs/=row;Ys/=row;Zs=Zs/row+m*f;//-----------------------------do{diedainumber++;//---------组成旋转矩阵--------R[0][0]=cos(fai)*cos(kapa)-sin(fai)*sin(oumiga)*sin(kapa);R[0][1]=-cos(fai)*sin(kapa)-sin(fai)*sin(oumiga)*cos(kapa);R[0][2]=-sin(fai)*cos(oumiga);R[1][0]=cos(oumiga)*sin(kapa);R[1][1]=cos(oumiga)*cos(kapa);R[1][2]=-sin(oumiga);R[2][0]=sin(fai)*cos(kapa)+cos(fai)*sin(oumiga)*sin(kapa);R[2][1]=-sin(fai)*sin(kapa)+cos(fai)*sin(oumiga)*cos(kapa);R[2][2]=cos(fai)*cos(oumiga);//-----------------------------//计算系数阵和常数项for(int i=0,k=0,j=0;i<=3;i++,k++,j++){X=R[0][0]*(controlpoint[i*5+2]-Xs)+R[1][0]*(controlpoint[i*5+3]-Y s)+R[2][0]*(controlpoint[i*5+4]-Zs);Y=R[0][1]*(controlpoint[i*5+2]-Xs)+R[1][1]*(controlpoint[i*5+3]-Y s)+R[2][1]*(controlpoint[i*5+4]-Zs);Z=R[0][2]*(controlpoint[i*5+2]-Xs)+R[1][2]*(controlpoint[i*5+3]-Y s)+R[2][2]*(controlpoint[i*5+4]-Zs);L[j][0]=controlpoint[i*5+0]-(x0-f*X/Z);L[j+1][0]=controlpoint[i*5+1]-(y0-f*Y/Z);j++;A[k][0]=(R[0][0]*f+R[0][2]*(controlpoint[i*5+0]-x0))/Z;A[k][1]=(R[1][0]*f+R[1][2]*(controlpoint[i*5+0]-x0))/Z;A[k][2]=(R[2][0]*f+R[2][2]*(controlpoint[i*5+0]-x0))/Z;A[k][3]=(controlpoint[i*5+1]-y0)*sin(oumiga)-((controlpoint[i*5+0 ]-x0)*((controlpoint[i*5+0]-x0)*cos(kapa)-(controlpoint[i*5+1]-y0)*si n(kapa))/f+f*cos(kapa))*cos(oumiga);A[k][4]=-f*sin(kapa)-(controlpoint[i*5+0]-x0)*((controlpoint[i*5+ 0]-x0)*sin(kapa)+(controlpoint[i*5+1]-y0)*cos(kapa))/f;A[k][5]=controlpoint[i*5+1]-y0;A[k+1][0]=(R[0][1]*f+R[0][2]*(controlpoint[i*5+1]-y0))/Z;A[k+1][1]=(R[1][1]*f+R[1][2]*(controlpoint[i*5+1]-y0))/Z;A[k+1][2]=(R[2][1]*f+R[2][2]*(controlpoint[i*5+1]-y0))/Z;A[k+1][3]=-(controlpoint[i*5+0]-x0)*sin(oumiga)-((controlpoint[i* 5+1]-y0)*((controlpoint[i*5+0]-x0)*cos(kapa)-(controlpoint[i*5+1]-y0) *sin(kapa))/f-f*sin(kapa))*cos(oumiga);A[k+1][4]=-f*cos(kapa)-(controlpoint[i*5+1]-y0)*((controlpoint[i* 5+0]-x0)*sin(kapa)+(controlpoint[i*5+1]-y0)*cos(kapa))/f;A[k+1][5]=-(controlpoint[i*5+0]-x0);k++;}transpose(A[0],AT[0],8,6);multi(AT[0],A[0],ATA[0],6,8,6);inverse(ATA[0],6);multi(AT[0],L[0],ATL[0],6,8,1);multi(ATA[0],ATL[0],correct[0],6,6,1);Xs=Xs+correct[0][0];Ys=Ys+correct[1][0];Zs=Zs+correct[2][0];fai=fai+correct[3][0];oumiga=oumiga+correct[4][0];kapa=kapa+correct[5][0];}while(correct[3][0]>=6.0/206265.0||correct[4][0]>=6.0/206265.0||c orrect[5][0]>=6.0/206265.0);printf("迭代次数为:%d\n",diedainumber);printf("---------误差方程系数为:--------\n");for (i=0;i<8;i++){for (j=0;j<6;j++){printf("%4.4lf ",A[i][j]);}printf("\n");}printf("--------------------------------\n");printf("求解得到的外方位元素为:\n");printf(" Xs= %lf\n",Xs);printf(" Ys= %lf\n",Ys);printf(" Zs= %lf\n",Zs);printf(" fai= %lf\n",fai);printf(" oumiga= %lf\n",oumiga);printf(" kapa= %lf\n",kapa);savedata(row,controlpoint,A[0],ATA[0],L[0],diedainumber,Xs,Ys,Zs, fai,oumiga,kapa);printf("-----------------解算结束!--------------\n");system("pause");}解算结果:2.后方交会-前方交会求解地面点坐标已知左右像片外方位元素,给出像点坐标:左像点坐标:右像点坐标:x(/m)y(/m)x(/m)y(/m)0.0053 0.0069 0.00482 0.0027C语言代码:#include <stdio.h>#include <iostream>#include <math.h>double *readdata();void savedata(int hang,double *data);double *readdata(){FILE *fp;int i,j,k;int number;char datacatolog[100];char leftdata[300];//scanf("%s",datacatolog);if ((fp=fopen("像点坐标数据.txt","r"))==NULL) {printf("读取数据出错!\n");system("pause");exit(0);}fscanf(fp,"%d",&number);double *c=new double[number*4];for (k=0;k<2;k++){fread(&leftdata,14,1,fp);for (i=0;i<number;i++){for (j=0;j<2;j++){fscanf(fp,"%lf",c+k*2+i*4+j);}}}fclose(fp);return c;}void savedata(int hang,double *data){FILE *fp;char *file1="地面点坐标数据.txt";fp=fopen(file1,"w");fprintf(fp,"---------像点对应地面点坐标为--------:\n");fprintf(fp,"\n");for (int i=0;i<hang;i++){fprintf(fp,"第%d点: ",i+1);for (int j=0;j<3;j++){fprintf(fp,"%7.4lf ",data[i*3+j]);}fprintf(fp,"\n\n");}fprintf(fp,"-----------------------------------------");fclose(fp);return;}void main(){double *imagepoint;int row;int i,j;imagepoint=readdata();row=sizeof(imagepoint);//--------------------------------------------double f=24;f/=1000;doublefai1=-0.0061,oumiga1=0.0327,kapa1=0.1711,Ys1=397367.171,Xs1=3445820.098,Zs1=148 6.212;doublefai2=0.0063,oumiga2=0.0178,kapa2=0.1489,Ys2=397367.234,Xs2=3445959.266,Zs2=1490 .096;// printf("请输入左像片的外方位元素:\n");//printf("Xs1= ");//scanf("%lf",&Xs1);//printf("Ys1= ");//scanf("%lf",&Ys1);//printf("Zs1= ");//scanf("%lf",&Zs1);//printf("fai1= ");//scanf("%lf",&fai1);//printf("oumiga1= ");//scanf("%lf",&oumiga1);//printf("kapa1= ");//scanf("%lf",&kapa1);//printf("请输入右像片的外方位元素:\n");//printf("Xs2= ");//scanf("%lf",&Xs2);//printf("Ys2= ");//scanf("%lf",&Ys2);//printf("Zs2= ");//scanf("%lf",&Zs2);//printf("fai2= ");//scanf("%lf",&fai2);//printf("oumiga2= ");//scanf("%lf",&oumiga2);//printf("kapa2= ");//scanf("%lf",&kapa2);double Bx=Xs2-Xs1,By=Ys2-Ys1,Bz=Zs2-Zs1;double N1=0,N2=0;double X1=0,Y1=0,Z1=0,X2=0,Y2=0,Z2=0;double R1[3][3]={0.0};double R2[3][3]={0.0};double GEOdata[4][3]={0.0};for (i=0;i<row;i++){//---------组成左影像旋转矩阵--------R1[0][0]=cos(fai1)*cos(kapa1)-sin(fai1)*sin(oumiga1)*sin(kapa1);R1[0][1]=-cos(fai1)*sin(kapa1)-sin(fai1)*sin(oumiga1)*cos(kapa1);R1[0][2]=-sin(fai1)*cos(oumiga1);R1[1][0]=cos(oumiga1)*sin(kapa1);R1[1][1]=cos(oumiga1)*cos(kapa1);R1[1][2]=-sin(oumiga1);R1[2][0]=sin(fai1)*cos(kapa1)+cos(fai1)*sin(oumiga1)*sin(kapa1);R1[2][1]=-sin(fai1)*sin(kapa1)+cos(fai1)*sin(oumiga1)*cos(kapa1);R1[2][2]=cos(fai1)*cos(oumiga1);//-----------------------------------//---------组成右影像旋转矩阵--------R2[0][0]=cos(fai2)*cos(kapa2)-sin(fai2)*sin(oumiga2)*sin(kapa2);R2[0][1]=-cos(fai2)*sin(kapa2)-sin(fai2)*sin(oumiga2)*cos(kapa2);R2[0][2]=-sin(fai2)*cos(oumiga2);R2[1][0]=cos(oumiga2)*sin(kapa2);R2[1][1]=cos(oumiga2)*cos(kapa2);R2[1][2]=-sin(oumiga2);R2[2][0]=sin(fai2)*cos(kapa2)+cos(fai2)*sin(oumiga2)*sin(kapa2);R2[2][1]=-sin(fai2)*sin(kapa2)+cos(fai2)*sin(oumiga2)*cos(kapa2);R2[2][2]=cos(fai2)*cos(oumiga2);//-------------像空辅系坐标-------------X1=R1[0][0]*imagepoint[i*4+0]+R1[0][1]*imagepoint[i*4+1]-R1[0][2]*f;Y1=R1[1][0]*imagepoint[i*4+0]+R1[1][1]*imagepoint[i*4+1]-R1[1][2]*f;Z1=R1[2][0]*imagepoint[i*4+0]+R1[2][1]*imagepoint[i*4+1]-R1[2][2]*f;X2=R2[0][0]*imagepoint[i*4+2]+R2[0][1]*imagepoint[i*4+3]-R2[0][2]*f;Y2=R2[1][0]*imagepoint[i*4+2]+R2[1][1]*imagepoint[i*4+3]-R2[1][2]*f;Z2=R2[2][0]*imagepoint[i*4+2]+R2[2][1]*imagepoint[i*4+3]-R2[2][2]*f;//--------------------------------------//------------点投影系数-------------N1=(Bx*Z2-Bz*X2)/(X1*Z2-Z1*X2);N2=(Bx*Z1-Bz*X1)/(X1*Z2-Z1*X2);//-----------------------------------//------------计算地面点坐标------------GEOdata[i][0]=Xs1+N1*X1;GEOdata[i][1]=Ys1+By+N2*Y2;GEOdata[i][2]=Zs1+N1*Z1;//--------------------------------------}//--------------------------------------------for (i=0;i<4;i++){printf("第%d个地面点坐标: ",i+1);for (j=0;j<3;j++){printf("%lf ",GEOdata[i][j]);}printf("\n\n");}savedata(row,GEOdata[0]);system("pause");}测试结果:3.单模型光束法严密平差缺少已知数据进行验证,因此如果有已知数据请代入已知数据进行验证。
摄影测量 5.26
一、名词解释(4分每题,共20分)1、框标设置在摄影机焦平面(承影面)上位置固定的光学机械标志,用于在焦平面上(亦即像片上)建立像方坐标系。
2摄影航高以摄区内的平均高程面作为摄影基准面,摄影机的物镜中心至该面的距离。
1、数字摄影测量是以数字影像为基础,用计算机进行分析和处理,确定被摄物体的形状、大小、空间位置及性质的技术。
2、合面:过投影中心作一水平面平行于地面,这一个平面称为真水平面,也叫合面;核面:摄影基线与地面点所作平面。
3、摄影测量与非摄影测量观测值的联合平差指的是在摄影测量平差中使用了更一般的原始的非摄影测量观测值或条件。
4、有限元法把地面分成适当大小的有限单元,在单元内,用一个简单的函数来描述所求的曲面,并保证相邻单元之间有连续(或光滑)的过渡,这种内插方法称为有限元法。
5、数字微分纠正或数字纠正根据有关的参数与数字地面模型,利用相应的构像方程式,或按一定的数学模型用控制点解算,从原始非正摄投影的数字影像获取正射影像,这种过程是将影像化为很多微小的区域逐一进行纠正,且使用的是数字方式处理,1、相对定向:确定一个立体像对的相对位置称为相对定向。
2、核线:核面与像片面的交线称为核线,对于同一核面的左右像片的核线,称为同名核线。
3、数字高程模型:若地面点按一定格网形式排列,点的平面坐标X、Y可由起始原点推算而无需记录,地面形态只用点的高程Z来表达,这种数据列阵称为数字高程模型(DEM)4、立体像对:在两摄站点对同一地面景物摄取有一定影像重叠的两张像片5、前方交会:由立体像对中两张像片的内、外方位元素和像点坐标来确定相应地面点在物方空间坐标系中坐标的方法1.摄影测量学:摄影测量是从非接触成像系统,通过记录、量测、分析与表达等处理,获取地球及其环境和其他物体的几何、属性等可靠信息工艺、科学与技术。
2.空间前方交会:通过立体像对像点坐标和提供的像片的内、外方位元素求地面控制点在摄影测量坐标系中的坐标。
武大《摄影测量》课件-第15讲空间前方交会
总结
总结本课程的重点内容和学习 收获,鼓励学习者进一步探索 和深入学习。
参考文献
- 相关文献的介绍和推荐
结束语
- 学习体会 - 空间前方交会中的定位方程,展示如何确定物 点在空间中的位置。
后方交会结果的计算
详细说明如何计算后方交会的结果,以获取精确的 物点位置。
空间前方交会的误差理论
1
后方交会误差计算
介绍后方交会误差的计算方法,帮助理解空
空间前方交会误差影响因素分析
2
间前方交会中的误差来源。
分析影响空间前方交会精度的因素,包括测
量仪器、测量方法等。
3
空间前方交会精度分析
测量空间前方交会的精度,评估定位结果的 可信度和可靠性。
空间前方交会实例分析
实例说明
通过实例解释空间前方交会的具体 应用和意义。
数据处理过程
详细描述数据处理的步骤和方法, 确保精确的测量结果。
结果分析
对测量结果进行分析和解读,探讨 应用中的可能问题和解决方案。
常见问题及解答
1 空间前方交会常见误差及解决措施
介绍常见的误差类型和对应的纠正措施,确保测量结果的准确性。
2 常见问题解答
回答学生和从业人员常问的问题,提供解答和建议。
总结
空间前方交会的应用前景
探究空间前方交会在测绘、地 理信息等领域的应用前景。
空间前方交会的发展趋势
展望空间前方交会在技术和方 法上的发展趋势,预测未来的 发展方向。
武大《摄影测量》课件-第15讲空间前 方交会
# 武大《摄影测量》课件-第15讲空间前方交会 ## 一、前言 - 空间前方交会的概念 - 空间前方交会的应用
空间前方交会基本原理
摄影测量学基础第5章 双像解析立体测量
三、空间后方交会的具体计算过程
(1) 获取原始数据。从摄影资料中查取平均航高与摄影机主距;从外业 测量成果中获取地面控制点的地面测量,或转换为地面摄影测量坐标。
(2)用像点坐标量测仪器量测像点坐标。
(3)确定未知数的初始值:在竖直摄影情况下,三个角元素的初始值取
为: 0
三个直线元素取为:
两像点的像空间坐标分为 (x1,y1,-f)和(x2,y2,-f),地 面点A在两像空辅坐标系 中的坐标分别为 (U1,V1,W1)和(U2,V2,W2)。 摄影基线B在地面坐标系中的分量得:Bx=Xs2-Xs1, BY=Ys2-Ys1,Bz=Zs2-Zs1。
由相似三角形可知
N S1A
X AXS1
4.空间前方交会计算未知点的空间坐标(利用 3得到的数据计算投影系数N,得到各点的地 面坐标。)
§5.4 解析相对定向和模型的绝对定向
通过后方交会-前方交会原理,可由像点坐标求得 地物点的摄影测量坐标,这是摄影测量解求地面坐 标的第一套方法。摄影测量的第二套方法是通过像 对的相对定向-绝对定向来实现的。
对左右影像上的一对同名点,按上式可列4个方程, 可按最小二乘法解求地面点的3个未知数。
若n幅影像中含有同一空间点,则可列2n个线性方 程解求3个未知数。这是一种严格的、不受影像数 约束的空间前方交会。
§5.3 空间后-前方交会求解地面点位置
1.野外像片控制测量(4角控制点的地面坐标)
2.像点坐标量测(立体坐标量测仪,量出左右 像片同名像点的坐标) 3.空间后方交会计算像片的外方位元素(12个 外方位元素,用计算机编程实现)
U x
V
R
y
W f
N1U1 BX N2U 2
N1V1
摄影测量-空间前交、后交【精选文档】
空间后交—前交程序设计(实验报告)姓名:班级:学号:时间:空间后交-前交程序设计一、实验目的用 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;%%%%%权的矢量化,这是等精度时的,如果非,将函数参数改为PP=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。
摄影测量的基本原理和空间数据处理
摄影测量的基本原理和空间数据处理摄影测量是利用摄影机和相关的测量技术,通过对物体在投影面上的影像进行分析和解译,来获取和处理地理空间信息的一种方法。
它可以进行地形测量、建筑物测量、城市规划、资源调查等工作。
本文将介绍摄影测量的基本原理以及空间数据的处理方法。
摄影测量的基本原理摄影测量的基本原理可以概括为相对定向和绝对定向。
相对定向是指通过测量不同相机位置下的影像,以及相机姿态参数的测量,来确定影像间的几何关系。
常用的相对定向方法有前方交会和后方交会。
前方交会是利用物点在不同影像上的像点坐标和相机的内部参数,通过解析几何学的方法来确定物点的三维坐标。
这一方法的关键是准确测量影像上物点的像点坐标。
一般来说,需要使用特制的测量工具,如空间立体仪或者摄影测量仪。
当然,现在也有一些基于计算机视觉的影像匹配算法,可以通过对影像上的特征点进行匹配来进行前方交会,但是这种方法还非常依赖于影像的质量和特征点的提取质量。
后方交会是指通过已知的物点的三维坐标,以及物点在不同影像上的像点坐标,来确定相机的姿态参数。
这一方法的关键是要准确计算影像上物点的像点坐标,而且要有足够多的已知的物点坐标。
在实践中,一般先进行前方交会,再进行后方交会,以提高定向的精度。
绝对定向是指将影像与地理坐标系统进行关联。
在绝对定向中,需要确定相机的外部定位元素(比如相机在地面上的位置和姿态),以及相对于地面的比例尺。
常用的绝对定向方法有三点法和复合导航法。
三点法是利用已知地理坐标的三个点在影像上的像点坐标,通过解析几何学和调整算法,来确定相机的外部定位元素和比例尺。
这一方法的关键是提供足够多的已知地理坐标的点来进行计算,而且这些点要在影像上有很好的识别性。
在实际操作中,可以通过GPS或者全站仪等测量设备获取地理坐标。
复合导航法是指将GPS和惯性导航等多个传感器的测量结果融合在一起,来估计相机的姿态和轨迹。
这一方法的关键是要进行多源数据的协调和融合,以及精确的观测模型和数据处理方法。
摄影测量学3-3
要将空中摄站及影像放到整个的加密网中,起到 点的传递和构网作用,故被称为空中三角测量。
目的:用摄影测量解析法确定区域内所有影像的外方位元素。
摄影测 量 加密
一、 空中三角测量意义:
(1)不需直接触及被量测的目标或物体.凡是在影像上可 以看到的目标,不受地面通视条件限制,均可以测定其位 臵和几何形状; (2)可以快速地在大范围内同时进行点位测定,从而可节 省大量的野外测量工作; (3)摄影测量平差计算时,加密区域内部精度均匀,且很 少受区域大小的影响;
4个平高控制点:4 4 16
n 各待求点:
4 n 4n
3n 12 未知数的个数:
两张像片的外方位元素:
t1
t2
多余观测数: 6 n
n
2 6 12 各待求点: 3 n 3n
3.9光束法双像解析摄影测量
按未知数的类型将误差方程式写成矩阵形式:
V1 A1 V 0 2 0 A2 t1 B1 l1 t 2 B2 l 2 X
• 要点: 1) 空间后方交会-空间前方交会:由于空间后方交会至少需要3 个平高控制点,通常采用4 个平高控制点,按最小二乘平差 方法解算单张像片6 个外方位元素。故该方法不适合; 2) 相对定向-绝对定向:相对定向完成后,绝对定向通常采用3
个平高控制点按最小二乘平差方法解算7 个绝对定向元素。
上述问题中,控制点数量不足以解决该绝对定向问题。故该 方法不适合; • 3) 光束法:上述问题中,2 个平高控制点和1 个高程控制点 可以确定平差的基准,多余观测个数r=(2×6×2)(6×2+3×3)=3>0,故可用该方法解决上述问题。
N12 ) X (u2 N N
摄影测量学基础试题1
一、名词解释1摄影测量学 2航向重叠3单像空间后方交会 4相对航高5解析空中三角测量 6外方位元素7核面 8绝对定向元素二、问答题1.写出中心投影的共线方程式并说明式中各参数的含义。
2.指出采用“后方交会+前方交会”和“相对定向+绝对定向”两种方法计算地面点坐标的基本步骤。
3.简述利用光束法(一步定向法)求解物点坐标的基本思想。
4.简述解析绝对定向的基本过程。
5.简述相对定向的基本过程。
6.试述航带网法解析空中三角测量的基本步骤。
二、填空1摄影测量的基本问题,就是将_________转换为__________。
2人眼产生天然立体视觉的原因是由于_________的存在。
3相对定向完成的标志是__________。
三、简答题1两种常用的相对定向元素系统的特点及相对定向元素。
2倾斜位移的特性。
3单航带法相对定向后,为何要进行比例尺归化?怎样进行?4独立模型法区域网平差基本思想。
5何谓正形变换?有何特点?四、论述题1空间后方交会的计算步骤。
2有三条航线,每条航线六张像片组成一个区域,采用光束法区域网平差。
(1)写出整体平差的误差方程式的一般式。
(2)将像片进行合理编号,并计算带宽,内存容量。
(3)请画出改化法方程系数阵结构简图。
参考答案:一、1是对研究的对象进行摄影,根据所获得的构想信息,从几何方面和物理方面加以分析研究,从而对所摄影的对象本质提供各种资料的一门学科。
2供测图用的航测相片沿飞行方向上相邻像片的重叠。
3知道像片的内方位元素,以及三个地面点坐标和量测出的相应像点的坐标,就可以根据共线方程求出六个外方位元素的方法。
4摄影瞬间航摄飞机相对于某一索取基准面的高度。
5将中心投影转换成正射投影时,经过投影变换来消除相片倾斜所引起的像点位移,使它相当于水平相片的构象,并符合所规定的比例尺的变换过程。
6是将建立的投影光束,单元模型或航带模型以及区域模型的数字模型,根据少数地面控制点,按最小二乘法原理进行平差计算,并求加密点地面坐标的方法。
摄影测量学 空间前方后方交会
地球科学与环境工程学院实验报告书一实习任务在LPS中采集4个控制点及两个检查点的像平面坐标及其对应物方坐标;编写空间后方前方交会的程序,利用该程序计算出相片的外方位元素,并且利用内外方位元素解算出两个检查点的物方坐标,并与LPS工作站上的对应坐标相比较。
二实验原理前方交会数学模型及公式后方交会数学模型,公式计算时使用迭代计算附源代码三实验思路及步骤利用后方交会得出两张像片各自的外方位元素1)获取已知数据:从摄影资料中插曲像片比例尺、平均航高、内方位元素以及控制点的地面摄影测量坐标及对应的像点坐标。
2)确定未知数的初始值:在竖直摄影的情况下,胶原素的初始值为0,线元素其中Zs=m*f+∑Z 41,Xs=∑X 41,Ys=∑Z 41。
3) 计算旋转矩阵R 。
4) 逐点计算像点坐标的近似值:利用共线方程。
5) 组成误差方程并法化。
6) 解求外方位元素。
7) 检查计算是否收敛。
利用解求出的外方位元素进行前方交会1) 用各自像片的角元素计算出左右像片的旋转矩阵R1和R2。
2) 根据左右像片的外方位元素计算摄影基线分量Bx,By ,Bz 。
3) 逐点计算像点的空间辅助坐标。
4) 计算投影系数。
5) 计算未知点的地面摄影测量坐标。
6) 重复以上步骤完成所有点的地面坐标的计算。
四 程序框图后方交会程序框图五计算成果由四个地面控制点求出相片外方位元素的解航向倾角:-0.00398694旁向倾角:0.00211388相片旋角:-0.067578两检查点物方坐标分别为:2001 160.561 2127.272 2002 2031.232 2185.930Point ID rX rY rZ2001 -0.8600 -2.8281 1683.90242002 1.4830 -0.0987 2.31812001 670969.5900 114812.4019 1883.9024 22002 671410.2130 123166.4213 1986.0801 2误差:2001 +0.000231 -0.000729 +0.0010822002 -0.000196 -0.000238 +0.000374六心得体会通过本次实习,对于LPS有了更深的了解,操作上也更加熟练,同时在翻译操作手册的工程中,对本专业设计到的某些词汇有了初步的掌握在编写后方交会的程序过程中,对空间后方-前方交会的算法认识的更加深刻,对迭代计算的步骤也更加熟悉。
5摄影测量解析基础(后方交会+前方交会)
内定向通常采用多项式变换公式。假设框标在以像主点为原点的像平
面坐标系中的理论坐标为(x,y),在量测坐标系(框标坐标系、扫描 坐标系)的量测坐标为(I,J),则常用的多项式变换公式有:
线性正形变换公式
x a0 a1 I a2 J y b0 b1 I b2 J
仿射变形公式
x f
a10 X X S 0 b10 Y YS 0 c10 Z Z S 0
0 0 Z Z S 0 a0 X X b Y Y c S 0 S 0 3 3 3 0 0 Z Z S 0 a0 X X b Y Y c S0 S0 2 2 2 0 0 Z Z S 0 a0 X X b Y Y c S 0 S 0 3 3 3
•
已知值 影像的内方位元素x0,y0,f 和 m(像片摄影比例尺的分母)
以及物点坐标(X,Y,Z)
•
• •
观测值 像点坐标 x,y(观测值)
未知数 像片的外方位元素XS,YS,ZS,,, 泰勒级数展开
泰勒级数展开的概念:
Z f X1, X 2 ,, X n
设X有近似值X0 则按泰勒公式在点
误差方程的矩阵形式:
v1 1 v 2 1 v 3 0 v 4 0 v 5 0 0 0 1 0 1 0 1 1 0 1 0 dX B 23 dX C 0 dX D 14 0 0 0 0 2.9 0 0 3.7 0 0 0 Pi 10 / S i 0 0 2.5 0 0 0 0 0 3 . 3 0 0 0 0 4.0 0
摄影测量学基础试题 (2)
一、名词解释1摄影测量学 2航向重叠3单像空间后方交会 4相对航高5解析空中三角测量 6外方位元素7核面 8绝对定向元素二、问答题1.写出中心投影的共线方程式并说明式中各参数的含义。
2.指出采用“后方交会+前方交会”和“相对定向+绝对定向”两种方法计算地面点坐标的基本步骤。
3.简述利用光束法(一步定向法)求解物点坐标的基本思想。
4.简述解析绝对定向的基本过程。
5.简述相对定向的基本过程。
6.试述航带网法解析空中三角测量的基本步骤。
二、填空1摄影测量的基本问题,就是将_________转换为__________。
2人眼产生天然立体视觉的原因是由于_________的存在。
3相对定向完成的标志是__________。
三、简答题1两种常用的相对定向元素系统的特点及相对定向元素。
2倾斜位移的特性。
3单航带法相对定向后,为何要进行比例尺归化?怎样进行?4独立模型法区域网平差基本思想。
5何谓正形变换?有何特点?四、论述题1空间后方交会的计算步骤。
2有三条航线,每条航线六张像片组成一个区域,采用光束法区域网平差。
(1)写出整体平差的误差方程式的一般式。
(2)将像片进行合理编号,并计算带宽,内存容量。
(3)请画出改化法方程系数阵结构简图。
参考答案:一、1是对研究的对象进行摄影,根据所获得的构想信息,从几何方面和物理方面加以分析研究,从而对所摄影的对象本质提供各种资料的一门学科。
2供测图用的航测相片沿飞行方向上相邻像片的重叠。
3知道像片的内方位元素,以及三个地面点坐标和量测出的相应像点的坐标,就可以根据共线方程求出六个外方位元素的方法。
4摄影瞬间航摄飞机相对于某一索取基准面的高度。
5将中心投影转换成正射投影时,经过投影变换来消除相片倾斜所引起的像点位移,使它相当于水平相片的构象,并符合所规定的比例尺的变换过程。
6是将建立的投影光束,单元模型或航带模型以及区域模型的数字模型,根据少数地面控制点,按最小二乘法原理进行平差计算,并求加密点地面坐标的方法。
摄影测量学3-3
K
X
Y
Z
y
(y)
y X s
dX s
y Ys
dYs
y Z s
dZ s
y
d
y d y dK y dX y dY y dZ
K
X
Y
Z
3.9光束法双像解析摄影测量
(在共线条件下)
x x x x x x X s X Ys Y Zs Z
带入泰勒公式展开的上式中,并整理得:
vx a11dX S a12dYS a13dZS a14d a15d a16d
V A
B
t X
L
对于控制点来说, B 0, X 0
法方程式:
( AT AX AT L)
AT A AT B t AT L
BT
A
BT
B
X
BT
L
两类未知数的 法方程
N11
N21
N12 N22
t X
u1 u2
3.9光束法双像解析摄影测量
利用消元法消去未知数X,保留外方位元素改正数, 得改化法方程:
三种方法
精度
不足
优势
应用
后方前方 -交会
相对绝对 -定向
依赖于空 间后方交 会精度
取决于相 对、绝对 定向精度
前方交会 未充分利 用多余条
件平差
不能严格 表达外方
位元素
y f a2 ( X A X S ) b2 (YA YS ) c2 (Z A ZS ) a3 ( X A X S ) b3 (YA YS ) c3 (Z A ZS )
立体像对的前方交会
在外方位元素已知的基础上,解求地面点坐标(地面摄 影测量坐标系)
知识回顾
摄影测量后方交会近景摄影测量DLT直接线性变换代码见介绍
近景摄影测量实习报告班级: 07021班学号: 0062姓名:方毅日期: 2010年12月1日第一部分摄影、像点量测以及DLT 和单像后方空间交会解算1. 实习的目的和意义数码相机摄影:为后续的摄影测量解析处理提供质量合格的数字影像,了解所用数码相机的特点及使用,学习获取数字影像的方法。
像点量测:量测所拍摄的高精度室内三维控制场中控制点的像点坐标,为后续摄影测量解析处理准备计算数据。
直接线性变换(DLT )与单像空间后方交会解算:加深理解近景摄影测量直接线性变换与单像空间后方交会的理论,学习准备数据和调试程序的方法。
2.实习原理 DLT 直接线性变换直接线性变换解法是建立像点坐标仪坐标和相应物点物方空间坐标直接的线性关系的算法。
它的基本关系式如下:1234910115678910110101l X l Y l Z l x l X l Y l Z l X l Y l Z l y l X l Y l Z +++⎧+=⎪+++⎪⎨+++⎪+=⎪+++⎩()展开可得到以i l 为未知数的方程:1234910115678910110000000000l X l Y l Z l xl X xl Y xl Z x l X l Y l Z l yl X yl Y yl Z y +++++++++++=⎧⎨+++++++++++=⎩() 当有n 个控制点时,即可列出2n 个方程式,写为矩阵的形式如下:111111111111111111111211100000000110000001n n n n n n n n n n n nnn nn nn n n X Y Z x X x Y x Z x l X Y Z y X y Y y Z y l X Y Z x X x Y x Z x l X Y Z y X y Y y Z y -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎣⎦⎢⎥⎢⎥-⎣⎦⎣⎦() 即AX L =。
摄影测量实验报告(空间后方交会—前方交会)
摄影测量实验报告(空间后⽅交会—前⽅交会)空间后⽅交会-空间前⽅交会程序编程实验⼀.实验⽬的要求掌握运⽤空间后⽅交会-空间前⽅交会求解地⾯点的空间位置。
学会运⽤空间后⽅交会的原理,根据所给控制点的地⾯摄影测量坐标系坐标以及相应的像平⾯坐标系中的坐标,利⽤计算机编程语⾔实现空间后⽅交会的过程,完成所给像对中两张像⽚各⾃的外⽅位元素的求解。
然后根据空间后⽅交会所得的两张像⽚的内外⽅位元素,利⽤同名像点在左右像⽚上的坐标,求解其对应的地⾯点在摄影测量坐标系中的坐标,并完成精度评定过程,利⽤计算机编程语⾔实现此过程。
⼆.仪器⽤具计算机、编程软件(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));输⼊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%%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;save '左⽚外⽅位元素为.txt' WF -ascii %将计算所得的外⽅位元素存⼊到.txt% ⽂件中for i=1:cg1(i,1)=g1(i,1)+V1(2*i-1);g1(i,2)=g1(i,2)+V1(2*i);endsave '左⽚像点坐标.txt' g1 -asciixs0=(G(2,1)+G(4,1))/2;ys0=(G(2,2)+G(4,2))/2;[Xs2,Ys2,Zs2,q2,w2,k2 R]=houfangjh(g2,xs0,ys0); %对右⽚调⽤后⽅交会函数R2=R; V2=V;WF2=WF;QXX2=QXX;save '右⽚外⽅位元素为.txt' WF –ascii %将计算所得的外⽅位元素存⼊到.txt% ⽂件中for i=1:cg2(i,1)=g2(i,1)+V2(2*i-1);g2(i,2)=g2(i,2)+V2(2*i);endsave '右⽚像点坐标.txt' g2 -asciiX1=zeros(a,3);X2=zeros(a,3);xx=zeros(3,1);xxx=zeros(3,1);for i=1:ass=[b1(i,1);b1(i,2);-f];dd=[b2(i,1);b2(i,2);-f];xx=R1*ss;X1(i,:)=xx';xxx=R2*dd;X2(i,:)=xxx';endglobal Xs1 Xs2 Ys1 Ys2 Zs1 Zs2;BX=Xs2-Xs1;BY=Ys2-Ys1;BZ=Zs2-Zs1;global N1 N2;N1=zeros(1,a);N2=zeros(1,a);for i=1:aN1(1,i)=(BX*X2(i,3)-BZ*X2(i,1))/(X1(i,1)*X2(i,3)-X2(i,1)*X1(i,3));N2(1,i)=(BX*X1(i,3)-BZ*X1(i,1))/(X1(i,1)*X2(i,3)-X2(i,1)*X1(i,3));end %计算投影系数,并计算五点的三维坐标global XYZ;XYZ=zeros(a,3);for i=1:aXYZ(i,1)=Xs1+N1(1,i)*X1(i,1);XYZ(i,2)=((Ys1+N1(1,i)*X1(i,2))+(Ys2+N2(1,i)*X2(i,2)))/2;enddisp('左⽚外⽅位元素为:Xs Ys Zs ψωκ');disp(WF1);disp('左⽚外⽅位元素协因素阵为:');disp(QXX1);disp('左⽚像点坐标为:')disp(g1)disp('右⽚外⽅位元素为:Xs Ys Zs ψωκ');disp(WF2);disp('右⽚外⽅位元素协因素阵为:')disp(QXX2)disp('右⽚像点坐标为:')disp(g2)disp('计算所得点摄影测量坐标(X,Y,Z)为:');disp(XYZ);save 'XYZ.txt' XYZ -ascii %将计算所得结果保存到XYZ.txt⽂件中%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [Xs,Ys,Zs,q,w,k R]=houfangjh(g1,Xs0,Ys0) %计算像⽚外⽅位元素%%%%%%%%%%global f G m c b1 b2;f=0.152;Xs=Xs0;Ys=Ys0;Zs=m*f+G(1,3);q=0;w=0;k=0;while 1 %实现⼀个永真循环,是改正数⼩于限差以后跳出循环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);R=[a1,a2,a3;b1_,b2_,b3;c1,c2,c3];for i=1:caX(i)=a1*(G(i,1)-Xs)+b1_*(G(i,2)-Ys)+c1*(G(i,3)-Zs);aY(i)=a2*(G(i,1)-Xs)+b2_*(G(i,2)-Ys)+c2*(G(i,3)-Zs);aZ(i)=a3*(G(i,1)-Xs)+b3*(G(i,2)-Ys)+c3*(G(i,3)-Zs);endxj=[];yj=[];for i=1:cxj(i)=-f*aX(i)/aZ(i);yj(i)=-f*aY(i)/aZ(i);enda11=[];a12=[];a13=[];a14=[];a15=[];a16=[];a21=[];a22=[];a23=[];a24=[];a25=[];a26=[];for i=1:ca11(i)=(a1*f+a3*g1(i,1))/aZ(i);a12(i)=(b1_*f+b3*g1(i,1))/aZ(i);a13(i)=(c1*f+c3*g1(i,1) )/aZ(i);a21(i)=(a2*f+a3*g1(i,2))/aZ(i);a22(i)=(b2_*f+b3*g1(i,2))/aZ(i);a23(i)=(c2*f+c3*g1(i,2) )/aZ(i);a14(i)=g1(i,2)*sin(w)-(g1(i,1)*(g1(i,1)*cos(k)-g1(i,2)*sin(k))/f+f*cos(k))*cos(w);a15(i)=-f*sin(k)-g1(i,1)*(g1(i,1)*sin(k)+g1(i,2)*cos(k))/f;a16(i)=g1(i,2);a24(i)=-g1(i,1)*sin(w)-(g1(i,2)*(g1(i,1)*cos(k)-g1(i,2)*sin(k))/f-f*sin(k))*cos(w);a25(i)=-f*cos(k)-g1(i,2)*(g1(i,1)*sin(k)+g1(i,2)*cos(k))/f;a26(i)=-g1(i,1);endlx=[];ly=[];for i=1:clx(i)=g1(i,1)-xj(i);ly(i)=g1(i,2)-yj(i);endA=zeros(2*c,6);for i=1:cA(2*i-1,1)=a11(i);A(2*i-1,2)=a12(i);A(2*i-1,3)=a13(i);A(2*i-1,4)=a14(i);A(2*i-1,5)=a15 (i);A(2*i-1,6)=a16(i); A(2*i,1)=a21(i); A(2*i,2)=a22(i); A(2*i,3)=a23(i); A(2*i,4)=a24(i); A(2*i,5)=a25(i); A(2*i,6)=a26(i);endL=zeros(2*c,1);for i=1:cL(2*i-1,1)=lx(i);endX=inv((A')*A)*(A')*L;Xs=Xs+X(1,1);Ys=Ys+X(2,1);Zs=Zs+X(3,1);q=q+X(4,1);w=w+X(5,1);k=k+X(6,1);Xabs=abs(X);aaa=max(Xabs);if aaa<0.00003 %当改正数中绝对值最⼤的改正数⼩于限差0.00003 break; %后跳出循环,计算结果已经收敛endendglobal V;V=L';global WF QXX;WF(1)=Xs;WF(2)=Ys;WF(3)=Zs;WF(4)=q;WF(5)=w;WF(6)=k;QXX=A'*A;六.实验结果左⽚外⽅位元素Xs,Ys,Zs,ψ、ω、κ、为:5.0001950e+003 5.0007250e+003 2.0201583e+003 -7.2888190e-005 2.8193877e-002 9.5130388e-002左⽚外⽅位元素协因素阵为:4.0166895e-008 -3.7263703e-010 1.3218695e-008 7.0720033e-005 1.0001730e-007 -2.5748604e-006-3.7263703e-010 4.0032797e-008 2.6568407e-009 -2.1103715e-007 7.7772275e-005 1.9993587e-0051.3218695e-0082.6568407e-009 1.7931301e-0083.1008915e-005 6.6697659e-006 5.6403374e-0077.0720033e-005 -2.1103715e-007 3.1008915e-005 1.3087511e-001 1.0148977e-003 -1.9981396e-003 1.0001730e-007 7.7772275e-005 6.6697659e-006 1.0148977e-003 1.5539404e-001 3.0264331e-002-2.5748604e-006 1.9993587e-005 5.6403374e-007 -1.9981396e-003 3.0264331e-002 4.0721943e-002左⽚外⽅位元素Xs,Ys,Zs,ψ、ω、κ、为:5.8967023e+003 5.0687355e+003 2.0506347e+003 1.4337709e-002 4.6257617e-0021.1037952e-001右⽚外⽅位元素协因素阵为:3.9305329e-0084.9400147e-010 -1.0339207e-008 6.8065940e-005 -4.2504770e-007 1.8461496e-0064.9400147e-010 3.9051893e-008 3.3958896e-011 -3.9945442e-008 7.6312421e-005 -1.6453951e-005-1.0339207e-008 3.3958896e-011 1.5155886e-008 -2.3705097e-005 3.5940467e-007 -7.3527082e-007 6.8065940e-005 -3.9945442e-008 -2.3705097e-005 1.2229164e-001 -2.3449223e-003 4.8281474e-003-4.2504770e-007 7.6312421e-005 3.5940467e-007 -2.3449223e-003 1.5233230e-001 -2.5374659e-0022.5374659e-0023.6794789e-002GCP在左⽚和右⽚改正后的坐标(x,y)为:1.6019582e-002 7.9954660e-002 -7.3934212e-002 7.8699356e-0028.8559633e-002 8.1141190e-002 -5.2455612e-003 7.8187184e-0021.3352398e-002 -7.9378247e-002 -7.9125440e-002 -7.8877760e-0028.2242309e-002 -8.0017749e-002 -9.8858970e-003 -8.0086832e-002单位权中误差为:±1.515610577029578e-005所求地⾯点的三维坐标(X, Y, Z)为:5.4310348e+003 5.8851463e+003 5.4831646e+0025.1473645e+003 5.0555934e+003 4.8499600e+0025.4957931e+003 5.0826911e+003 5.0668967e+0025.8442434e+003 5.1098033e+003 5.3025650e+0025.5603279e+003 4.2870779e+003 4.6536459e+002七.⼼得体会经过三周的努⼒,这个当初看来艰巨的任务终于在我的不懈努⼒下圆满的完成了。
空间前方交会和空间后方交会的区别
空间前⽅交会和空间后⽅交会的区别双像解析计算的空间后交-前交⽅法当我们通过航空摄影,获得地⾯的⼀个⽴体像对时,采⽤双像解析计算的空间后交-前交⽅法计算地⾯点的空间点位。
这种⽅法⾸先由单⽚后⽅交会求出左、右像⽚的外⽅位元素,再⽤空间前⽅交会公式求出待定点坐标,其具体的作业步骤如下:(1)像⽚野外控制测量⼀个⽴体像对采⽤空间后⽅交会-前⽅交会法计算点的地⾯坐标时,像对内必须具有⼀定数量的地⾯控制点坐标。
⼀般情况下,在⼀个像对的重叠范围四个⾓上,找出四个明显地物点,在野外判识出地⾯的实际位置,并准确地在像⽚上刺出各点的位置,要求在像⽚的背⾯绘出各点与周围地物关系的点位略图,加注记说明。
然后⽤普通测量计算⽅法,求出四个控制点的地⾯坐标X, Y,Z。
(2)⽤⽴体坐标量测仪测像点的坐标像⽚在仪器上归⼼定向后,测出四个控制点的像⽚坐标(x1',y1')与(x2',y2'),然后测出所需要解求的地⾯点坐标(x1,y1)和(x2,y2)。
(3)空间后⽅交会法计算像⽚外⽅位元素利⽤控制点分别计算每个像⽚的六个外⽅位元素,包括:X S1,Y S1,Z S1,φ1,ω1,κ1,和X S2,Y S2, Z S2, φ2, ω2, κ2。
内外⽅位元素都已知:内⽅位元素3个是相机的参数,外⽅位元素6个是位姿参数:x,y,z,a,b,c,分别是位置和朝向。
其他还知道的参数是:物体在像⽚上的位置p1,p2。
p1',p2'。
直接解⽅程即可。
已知物体实际坐标,反求九参数是后⽅交会。
已知九参数,求物体坐标是前⽅交会。
那么直接求解空间前⽅交会不就完事了空间前⽅交会计算所求点的地⾯坐标1. ⽤各⾃像⽚的⾓元素,计算出左、右像⽚的旋转矩阵R1与R2。
2. 根据左、右像⽚的外⽅位线元素计算摄影基线分量BX,BY,BZ:3. 逐点计算像点的像空间辅助坐标内⽅位元素是描述摄影中⼼与像⽚之间相关位置的参数,包括三个参数,即摄影中⼼S到像⽚的垂距(主距)f及像主点在像框标坐标系中的坐标x0,y0,即f,x0,y0>>后⽅交会与相机标定的区别:⼀个是求外⽅位元素(6)个,⼀个是求内⽅位元素(3)个>>单相⽚后⽅交会和双像后⽅交会的区别:单相⽚只⽤求⼀个像⽚的位置和姿态⾓,双相⽚需要求两个像⽚的位置和姿态⾓如果位置和姿态⾓都已知了,求物体的位置,这是前⽅交会通过单张照⽚⽆法确定物⽅的位置的原因。
摄影测量名词解释
一、名词解释1. 核面:摄影基线与同一地面点发出的两条同名光线组成的面。
2. 外方位元素:确定影像或摄影光束在摄影瞬间的空间位置和姿态的参数称为影像外 方位元素。
3. 同名像点:同一地面点发出的两条光线经左右摄影中心在左右像片上构成的像点为 同名像点。
4. 前方交会:由立体像对中两张像片的内、外方位元素和像点坐标来确定相应地面点在物方空间坐标系中坐标的方法5.相机主距:摄影中心到像片面的垂直距离,一般用f 来表示6.像点位移:地面点在地面水平的水平像片上的构像与地面有起伏时或倾斜像片上的构像的点位不同,这种点位的差异即像点位移。
7.摄影基线:相邻两张像片摄影中心的连线即为摄影基线。
8.内方位元素:用来表示摄影中心与像片之间相关位置的参数,即摄影中心到像片的垂距(主距)f 及像主点o 在像框标坐标系中的坐标00,y x 。
内方位元素确定摄影时光束的形状。
9.相对定向:立体像对的相对定向就是要恢复摄影时相邻两影像光束的相互关系,从而使同名光线对对相交。
10.绝对定向:借助于物空间坐标为已知的控制点,来确定像空间辅助坐标系与实际物空间坐标系之间的变换关系,称为单元模型的绝对定向。
11.同名核线:核面与像片面的交线称为核线,对于同一核面的左右像片的核线,称同名核线。
12.单模型绝对定向:相对定向所构建的立体模型经平移、缩放、旋转后纳入到地面坐标系中的过程。
13.影像核线:立体像对中,同名光线与摄影基线所组成核面与左右像片的交线。
14.数字正射影像图(Digital Orthophoto Map ,缩写DOM )是利用数字高程模型(DEM )对经扫描处理的数字化航空像片,经逐像元进行投影差改正、镶嵌,按国家基本比例尺地形图图幅范围剪裁生成的数字正射影像数据集。
它是同时具有地图几何精度和影像特征的图像,具有精度高、信息丰富、直观真实等优点。
15. 摄影比例尺:像片水平,地面水平时,像片上一段距离l 与地面一段距离L 的比值。
双像解析摄影测量三种方法的比较-学习心得
双像解析摄影测量三种⽅法的⽐较-学习⼼得双像解析摄影测量三种⽅法的⽐较为了加强印象,还是要做做笔记的,那继续做电⼦笔记吧双像解析摄影测量三种⽅法的⽐较:后⽅交会-前⽅交会⽅法;相对定向-绝对定向法;⼀步定向法后⽅交会-前⽅交会法主要步骤:⾸先进⾏后⽅交会,利⽤单张影像上3个以上已知控制点分别计算像⽚外⽅位元素,再通过前⽅交会计算出地⾯⽬标的物⽅坐标。
该⽅法的缺点在于每张影像上都必须有3个以上控制点,并且前⽅交会求取的地⾯点坐标的精度取决于后⽅交会所解算外⽅位元素的精度(前⽅交会过程没有充分利⽤多余条件进⾏平差计算)。
因此,该⽅法往往在已知影像的外⽅位元素、需确定少量的待定点坐标时采⽤。
相对定向-绝对定向法主要步骤:⾸先利⽤两张影像重叠区内5对以上同名点,按照共⾯条件⽅程解算相对定向元素,并计算同名点模型坐标,同时要求⾄少2个平⾼点1个⾼程点位于像⽚重叠区内以计算控制点模型坐标。
然后利⽤控制点模型坐标和对应地⾯坐标根据三维相似变换⽅程解算出绝对定向元素。
最后根据绝对定向元素求取⽬标的物⽅坐标。
(计算公式⽐较多,⽤这种⽅法的解算结果不能严格表达⼀幅图像的外⽅位元素)该⽅法的缺点在于需要已知重叠区内最少5对同名点。
同样地,绝对定向的精度取决于相对定向精度。
因此常⽤于航带法解析三⾓测量的应⽤。
⼀步定向法主要步骤:利⽤已有控制点地⾯坐标、像⽚上对应像点坐标,根据共线条件⽅程⼀步解算出像⽚外⽅位元素和⽬标的地⾯坐标。
该⽅法⼀步完成,精度完全由控制点和像点坐标量测精度决定,理论上⽐以上两种⽅法精度⾼。
但该⽅法相较以上两种⽅法,求解过程较复杂。
(待定点的坐标是完全按最⼩⼆乘法原理解求出来的,该⽅法常⽤于光线束法解析空中三⾓测量中的应⽤。
)下⾯简单介绍⼀种影像定位的⽅法:有理函数模型(RFM)有理函数模型可以直接建⽴起像点和空间坐标之间的关系,不需要内外⽅位元素,回避成像的⼏何过程,可以⼴泛⽤于线阵影像的处理中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(
X
0 B
dX B dX B
) )
(
X
0 C
(
X
0 C
dXC dXC
) )
HA HA
h4 v4
(
X
0 C
dX
C
)
(
X
0 D
dXD )
h5 v5
(X
0 D
dX D
)
H
A
v1 dX B
v2 dX B dXC
v3
dXC
(H
A
h1
X
0 B
)
(
X
0 B
X
0 C
h2 )
(H
A
h3
X
a1I a2 I
a2 J a1J
x
y
a0 b0
a1I b1I
a2 J b2 J
a3IJ b3IJ
投影变换公式
x
y
a0 b0
a1I b1I
a2 J b2J
a3IJ a4I 2 b3IJ b4 J 2
(-106.000,106.001)
(105.997,105.998)
第五章:摄影测量解析基础
§5-1 §5-2 §5-3 §5-4 §5-5 §5-6
影像内定向 单张像片空间后方交会 立体像对的前方交会 立体像对的解析法相对定向 立体像对的解析法绝对定向 双像解析的光束法严密解
Photogrammetry & Remote Sensing-----Geographic Information System
内定向通常采用多项式变换公式。假设框标在以像主点为原点的像平
面坐标系中的理论坐标为(x,y),在量测坐标系(框标坐标系、扫描 坐标系)的量测坐标为(I,J),则常用的多项式变换公式有:
线性正形变换公式 仿射变形公式 双线性变换公式
x y
a0 b0
a1I b1I
a2 J b2 J
x
y
a0 a3
0
0
0
Pi
10/
Si
0
0
0 2.5 0 0
0 0 3.3 0
0 0 0 0 4.0
法方程及解:
6.6 3.7 0
3.7 9.5 3.3
0 3.3
dXB 85.1
dXC
38.9
0
dXB
dX
C
11.75 2.04
XB
X
C
X X
0 B
0 C
dX B dXC
Photogrammetry,2014
间接平差知识回顾:
1
B
间接平差法求平差值的步骤:
A 1、根据平差问题的性质,选择t个量
作为参数;
2 3
C
2、将每一个观测量的平差值表达成所选参数的 5
4
函数,若函数为非线性,则需线性化;
D
3、由误差方程系数A和常数项l组成法方程。法方程的个数等于观测值的个数。
X S ) b1(YA X S ) b3(YA
YS ) c1( Z A ZS ) YS ) c3(Z A ZS )
Hale Waihona Puke yy0fa2( X A a3( X A
X S ) b2(YA X S ) b3(YA
YS ) c2(Z A YS ) c3(Z A
ZS ) ZS )
Photogrammetry,2014
V = A dX - l
4、解算法方程,计算参数的平差值X = X0 + dX dX = (ATA) -1 (ATl)
5、由误差方程求出观测值的平差值。
Photogrammetry & Remote Sensing-----Geographic Information System
Photogrammetry,2014
x
y
a0 b0
a1I b1I
a2J b2 J
(-106.001,-106.002)
v1 v2 v3
(X (X
0 B
0 B
dX B dX B
) )
(
X
0 C
(
X
0 C
dXC ) dXC )
HA HA
h4 v4
(
X
0 C
dXC
)
(
X
0 D
dX D )
h5 v5
(
X
0 D
dX D )
HA
B
h2 h3
C
h4 D
h1 h2 h3
v1 v2 v3
(
X
0 B
水准
观测高差
路线长度
路线
hi / m
Si / km
1
5.835
3.5
2
3.782
2.7
h1
3
9.640
4.0
4
7.384
3.0
A
5
2.270
2.5
(1) 列误差方程
h1 v1 X B
HA
h5
hh32
v2 v3
X
B
XC XC
HA
h4 v4
XC XD
h5 v5
XD HA
h1 h2 h3
I y'
o
y
I
J
J
x
y
o
x
(x1,y1) (x2,y2)
(x3,y3) (x4,y4)
x'
二、内定向的作业过程
内定向作业主要依赖影像的框 标坐标来进行。量测相机的结果 可以提供框标在以像主点为原点 的像平面坐标系的理论坐标,在 像点量测过程中,量测出框标在 量测坐标系(框标坐标系、扫描 坐标系)的坐标,就可以利用解 析计算方法确定量测坐标系与以 像主点为原点的像平面坐标系的 关系和像片可能存在的变形,从 而获得量测像点在以像主点为原 点的像平面坐标系的坐标。
一、内定向的概念和目的 影像内定向就是利用平
面相似变换,将像片框标坐标或 扫描坐标转化到以像主点为原点 的像平面直角坐标系中。
在解析摄影测量和数字摄影 测量中,内定向是通过输入像片 主距和量测影像框标并进行相应 的计算来完成的,其目的就是恢 复影像的内方位元素,确定其它 像平面坐标系与以像主点为原点 的像平面坐标系之间的关系以及 影像可能存在的变形。
243.330 247.121
7.3 dX D 46.2
dX D 7.25
X D
X
0 D
dX D
239.746
Photogrammetry & Remote Sensing-----Geographic Information System
§5-1 影像内定向
问题的提出: 要从影像中提取物体的空间信息,首先应确定与物体相对应的像 点坐标。
0 C
)
v4
dXC dXD
(X
0 D
h4
X
0 C
)
v5
dX D
(H
A
h5
X
0 D
)
误差方程的矩阵形式:
v1 1 0 0
0
v
2
1
v3
0
v4 0
1 1 1
0
0
1
dX dX dX
B C D
23 0 14
v5 0 0 1
0
2.9 0 0 0 0
0
3.7
在解析摄影测量中,所量测的像点坐标为像片框标坐标,作业中, 在像片框标上放置像片时没有严格对准,以像主点为原点的像平面 坐标系和像片框标坐标是不重合的。
在数字摄影测量中,在数字影像上量测的像点坐标是扫描坐标系 上的坐标,而以像主点为原点的像平面坐标系和扫描坐标系是不重 合的。
x
x0
f
a1( X A a3( X A