- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程作业2--计算内定向参数
数字摄影测量作业报告
计算内定向参数
2010 年 12 月 10 日
1 作业任务 ------------------------------------------------------------------------------------ 3
2 作业思想 --------------------------------------------------------------------------------------- 33 已知条件及数据-------------------------------------------------------------------- 3
4 作业过程 --------------------------------------------------------------------------- 3
5 源程序 ----------------------------------------------------------------------------- 4
6 作业成果 --------------------------------------------------------------------------- 17
7心得体会与建议----------------------------------------------------------------------------- 17
1 作业任务
根据仿射变换公式,由已知数据(像点的像素坐标和像平面直角坐标)编程解算出仿射变换参数。
2作业思想
内定向确定像素坐标(I , J)与像平面坐标(x , y)的转换关系,可以运用仿射变换公式。设框标的像素坐标为,以像主点为原点的像平面直角坐标为(x , y)则它们之间的关系可用仿射变换公式表示,即
式中:、为6个仿射变换参数,其中包含像素坐标与像平面直角坐标之间的平移、旋转关系以及数字影像的部分系统误差(如底片变形误差、物镜畸变差和扫描仪误差等)。
在实际编程作业中,根据上式,可列出矩阵式:
编写代码,可求出仿射变换参数、。
3作业条件及数据
像点的像素坐标及直角坐标由上机实习所得数据给出,见下表:
表1
点号 像素坐标 像平面坐标 x(mm) y(mm) x(m) y(m) 1 128.5017593 2202.536262 -103.947 -103.952 2 2184.233259 102.2687655 103.945 103.924 3 105.9170339 124.7163795 -103.937 103.927 4 2206.669013 2179.987241 103.958 -103.952 5 26.9936689 1164.716996 -112.966 -0.005 6 2285.718348 1140.079603 112.99 -0.015 7 1143.958682 220.003 113.001 8 1168.805755 2281.472329 0.026 -112.971
4 源程序
#include iomanip.h
#include stdlib.h
#include math.h
#includefstream.h
#includeiostream.h
const int N=8;
int i,j;
double zjzb[N][N],xszb[N][N],cs[N][N],zjzbT[N][N],xszbT[N][N];
//求转置矩阵
templatetypename T1,typename T2void Transpose(T1*mat1,T2*mat2,int a,int b)
{
for(i=0;ia;i++)
for(j=0;jb;j++)
mat2[j][i]=mat1[i][j];
return;
}
//求矩阵的乘积
templatetypename T1,typename T2void 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++)
{result[i][j]=0;
for(k=0;kb;k++)
result[i][j]+=mat1[i][k]*mat2[k][j];
}
}
return;
}
//求逆
文档评论(0)