课程作业2-计算内定向参数_第1页
课程作业2-计算内定向参数_第2页
课程作业2-计算内定向参数_第3页
课程作业2-计算内定向参数_第4页
课程作业2-计算内定向参数_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业数字摄影测量作业报告计算内定向参数2010 年 12 月 10 日1 作业任务 -32 作业思想 -33 已知条件及数据-34 作业过程 -35 源程序 - 46 作业成果 - 177心得体会与建议- 171 作业任务根据仿射变换公式,由已知数据(像点的像素坐标和像平面直角坐标)编程解算出仿射变换参数。2作业思想内定向确定像素坐标(I , J)与像平面坐标(x , y)的转换关系,可以运用仿射变换公式。设框标的像素坐标为,以像主点为原点的像平面直角坐标为(x , y)则

2、它们之间的关系可用仿射变换公式表示,即式中:、为6个仿射变换参数,其中包含像素坐标与像平面直角坐标之间的平移、旋转关系以及数字影像的部分系统误差(如底片变形误差、物镜畸变差和扫描仪误差等)。在实际编程作业中,根据上式,可列出矩阵式:编写代码,可求出仿射变换参数、。3作业条件及数据像点的像素坐标及直角坐标由上机实习所得数据给出,见下表:表1点号像素坐标像平面坐标x(mm)y(mm)x(m)y(m)1128.2202.-103.947-103.95222184.102.103.945103.9243105.124.-103.937103.92742206.2179.103.958-103.9525

3、26.1164.-112.966-0.00562285.1140.112.99-0.01571143.22.0.003113.00181168.2281.0.026-112.9714 源程序#include #include #include #include#includeconst int N=8;int i,j;double zjzbNN,xszbNN,csNN,zjzbTNN,xszbTNN;/求转置矩阵templatevoid Transpose(T1*mat1,T2*mat2,int a,int b)for(i=0;ia;i+)for(j=0;jb;j+)mat2ji=mat1ij

4、;return;/求矩阵的乘积templatevoid Array_mul(T1*mat1,T2 * mat2,T2 * result,int a,int b,int c) int i,j,k;for(i=0;ia;i+)for(j=0;jc;j+)resultij=0;for(k=0;kb;k+)resultij+=mat1ik*mat2kj;return;/求逆矩阵inverse(double ANN,int m)int i=0,j=0,k=0;double C2020,B2020;for(i=0;i2*m;i+) for(j=0;j2*m;j+) if(i=j) Cij=1.0; els

5、e Cij=0.0;for(i=0;im;i+) for(j=0;jm;j+)Bij=Aij;for(i=0;im;i+) for(j=m;j2*m;j+)Bij=Cij-m;cout.precision(5);for(k=0;km;k+)for(i=k;i=0;j-)if(Bik!=0)Bij=Bij/Bik; for(i=m-1;ik;i-)if(Bik=0)continue; for(j=0;j2*m;j+) Bij=Bij-Bkj; for(k=1;km;k+) for(i=0;i=i;j-) Bij=Bij-Bik*Bkj;for(i=0;im;i+) for(j=0;jm;j+)A

6、ji=Bjm+i; return 1; /原始数据导入void Input()ifstream infile; infile.open(原始坐标数据.txt); if(infile.is_open() while(!infile.eof ()for(int i=0;ixszbi0;infile.ignore(1); infilexszbi1;infile.ignore(1); infilexszbi2;infile.ignore(1); infilezjzbi0;infile.ignore(1); infilezjzbi1;infile.ignore(1); infile.close(); v

7、oid main()Input();Transpose(zjzb,zjzbT,8,8);Transpose(xszb,xszbT,8,8); inverse(xszbT,8);Array_mul(zjzbT,xszbT,cs,8,8,8); cout计算得仿射变换参数:endl;for(i=0;i2;i+)for(j=0;j3;j+)if(j%3=0)coutendl;coutcsij ;coutendl;/输出结果ofstream outfile;outfile.open(结果数据(仿射变换参数).txt);if(outfile.is_open () for(i=0;i2;i+) for(j=0;j3;j+) if(j%3=0) outfileendl; outfilecsij ; outfileendl; outfile.close();6 计算结果即7 心得体会与建议 这次作业说实话很惭愧,一开始根本不知道有这样一个作业,可能上机课那天走神了。后来知道的时候已经是离作业布置很久之后,才又翻开前面学习的这部分内容,又看了一遍,发现这个作业完成起来应该不难,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论