攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)_第1頁(yè)
攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)_第2頁(yè)
攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)_第3頁(yè)
攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)_第4頁(yè)
攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)xxx公司攝影測(cè)量學(xué)單像空間后方交會(huì)程序設(shè)計(jì)作業(yè)文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度usingSystem;using;using;namespace單像空間后方交會(huì){classProgram{staticvoidMain(string[]args){intx0,y0,i,j;doublef,m;("請(qǐng)輸入像片比例尺:");m=());("請(qǐng)輸入像片的內(nèi)方位元素x0:");//均以毫米為單位x0=());("請(qǐng)輸入像片的內(nèi)方位元素y0:");y0=());("請(qǐng)輸入攝影機(jī)主距f:");f=());();//輸入坐標(biāo)數(shù)據(jù)double[,]zuobiao=newdouble[4,5];for(i=0;i<4;i++){for(j=0;j<5;j++){if(j<3){("請(qǐng)輸入第{0}個(gè)點(diǎn)的第{1}個(gè)地面坐標(biāo):",i+1,j+1);zuobiao[i,j]=());}else{("請(qǐng)輸入第{0}個(gè)點(diǎn)的第{1}個(gè)像點(diǎn)坐標(biāo):",i+1,j-2);zuobiao[i,j]=());}}();}//歸算像點(diǎn)坐標(biāo)for(i=0;i<4;i++){for(j=3;j<5;j++){if(j==3)zuobiao[i,j]=zuobiao[i,j]-x0;elsezuobiao[i,j]=zuobiao[i,j]-y0;}}//計(jì)算和確定初值doublezs0=m*f,xs0=0,ys0=0;for(i=0;i<4;i++){xs0=xs0+zuobiao[i,0];ys0=ys0+zuobiao[i,1];}xs0=xs0/4;ys0=ys0/4;//逐點(diǎn)計(jì)算誤差方程系數(shù)double[,]xishu=newdouble[8,6];for(i=0;i<8;i+=2){doublex,y;x=zuobiao[i/2,3];y=zuobiao[i/2,4];xishu[i,0]=xishu[i+1,1]=-1/m;xishu[i,1]=xishu[i+1,0]=0;xishu[i,2]=-x/(m*f);xishu[i,3]=-f*(1+x*x/(f*f));xishu[i,4]=xishu[i+1,3]=-x*y/f;xishu[i,5]=y;xishu[i+1,2]=-y/(m*f);xishu[i+1,4]=-f*(1+y*y/(f*f));xishu[i+1,5]=-x;}//計(jì)算逆陣double[,]dMatrix=matrixChe(matrixTrans(xishu),xishu);double[,]dReturn=ReverseMatrix(dMatrix,6);("逆矩陣為:");if(dReturn!=null){matrixOut(dReturn);}//求解過(guò)程doublephi0=0,omega0=0,kappa0=0;intq=0;double[,]r=newdouble[3,3];double[,]jinsi=newdouble[4,2];double[]chazhi=newdouble[8];double[]jieguo=newdouble[6];double[,]zhong=matrixChe(dReturn,matrixTrans(xishu));do{//計(jì)算旋轉(zhuǎn)矩陣rr[0,0]=(phi0)*(kappa0)-(phi0)*(omega0)*(kappa0);r[0,1]=(phi0)*(kappa0)-(phi0)*(omega0)*(kappa0);r[0,2]=(phi0)*(omega0);r[1,0]=(omega0)*(kappa0);r[1,1]=(omega0)*(kappa0);r[1,2]=(omega0);r[2,0]=(phi0)*(kappa0)+(phi0)*(omega0)*(kappa0);r[2,1]=(phi0)*(kappa0)+(phi0)*(omega0)*(kappa0);r[2,2]=(phi0)*(omega0);//計(jì)算x,y的近似值for(i=0;i<4;i++){jinsi[i,0]=-f*(r[0,0]*(zuobiao[i,0]-xs0)+r[1,0]*(zuobiao[i,1]-ys0)+r[2,0]*(zuobiao[i,2]-zs0))/(r[0,2]*(zuobiao[i,0]-xs0)+r[1,2]*(zuobiao[i,1]-ys0)+r[2,2]*(zuobiao[i,2]-zs0));jinsi[i,1]=-f*(r[0,1]*(zuobiao[i,0]-xs0)+r[1,1]*(zuobiao[i,1]-ys0)+r[2,1]*(zuobiao[i,2]-zs0))/(r[0,2]*(zuobiao[i,0]-xs0)+r[1,2]*(zuobiao[i,1]-ys0)+r[2,2]*(zuobiao[i,2]-zs0));}for(i=0;i<8;i+=2){chazhi[i]=zuobiao[i/2,3]-jinsi[i/2,0];chazhi[i+1]=zuobiao[i/2,4]-jinsi[i/2,1];}for(i=0;i<(0);i++){doublek=0;for(j=0;j<(1);j++){k=k+zhong[i,j]*chazhi[j];}jieguo[i]=k;}//求新的近似值xs0+=jieguo[0];ys0+=jieguo[1];zs0+=jieguo[2];phi0+=jieguo[3];omega0+=jieguo[4];kappa0+=jieguo[5];q++;if(q>1000)break;}while((jieguo[0])>||(jieguo[1])>||(jieguo[2])>;("共進(jìn)行了{(lán)0}次運(yùn)算",q);("旋轉(zhuǎn)矩陣為");matrixOut(r);for(i=0;i<(0);i++){("第{0}個(gè)外方位元素為:{1}",i+1,jieguo[i]);}}//矩陣轉(zhuǎn)置publicstaticdouble[,]matrixTrans(double[,]X){double[,]A=X;double[,]C=newdouble[(1),(0)];for(inti=0;i<(1);i++)for(intj=0;j<(0);j++){C[i,j]=A[j,i];}returnC;}//矩陣輸出publicstaticvoidmatrixOut(double[,]X){double[,]C=X;for(inti=0;i<(0);i++){for(intj=0;j<(1);j++){("{0}",C[i,j]);}("\n");}}//二維矩陣相乘publicstaticdouble[,]matrixChe(double[,]X,double[,]Y){inti,j,n;doublem;double[,]C=X;double[,]D=Y;double[,]E=newdouble[(0),(0)];for(i=0;i<(0);i++){for(n=0;n<(0);n++){m=0;for(j=0;j<(1);j++){m=m+C[i,j]*D[j,n];}E[i,n]=m;}}returnE;}//計(jì)算行列式的值publicstaticdoubleMatrixValue(double[,]MatrixList,intLevel){double[,]dMatrix=newdouble[Level,Level];for(inti=0;i<Level;i++)for(intj=0;j<Level;j++)dMatrix[i,j]=MatrixList[i,j];doublec,x;intk=1;for(inti=0,j=0;i<Level&&j<Level;i++,j++){if(dMatrix[i,j]==0){intm=i;for(;dMatrix[m,j]==0;m++);if(m==Level)return0;else{for(intn=j;n<Level;n++){c=dMatrix[i,n];dMatrix[i,n]=dMatrix[m,n];dMatrix[m,n]=c;}k*=(-1);}}for(ints=Level-1;s>i;s--){x=dMatrix[s,j];for(intt=j;t<Level;t++)dMatrix[s,t]-=dMatrix[i,t]*(x/dMatrix[i,j]);}}doublesn=1;for(inti=0;i<Level;i++){if(dMatrix[i,i]!=0)sn*=dMatrix[i,i];elsereturn0;}returnk*sn;}//計(jì)算逆陣publicstaticdouble[,]ReverseMatrix(double[,]dMatrix,intLevel){doubledMatrixValue=MatrixValue(dMatrix,Level);if(dMatrixValue==0)returnnull;double[,]dReverseMatrix=newdouble[Level,2*Level];doublex,c;for(inti=0;i<Level;i++){for(intj=0;j<2*Level;j++){if(j<Level)dReverseMatrix[i,j]=dMatrix[i,j];elsedReverseMatrix[i,j]=0;}dReverseMatrix[i,Level+i]=1;}for(inti=0,j=0;i<Level&&j<Level;i++,j++){if(dReverseMatrix[i,j]==0){intm=i;for(;dMatrix[m,j]==0;m++);if(m==Level)returnnull;else{for(intn=j;n<2*Level;n++)dReverseMatrix[i,n]+=dReverseMatrix[m,n];}}x=dReverseMatrix[i,j];if(x!=1){for(intn=j;n<2*Level;n++)if(dReverseMatrix[

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論