【精品】單像空間后方交會(huì)編程實(shí)習(xí)報(bào)告.doc_第1頁(yè)
【精品】單像空間后方交會(huì)編程實(shí)習(xí)報(bào)告.doc_第2頁(yè)
【精品】單像空間后方交會(huì)編程實(shí)習(xí)報(bào)告.doc_第3頁(yè)
【精品】單像空間后方交會(huì)編程實(shí)習(xí)報(bào)告.doc_第4頁(yè)
【精品】單像空間后方交會(huì)編程實(shí)習(xí)報(bào)告.doc_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

空間后方交會(huì)實(shí)習(xí)報(bào)告 學(xué)號(hào) 2010302590232 姓名 李雷 指導(dǎo)老師 實(shí)習(xí)目的1、掌握空間后方交會(huì)的定義和實(shí)現(xiàn)算法(1) 定義:空間后方交會(huì)是以單幅影像為基礎(chǔ),從該影像所覆蓋地面范圍內(nèi)若干控制點(diǎn)的已知地面坐標(biāo)和相應(yīng)點(diǎn)的像坐標(biāo)量測(cè)值出發(fā),根據(jù)共線條件方程,解求該影像在航空攝影時(shí)刻的外方位元素Xs,Ys,Zs,。(2) 算法:由于每一對(duì)像方和物方共軛點(diǎn)可列出2個(gè)方程,因此若有3個(gè)已知地面坐標(biāo)的控制點(diǎn),則可列出6個(gè)方程,解求6個(gè)外方位元素的改正數(shù)Xs,Ys,Zs,。實(shí)際應(yīng)用中為了提高解算精度,常有多余觀測(cè)方程,通常是在影像的四個(gè)角上選取4個(gè)或均勻地選擇更多的地面控制點(diǎn),因而要用最小二乘平差方法進(jìn)行計(jì)算。2、了解攝影測(cè)量平差的基本過(guò)程(1) 獲取已知數(shù)據(jù)。從攝影資料中查取影像比例尺1/m,平均攝影距離(航空攝影的航高)、內(nèi)方位元素x0,y0,f;獲取控制點(diǎn)的空間坐標(biāo)Xt,Yt,Zt。(2) 量測(cè)控制點(diǎn)的像點(diǎn)坐標(biāo)并進(jìn)行必要的影像坐標(biāo)系統(tǒng)誤差改正,得到像點(diǎn)坐標(biāo)。(3) 確定未知數(shù)的初始值。單像空間后方交會(huì)必須給出待定參數(shù)的初始值,在豎直航空攝影且地面控制點(diǎn)大體對(duì)稱分布的情況下,Xs0和Ys0為均值,Zs0為航高,、的初值都設(shè)為0?;蛘叩某踔悼稍诤桔E圖上找出或根據(jù)控制點(diǎn)坐標(biāo)通過(guò)坐標(biāo)正反變換求出。(4) 計(jì)算旋轉(zhuǎn)矩陣R。利用角元素近似值計(jì)算方向余弦值,組成R陣。(5) 逐點(diǎn)計(jì)算像點(diǎn)坐標(biāo)的近似值。利用未知數(shù)的近似值按共線條件式計(jì)算控制點(diǎn)像點(diǎn)坐標(biāo)的近似值(x),(y)。(6) 逐點(diǎn)計(jì)算誤差方程式的系數(shù)和常數(shù)項(xiàng),組成誤差方程式。(7) 計(jì)算法方程的系數(shù)矩陣ATA與常數(shù)項(xiàng)ATL,組成法方程式。(8) 解求外方位元素。根據(jù)法方程,解求外方位元素改正數(shù),并與相應(yīng)的近似值求和,得到外方位元素新的近似值。(9) 檢查計(jì)算是否收斂。將所求得的外方位元素的改正數(shù)與規(guī)定的限差比較,通常對(duì),的改正數(shù),給予限差,通常為0.1,當(dāng)3個(gè)改正數(shù)均小于0.1時(shí),迭代結(jié)束。否則用新的近似值重復(fù)(4)(8)步驟的計(jì)算,直到滿足要求為止。(10)流程圖1、 程序源代碼typedef struct dataint no;double x;double y; double X;double Y;double Z;data;#include #include#include #include fstream#include HEADFile.hdouble* zhuan(double* a,int n,int m) /矩陣轉(zhuǎn)置 double* p=new double*m; for(int i=0;i!=m;i+) pi=new doublen;for(i=0;im;i+)for(int j=0;jn;j+)pij=aji;return p;double *MatrixMul(double *m1,int i1,int j1,double *m2,int i2,int j2) /矩陣相乘(矩陣1,行數(shù),列數(shù),矩陣2,行數(shù),列數(shù)),函數(shù)內(nèi)已開(kāi)僻內(nèi)存,直接返回給定義指針 if(i2!=j1) couterror!兩矩陣不滿足相乘條件!endl; return NULL; int i,j,k; double *p; p=new double*i1; for(i=0;ii1;i+) pi=new doublej2; for(i=0;ii1;i+) for(j=0;jj2;j+) pij=0.0; for(k=0;kj1;k+) pij+=m1ik*m2kj; return p; double *InverseMatrix(double* p,int n) /矩陣求逆函數(shù)int i,j,k,row,col;double temp,temp0,kb,kc,kd;double *e=new double*n;for (i=0;in;i+) /構(gòu)造單位矩陣ei=new doublen; for (j=0;jn;j+) if(i=j)eij=1;elseeij=0; for(i=0;in;i+) /逐個(gè)找對(duì)角線上的元素,并把該元素所在列上的本行以下元素化為0 int i0=i;while(i0n-1 & pi0i=0 ) /找出某列上第一個(gè)不為零的行數(shù)i0+;if (pi0i=0)coutThe square have no inverse matrix!endl;break;for (j=0;jn;j+) /當(dāng)前行與該行交換temp=pi0j;pi0j=pij;pij=temp;temp0=ei0j;ei0j=eij;eij=temp0;kc=pii;for (j=0;jn;j+) /交換后的當(dāng)前行首元素pii化為1pij/=kc;eij/=kc;if(in-1) /若當(dāng)前行不是矩陣的最后一行,則使當(dāng)前行以下各行減去本行首元素與當(dāng)前行的積for(row=i+1;rown;row+)kb=prowi;for (col=0;col=0;i-)for(k=i+1;kn;k+)kd=pik;for (j=0;jn;j+)pij-=kd*pkj;eij-=kd*ekj;return e;void main() int M,num,i,j; FILE *fp;double f;fp=fopen(E:后方交會(huì)數(shù)據(jù).txt,r);fscanf(fp,%d,&num); data *a=new datanum;for(i=0;inum;i+)fscanf(fp,%d%lf%lf%lf%lf%lf,&ai.no,&ai.x,&ai.y,&ai.X,&ai.Y,&ai.Z);for(i=0;inum;i+)ai.x/=1000;ai.y/=1000; fscanf(fp,%lf%d,&f,&M); f/=1000;fclose(fp); /讀數(shù)據(jù) double phi=0,omega=0,kappa=0,Xs=38437,Ys=27963.155,Zs=7662,Xb=0,Yb=0,Zb=0; for(i=0;i1E-8) /迭代條件 a1=cos(phi)*cos(kappa)-sin(phi)*sin(omega)*sin(kappa); a2=-cos(phi)*sin(kappa)-sin(phi)*sin(omega)*cos(kappa); a3=-sin(phi)*cos(omega); b1=cos(omega)*sin(kappa); b2=cos(omega)*cos(kappa); b3=-sin(omega); c1=sin(phi)*cos(kappa)+cos(phi)*sin(omega)*sin(kappa); c2=-sin(phi)*sin(kappa)+cos(phi)*sin(omega)*cos(kappa); c3=cos(phi)*cos(omega); for(i=0,j=0;i30) coutThe data may be incorrect!endl; exit(1); cout迭代次數(shù):abendl; /查看迭代次數(shù) double *V,sigama2;double *m1,*m2; /定義矩陣運(yùn)算的中間變量 V=MatrixMul(A,Num,6,t,6,1);for(i=0;iNum;i+)Vi0-=Li0; m1=zhuan(V,Num,1);m2=MatrixMul(m1,1,Num,V,Num,1);sigama2=m200/(Num-6); /單位權(quán)方差double d6; /定義六個(gè)參數(shù)的中誤差的數(shù)組for(i=0;i6;i+)di=sqrt(rii*sigama2); coutsetprecision(7)平差結(jié)果及其中誤差 :endlXs=Xs 中誤差: d0endlYs=Ys 中誤差: d1endlZs=Zs 中誤差:d2endl;coutphi=phi 中誤差:d3endlomega=omega 中誤差:d4endlkappa=kappa 中誤差:d5endl;2、 實(shí)習(xí)數(shù)據(jù)3、 ;計(jì)算結(jié)果4、 實(shí)習(xí)心得編寫(xiě)程序前應(yīng)該先把實(shí)驗(yàn)的原理弄清楚,編寫(xiě)程序時(shí)要細(xì)致小心,同

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論