资源简介
摄影课程实习编程,摄影测量相对定向绝对定向程序,根据117个点的立体像对进行相对定向绝对定向。
代码片段和文件信息
//相对定向的迭代结果有些偏差
//绝对定向模型比例尺确定有问题 结果未收敛 偏差较大
#include “stdafx.h“
#include
#include
#include
#include
#include
#include
using namespace std;
#define N1 1
#define N3 117
struct data_camera_result
{
double x0;
double y0;//像主点坐标
double f;
//主距
double CCD;//CCD像素大小
double k1;
double k2;//径向畸变差参数
double p1;
double p2;//切向畸变差参数
double a;
double b;//像元仿射变换参数
};
struct data_point_result
{
int point;//疑问:若用char point 会出现Unhandled exception in .exe 0xC0000005 access violation 的错误
double X;
double Y;
double Z;//控制点坐标
int m;
int n;
int p;
double x1;
double y1; //左影像上的像点坐标
int q;
double x2;
double y2;//右影像上的像点坐标
};
/*相机参数文件导入*/
int read_data1(struct data_camera_result da1[])
{
FILE *fp;
int i=0;
if((fp = fopen(“bundleadjustment_SCBA_Camera_Result.scbacmr““r“)) == NULL)
{
printf(“\n文件无法打开,程序退出!\n“);
exit(0);
}
//检验
cout< while(fscanf(fp “%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf“ &da1[i].x0 &da1[i].y0 &da1[i].f &da1[i].CCD &da1[i].k1&da1[i].k2&da1[i].p1&da1[i].p2&da1[i].a&da1[i].b) >1)
{//检验
cout< //检验
cout< i++;
}
return i;
}
void printf_data1(struct data_camera_result da1[] int n)
{
int i;
for(i=0;i printf(“\n%.4f%.4f%.4f%.4f%.3e%.3e%.3e%.3e%.3e%.3e\n“da1[i].x0 da1[i].y0 da1[i].f da1[i].CCD da1[i].k1da1[i].k2da1[i].p1da1[i].p2da1[i].ada1[i].b);
}
/*控制点及其像点信息文件数据导入*/
int read_data3(struct data_point_result da3[])
{
FILE *fp;
int i = 0;
if((fp = fopen(“bundleadjustment_SCBA_Point_Result.scbapts““r“)) == NULL)
{
printf(“\n文件无法打开,程序退出!\n“);
exit(0);
}
while(fscanf(fp “%d%lf%lf%lf%d%d%d%lf%lf%d%lf%lf“ &da3[i].point &da3[i].X &da3[i].Y &da3[i].Z &da3[i].m&da3[i].n&da3[i].p&da3[i].x1&da3[i].y1&da3[i].q&da3[i].x2&da3[i].y2) > 1)
{ //检验
cout< i++;
}
return i;
}
void printf_data3(struct data_point_result da3[] int n)
{
int i;
for(i=0;i printf(“\n%4d%.4f%.4f%.4f%d%d%d%.4f%.4f%d%.4f%.4f\n“ da3[i].point da3[i].X da3[i].Y da3[i].Z da3[i].mda3[i].nda3[i].pda3[i].x1da3[i].y1da3[i].qda3[i].x2da3[i].y2);
}
/*矩阵相乘子程序*/
void Mult(double *m1double *m2double *resultint i_1int j_12int j_2)
{ int i=0j=0k=0;
for(i=0;i for(j=0;j result[i*j_2+j]=0.0;
for(k=0;k result[i*j_2+j]+=m1[i*j_12+k]*m2[j+k*j_2];
}
}
/*矩阵求逆子程序*/
int Invers_matrix(double *m1int n)
{
int *is*js;
int i=0jkluv;
- 上一篇:《 C++编程思想》(第二版)练习题答案
- 下一篇:Hough变换C++程序
相关资源
- 摄影测量相对定向VC++程序
- 摄影测量内定向程序
- 摄影测量 单向空间后方交会程序
- 摄影测量单张相片空间后方交会
- 相对定向 摄影测量 C++完整能运行代码
- 单片空间后方交会C++程序代码数据来
- 摄影测量后方交会、前方交会程序
- GPS应用程序设计 卫星位置计算,绝对
- 摄影测量学 单向空间后方交会 c++
- 空间后方交会代码
- 单像空间后方交会程序
- c++读取JPG图片,完成计算机视觉中的
- 空间后方、前方交会算法的C++实现
- 连续像对相对定向
- 光束法区域平差c++程序
- 摄影测量绝对定向
- 摄影测量像立体像对的前方交会
- 单片空间后方交会c++
- 绝对定向mfc源程序
- 摄影测量直接线性变换DLTVC++程序代码
- 摄影测量空间后方交会程序合集,含
- 单向空间后方交会实验代码
- 空间后方交会C++
- 摄影测量后方交会程序
- 摄影测量学程序后方交会
- 摄影测量前方交会源码C++
- 近景摄影测量-单片空间后方交会程序
评论
共有 条评论