资源简介
利用连续像对相对定向的方法进行立体像对相对定向,得到像对方位元素
代码片段和文件信息
#include
#include
#include
const int N=8;
void Mult(double R[8][8] double b[8][8]double c[8][8] int m int t int p);
void inverse(double c[N][N]int t);
void main()
{ double R[N][N]lx[N]ly[N]rx[N]ry[N]A[N][N]l[N][N]ATA[N][N];
double f=0.024Q=0W=0K=0x=0y=0X[8][8]bubvbw;
int ijn;
int q=0k;
cout<<“请输入同名像点的对数“<>n;
lx[1]=0.001983lx[2]=0.000924lx[3]=0.001068lx[4]=0.001208lx[5]=-0.000514lx[6]=0.001293
ly[1]=-0.006091ly[2]=0.007098ly[3]=0.004538ly[4]=0.006858ly[5]=-0.010050ly[6]=-0.008089
rx[1]=-0.003202rx[2]=-0.002830rx[3]=-0.002878rx[4]=-0.002578rx[5]=-0.005642rx[6]=-0.003981
ry[1]=-0.005564ry[2]=0.007694ry[3]=0.005098ry[4]=0.007429ry[5]=-0.009152ry[6]=-0.007441 //输入像点的坐标
bu=rx[1]-lx[1];
do
{ q++;
bv=bu*x;bw=bu*y;
double R[8][8]b[8][8]l[8][8]c[8][8]A[8][8]AT[8][8]Z[8][8]ATA[8][8]d[8][8];
R[0][0]=cos(Q)*cos(K)-sin(Q)*sin(W)*sin(K);
R[0][1]=-cos(Q)*sin(K)-sin(Q)*sin(W)*cos(K);
R[0][2]=-sin(Q)*cos(W);
R[1][0]=cos(W)*sin(K);
R[1][1]=cos(W)*cos(K);
R[1][2]=-sin(W);
R[2][0]=sin(Q)*cos(K)+cos(Q)*sin(W)*sin(K);
R[2][1]=-sin(Q)*sin(K)+cos(Q)*sin(W)*cos(K);
R[2][2]=cos(Q)*cos(W); //把相对方位元素带入公式,计算得到9个方向余弦
b[0][0]=lx[1];
b[1][0]=ly[1];
b[2][0]=-f;
b[0][2]=lx[3];
b[1][2]=ly[3];
b[2][2]=-f;
b[0][4]=lx[5];
b[1][4]=ly[5];
b[2][4]=-f;
b[0][1]=lx[2];
b[1][1]=ly[2];
b[2][1]=-f;
b[0][3]=lx[4];
b[1][3] =ly[4];
b[2][3]=-f;
b[0][5]=lx[6];
b[1][5]=ly[6];
b[2][5]=-f;
d[0][0]=rx[1];
d[1][0]=ry[1];
d[2][0]=-f;
d[0][2]=rx[3];
d[1][2]=ry[3];
d[2][2]=-f;
d[0][4]=rx[5];
d[1][4]=ry[5];
d[2][4]=-f;
d[0][1]=rx[2];
d[1][1]=ry[2];
d[2][1]=-f;
d[0][3]=rx[4];
d[1][3] =ry[4];
d[2][3]=-f;
d[0][5]=rx[6];
d[1][5]=ry[6];
d[2][5]=-f; //将坐标值赋值给矩阵
Mult(Rdc336);
for(j=0;j<=5;j++)
{ l[j][0]=b[1][j]*(bu*c[2][j]-bw*c[0][j])/(c[2][j]*b[0][j]-c[0][j ]*b[2][j])-c[1][j]*(bu*b[2][j]-bw*b[0][j])/(c[2][j]*b[0][j]-c[0][j]*b[2][j])-bv;
A[j][0]=-c[0][j]*c[1][j]*(bu*b[2][j]-bw*b[0][j])/((c[2][j]*b[0][j]-c[0][j]*b[2][j])*c[2][j]);
A[j][1]=-(c[2][j]+c[1][j]*c[1][j]/c[2][j])*(bu*b[2][j]-bw*b[0][j])/(c[2][j]*b[0][j]-c[0][j]*b[2][j]);
A[j][2]=(bu*b[2][j]-bw*b[0][j])/(c[2][j]*b[0][j]-c[0][j]*b[2][j])*c[0][j];
A[j][3]=bu;
A[j][4]=-bu*c[1][j]/c[2][j];
}
for(i=0;i<=5;i++)
for(k=0;k<=4;k++)
{
AT[k][i]=A[i][k];//右片像空间坐标
}
Mult(ATAATA565);
- 上一篇:《C语言程序设计第二版》文字非扫描版PDF
- 下一篇:c++课程设计单词频率统计
评论
共有 条评论