资源简介

c++类封装程序,可以实现任意多点的空间后方交会平差计算,并计算单位权中误差和各外方位元素的中误差,最后输出所有结果。

资源截图

代码片段和文件信息

#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--) // 消去对角线以上的数据  
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];//储存改正数lx,ly
double A[2][6] AtA[6][6];//法方程系数矩阵A
double X[6]X1[6];//改正数

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;}
}
//得到旋转矩阵
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\link-cvtres.read.1.tlog

     文件          2  2015-10-31 00:16  Resection\Resection\Debug\link-cvtres.write.1.tlog

     文件          2  2015-10-31 00:16  Resection\Resection\Debug\link-rc.read.1.tlog

     文件          2  2015-10-31 00:16  Resection\Resection\Debug\link-rc.write.1.tlog

     文件       1518  2015-10-31 00:16  Resection\Resection\Debug\link.command.1.tlog

     文件       3156  2015-10-31 00:16  Resection\Resection\Debug\link.read.1.tlog

     文件        736  2015-10-31 00:16  Resection\Resection\Debug\link.write.1.tlog

     文件      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个文件信息

评论

共有 条评论