資源簡介
c++類封裝程序,可以實現(xiàn)任意多點的空間后方交會平差計算,并計算單位權(quán)中誤差和各外方位元素的中誤差,最后輸出所有結(jié)果。

代碼片段和文件信息
#include?“stdafx.h“
#include?“Photogrammetry.h“
#include?“math.h“
Photogrammetry::Photogrammetry(void)
{
}
Photogrammetry::~Photogrammetry(void)
{
}
Photogrammetry::Photogrammetry(int?num1?double?point[]double?f1double?xdouble?yint?scale1)
{
int?i;
num=num1;
f=f1/*/1000*/x0=xy0=yscale=scale1;
rawpoint?=?new?double[num*5];
for(i=0;i {rawpoint[i]=point[i];}
}
void?Photogrammetry::inverse(double?c[6][6]int?n)
{
int?ijhk;
double?p;?
double?q[6][12];?
for(i=0;i for(j=0;j q[i][j]=c[i][j];?
for(i=0;i for(j=n;j<12;j++)
{?
if(i+6==j)?
q[i][j]=1;
else?
q[i][j]=0;?
}?
for(h=k=0;k for(i=k+1;i {?
if(q[i][h]==0)??
continue;?
p=q[k][h]/q[i][h];
for(j=0;j<12;j++)?
{?
q[i][j]*=p;?
q[i][j]-=q[k][j];
}?
}?
for(h=k=n-1;k>0;k--h--)?//?消去對角線以上的數(shù)據(jù)??
for(i=k-1;i>=0;i--)???
{?
if(q[i][h]==0)?
continue;?
p=q[k][h]/q[i][h];?
for(j=0;j<12;j++)
{?
q[i][j]*=p;?
q[i][j]-=q[k][j];???
}?
}
for(i=0;i {?
p=1.0/q[i][i];????
for(j=0;j<12;j++)?
q[i][j]*=p;?
}?
for(i=0;i for(j=0;j c[i][j]=q[i][j+6];
}?
void?Photogrammetry::Measure(double?result[6])
{
double?minn=0.00000000001;
Xs=0.0Ys=0.0Zs=0.0Omega=0.0Kappa=0.0Phi=0.0;
/*double?deltaXdeltaYdeltaZdeltaOdeltaKdeltaP;*/
double?*x?=?new?double[num*2];//儲存(x)(y)
double?*L=new?double[num*2];//儲存改正數(shù)lx,ly
double?A[2][6]?AtA[6][6];//法方程系數(shù)矩陣A
double?X[6]X1[6];//改正數(shù)
bool?isok=false;//判斷是否完成迭代
//double?Det;
int?imnkjtimes=0;
double?**At=new?double*[6];
for(i=0;i<6;i++)
{At[i]=new?double[num*2];}
double?**Mid=new?double*[6];
for(i=0;i<6;i++)
{Mid[i]=new?double[num*2];}
for(i=0;i<6;i++)
{
for(j=0;j {Mid[i][j]=0;At[i][j]=0;}
}
for(i=0;i<6;i++)//初始化
{
for(n=0;n<6;n++)
{AtA[i][n]=0;AtA_1[i][n]=0;}
X[i]=0;X1[i]=9999999;
}
for(i=0;i {
Xs=Xs+rawpoint[i*5+2];
Ys=Ys+rawpoint[i*5+3];
}
Xs=Xs/num;Ys=Ys/num;Zs=scale*f/1000;
//Xs0=XsYs0=YsZs0=ZsOmega0=OmegaKappa0=KappaPhi0=Phi;
/*printf(“外方位元素:%lf??%lf??%lf\n“XsYsZs);*/
while(!isok)
{
for(i=0;i<6;i++)//再初始化
{
for(n=0;n<6;n++)
{AtA[i][n]=0;AtA_1[i][n]=0;}
X[i]=0;
}
for(i=0;i<6;i++)
{
for(j=0;j {Mid[i][j]=0;At[i][j]=0;}
}
//得到旋轉(zhuǎn)矩陣
R[0][0]=cos(Phi)*cos(Kappa)-sin(Omega)*sin(Phi)*sin(Kappa);//a1
R[0][1]=-cos(Phi)*sin(Kappa)-sin(Omega)*sin(Phi)*cos(Kappa);//a2
R[0][2]=-sin(Phi)*cos(Omega);//a3
R[1][0]=sin(Kappa)*cos(Omega);//b1
R[1][1]=cos(Kappa)*cos(Omega);//b2
R[1][2]=-sin(Omega);//b3
R[2][0]=sin(Phi)*cos(Kappa)+sin(Omega)*cos(Phi)*sin(Kappa);//c1
R[2][1]=-sin(Phi)*sin(Kappa)+sin(Omega)*co
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????55808??2015-10-31?00:16??Resection\Debug\Resection.exe
?????文件?????249608??2015-10-31?00:16??Resection\Debug\Resection.ilk
?????文件?????453632??2015-10-31?00:16??Resection\Debug\Resection.pdb
?????文件????2949120??2015-10-31?01:38??Resection\ipch\resection-abc8270d\resection-ad1c38d8.ipch
?????文件???????2206??2015-10-31?00:16??Resection\Resection\Debug\cl.command.1.tlog
?????文件???????3470??2015-10-31?00:16??Resection\Resection\Debug\CL.read.1.tlog
?????文件???????1526??2015-10-31?00:16??Resection\Resection\Debug\CL.write.1.tlog
?????文件??????????2??2015-10-31?00:16??Resection\Resection\Debug\li
?????文件??????????2??2015-10-31?00:16??Resection\Resection\Debug\li
?????文件??????????2??2015-10-31?00:16??Resection\Resection\Debug\li
?????文件??????????2??2015-10-31?00:16??Resection\Resection\Debug\li
?????文件???????1518??2015-10-31?00:16??Resection\Resection\Debug\li
?????文件???????3156??2015-10-31?00:16??Resection\Resection\Debug\li
?????文件????????736??2015-10-31?00:16??Resection\Resection\Debug\li
?????文件??????29989??2015-10-31?00:16??Resection\Resection\Debug\Photogrammetry.obj
?????文件???????1984??2015-10-31?00:16??Resection\Resection\Debug\Resection.Build.CppClean.log
?????文件?????????76??2015-10-31?00:16??Resection\Resection\Debug\Resection.lastbuildstate
?????文件???????2021??2015-10-31?00:16??Resection\Resection\Debug\Resection.log
?????文件???????9971??2015-10-31?00:16??Resection\Resection\Debug\Resection.obj
?????文件????1245184??2015-10-31?00:16??Resection\Resection\Debug\Resection.pch
?????文件??????11645??2015-10-31?00:16??Resection\Resection\Debug\stdafx.obj
?????文件??????76800??2015-10-31?00:16??Resection\Resection\Debug\vc110.idb
?????文件?????143360??2015-10-31?00:16??Resection\Resection\Debug\vc110.pdb
?????文件??????10297??2015-10-29?21:47??Resection\Resection\Photogrammetry.cpp
?????文件????????629??2015-10-25?20:23??Resection\Resection\Photogrammetry.h
?????文件???????1524??2015-09-28?17:51??Resection\Resection\ReadMe.txt
?????文件????????732??2015-10-29?22:14??Resection\Resection\Resection.cpp
?????文件???????4620??2015-09-29?12:12??Resection\Resection\Resection.vcxproj
?????文件???????1507??2015-09-29?12:12??Resection\Resection\Resection.vcxproj.filters
?????文件????????214??2015-09-28?17:51??Resection\Resection\stdafx.cpp
............此處省略14個文件信息
評論
共有 條評論