c++类封装程序,可以实现任意多点的空间后方交会平差计算,并计算单位权中误差和各外方位元素的中误差,最后输出所有结果。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 55808 2015-10-31 00:16 ResectionDebugResection.exe
文件 249608 2015-10-31 00:16 ResectionDebugResection.ilk
文件 453632 2015-10-31 00:16 ResectionDebugResection.pdb
文件 2949120 2015-10-31 01:38 Resectionipch
esection-abc8270d
esection-ad1c38d8.ipch
文件 2206 2015-10-31 00:16 ResectionResectionDebugcl.command.1.tlog
文件 3470 2015-10-31 00:16 ResectionResectionDebugCL.read.1.tlog
文件 1526 2015-10-31 00:16 ResectionResectionDebugCL.write.1.tlog
文件 2 2015-10-31 00:16 ResectionResectionDebuglink-cvtres.read.1.tlog
文件 2 2015-10-31 00:16 ResectionResectionDebuglink-cvtres.write.1.tlog
文件 2 2015-10-31 00:16 ResectionResectionDebuglink-rc.read.1.tlog
文件 2 2015-10-31 00:16 ResectionResectionDebuglink-rc.write.1.tlog
文件 1518 2015-10-31 00:16 ResectionResectionDebuglink.command.1.tlog
文件 3156 2015-10-31 00:16 ResectionResectionDebuglink.read.1.tlog
文件 736 2015-10-31 00:16 ResectionResectionDebuglink.write.1.tlog
文件 29989 2015-10-31 00:16 ResectionResectionDebugPhotogrammetry.obj
文件 1984 2015-10-31 00:16 ResectionResectionDebugResection.Build.CppClean.log
文件 76 2015-10-31 00:16 ResectionResectionDebugResection.lastbuildstate
文件 2021 2015-10-31 00:16 ResectionResectionDebugResection.log
文件 9971 2015-10-31 00:16 ResectionResectionDebugResection.obj
文件 1245184 2015-10-31 00:16 ResectionResectionDebugResection.pch
文件 11645 2015-10-31 00:16 ResectionResectionDebugstdafx.obj
文件 76800 2015-10-31 00:16 ResectionResectionDebugvc110.idb
文件 143360 2015-10-31 00:16 ResectionResectionDebugvc110.pdb
文件 10297 2015-10-29 21:47 ResectionResectionPhotogrammetry.cpp
文件 629 2015-10-25 20:23 ResectionResectionPhotogrammetry.h
文件 1524 2015-09-28 17:51 ResectionResectionReadMe.txt
文件 732 2015-10-29 22:14 ResectionResectionResection.cpp
文件 4620 2015-09-29 12:12 ResectionResectionResection.vcxproj
文件 1507 2015-09-29 12:12 ResectionResectionResection.vcxproj.filters
文件 214 2015-09-28 17:51 ResectionResectionstdafx.cpp
............此处省略14个文件信息
#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
“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 ResectionDebugResection.exe
文件 249608 2015-10-31 00:16 ResectionDebugResection.ilk
文件 453632 2015-10-31 00:16 ResectionDebugResection.pdb
文件 2949120 2015-10-31 01:38 Resectionipch
esection-abc8270d
esection-ad1c38d8.ipch
文件 2206 2015-10-31 00:16 ResectionResectionDebugcl.command.1.tlog
文件 3470 2015-10-31 00:16 ResectionResectionDebugCL.read.1.tlog
文件 1526 2015-10-31 00:16 ResectionResectionDebugCL.write.1.tlog
文件 2 2015-10-31 00:16 ResectionResectionDebugli
文件 2 2015-10-31 00:16 ResectionResectionDebugli
文件 2 2015-10-31 00:16 ResectionResectionDebugli
文件 2 2015-10-31 00:16 ResectionResectionDebugli
文件 1518 2015-10-31 00:16 ResectionResectionDebugli
文件 3156 2015-10-31 00:16 ResectionResectionDebugli
文件 736 2015-10-31 00:16 ResectionResectionDebugli
文件 29989 2015-10-31 00:16 ResectionResectionDebugPhotogrammetry.obj
文件 1984 2015-10-31 00:16 ResectionResectionDebugResection.Build.CppClean.log
文件 76 2015-10-31 00:16 ResectionResectionDebugResection.lastbuildstate
文件 2021 2015-10-31 00:16 ResectionResectionDebugResection.log
文件 9971 2015-10-31 00:16 ResectionResectionDebugResection.obj
文件 1245184 2015-10-31 00:16 ResectionResectionDebugResection.pch
文件 11645 2015-10-31 00:16 ResectionResectionDebugstdafx.obj
文件 76800 2015-10-31 00:16 ResectionResectionDebugvc110.idb
文件 143360 2015-10-31 00:16 ResectionResectionDebugvc110.pdb
文件 10297 2015-10-29 21:47 ResectionResectionPhotogrammetry.cpp
文件 629 2015-10-25 20:23 ResectionResectionPhotogrammetry.h
文件 1524 2015-09-28 17:51 ResectionResectionReadMe.txt
文件 732 2015-10-29 22:14 ResectionResectionResection.cpp
文件 4620 2015-09-29 12:12 ResectionResectionResection.vcxproj
文件 1507 2015-09-29 12:12 ResectionResectionResection.vcxproj.filters
文件 214 2015-09-28 17:51 ResectionResectionstdafx.cpp
............此处省略14个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)