目录

  • 一、题目
  • 二、理论基础
  • 三、MATLAB代码

一、题目


二、理论基础

三、MATLAB代码

clc;clear;
%输入初值
%像点坐标,单位统一化,以米为单位
imgPt_X=[-86.15,-53.40,-14.78,10.46];
imgPt_Y=[-68.99,82.21,-76.63,64.43];
imgPt_X=imgPt_X/1000;
imgPt_Y=imgPt_Y/1000;
%物方坐标
objPt_X=[36589.41,37631.08,39100.97,40426.54];
objPt_Y=[25273.32,31324.51,24934.98,30319.81];
objPt_Z=[2195.17,728.69,2386.50,757.31];%比例尺,焦距同一单位为米,旋转矩阵的初始化。
lamda=50000;
f=153.24*0.001;
R=zeros(3);%初值X0,Y0,Z0,phi0,omega0,kappa0
X0=sum(objPt_X)/4;
Y0=sum(objPt_Y)/4;
Z0=sum(objPt_Z)/4+f*lamda;
%组成外方位元素的初值,External=[△X,△Y,△Z,△φ,△w,△k]
External=[X0,Y0,Z0,0,0,0];
%循环次数
num=0;
%点的个数
i=4;
%像点坐标的近似值
approximate_x=[0];
approximate_y=[0];
%计算L
l=cell(1,4);
value_temp=[];
while 1%计算旋转矩阵RR=[cos(External(4)),0,-sin(External(4));0,1,0;sin(External(4)),0,cos(External(4))]*[1,0,0;0,cos(External(5)),-sin(External(5));0,sin(External(5)),cos(External(5))]*[cos(External(6)),-sin(External(6)),0;sin(External(6)),cos(External(6)),0;0,0,1];%循环计算每个点,当点没有计算完的时候:while i>0%共线方程中的Xbar,Ybar,ZbarX_=R(1,1)*(objPt_X(i)-External(1))+R(2,1)*(objPt_Y(i)-External(2))+R(3,1)*(objPt_Z(i)-External(3));Y_=R(1,2)*(objPt_X(i)-External(1))+R(2,2)*(objPt_Y(i)-External(2))+R(3,2)*(objPt_Z(i)-External(3));Z_=R(1,3)*(objPt_X(i)-External(1))+R(2,3)*(objPt_Y(i)-External(2))+R(3,3)*(objPt_Z(i)-External(3));%根据共线方程求得x,y的近似值(x),(y)approximate_x(i)=-f*(X_)/(Z_);approximate_y(i)=-f*(Y_)/(Z_);%计算Lx=x-(x),Ly=y-(y)value_temp(1,1)=imgPt_X(i)-approximate_x(i);value_temp(2,1)=imgPt_Y(i)-approximate_y(i);l(1,i)={value_temp};%计算A矩阵:a11=1/Z_*(R(1,1)*f+R(1,3)*approximate_x(i));a12=1/Z_*(R(2,1)*f+R(2,3)*approximate_x(i));a13=1/Z_*(R(3,1)*f+R(3,3)*approximate_x(i));a21=1/Z_*(R(1,2)*f+R(1,3)*approximate_y(i));a22=1/Z_*(R(2,2)*f+R(2,3)*approximate_y(i));a23=1/Z_*(R(3,2)*f+R(3,3)*approximate_y(i));a14=approximate_y(i)*sin(External(5))-(approximate_x(i)/f*(approximate_x(i)*cos(External(6))-approximate_y(i)*sin(External(6)))+f*cos(External(6)))*cos(External(5));a15=-f*sin(External(6))-approximate_x(i)/f*(approximate_x(i)*sin(External(6))+approximate_y(i)*cos(External(6)));a16=approximate_y(i);a24=-approximate_x(i)*sin(External(5))-(approximate_y(i)/f*(approximate_x(i)*cos(External(6))-approximate_y(i)*sin(External(6)))-f*sin(External(6)))*cos(External(5));a25=-f*cos(External(6))-approximate_y(i)/f*(approximate_x(i)*sin(External(6))+approximate_y(i)*cos(External(6)));a26=-approximate_x(i);%记录每个点的A矩阵,组成单元A{i}=[a11,a12,a13,a14,a15,a16;a21,a22,a23,a24,a25,a26];%点的个数减一i=i-1;end%当所有点计算完毕,将A单元cell转换为A_矩阵:A_=[A{1};A{2};A{3};A{4}];L=[l{1};l{2};l{3};l{4}];%计算改正值^xx=inv(A_'*A_)*A_'*L;num=num+1;%改正外方位元素的值:[△X,△Y,△Z,△φ,△w,△k],旧的外方位元素+改正值External(1:6)=External(1:6)+x(1:6)';%迭代结束条件,角元素改正值都小于0.000001并且线元素均小于0.01if abs(x(4))<0.000001&&abs(x(5))<0.000001&&abs(x(6))<0.000001&& abs(x(1))<0.001&&abs(x(2))<0.001&&abs(x(3))<0.001||num>=10%像点坐标的改正值V=A_*x-L;%单位权中误差sigma0=sqrt(V'*V/(2*4-6));Q=inv(A_'*A_);%外方位元素的精度sigma=Q^0.5*sigma0;for i=0:3nimgPt_X(i+1)=(imgPt_X(i+1)+V(2*i+1))*1000;nimgPt_Y(i+1)=(imgPt_Y(i+1)+V(2*i+2))*1000;endbreak;end%继续迭代,将点的个数重新记为4i=4;
end
%输出结果
disp("外方位元素:");
disp(External);
disp("旋转矩阵R:");
disp(R);
disp("改正后的像X坐标:");
disp(nimgPt_X);
disp("改正后的像Y坐标:");
disp(nimgPt_Y);
disp("单位权中误差:");
disp(sigma0);
disp("外方位元素精度:");
disp(sigma);

参考结果:

解析摄影测量之单像空间后方交会(MATLAB)相关推荐

  1. 单像空间后方交会(C语言)

    单像空间后方交会(C语言) 1 原理介绍 1.1 定义 1.2 基本思想 1.3 详细计算 1.4 精度评定 2 问题求解 2.1 问题重述 2.2 问题解读与说明 2.3 c语言求解实现代码 2.4 ...

  2. 双象空间前方交会代码_单像空间后方交会和双像解析空间后方-前方交会的算法程序实现...

    单像空间后方交会和双像解析空间后方 - 前 方交会的算法程序实现 遥感科学与技术 摘要:如果已知每张像片的 6 个外方位元素,就能确定被摄物体与航摄像片的关系.因此, 利用单像空间后方交会的方法,可以 ...

  3. 单像后方交会、pnp问题迭代计算的数学原理

    先提出几个问题: 1.为什么后方交会要迭代法? 2.这个求"改正数"的迭代法怎么保证收敛? 3.这个迭代法的精度分析? 4.单像后方交会与PNP问题有什么联系? 参考<数值分 ...

  4. 抖音号运营爆量爆单技巧

    泛知识付费2.0时代,短视频.直播间成为了知识传播的重要阵地,只要有技能干货,不论是行业大咖,还是精通某领域的普通人,都有机会成为大众的"老师",依靠输出视频.音频等内容课程来知识 ...

  5. 有滞后单容对象MATLAB仿真,自动化生产线实训实验报告

    <自动化生产线实训实验报告>由会员分享,可在线阅读,更多相关<自动化生产线实训实验报告(47页珍藏版)>请在人人文库网上搜索. 1.北京科技大学自动化生产线实训实验报告班 级: ...

  6. 【caffe-Windows】以mnist为例的hdf5单标签处理——matlab实现

    前言 主要是想尝试看一下多标签的caffe是如何进行输入输出的,但是目前还未找到基于原始caffe做多标签输入的代码,大部分都是基于源码做了一部分修改实现多标签分类,caffe官网倒是有一个多标签的P ...

  7. 单因素模糊评价matlab,用matlab进行模糊综合评判

    考虑一个服装评判的问题,为此建立因素集U={u1,u2,u3,u4},其中u1表示花色,u2表示式样,u3表示耐穿程度,u4表示价格,建立评判集V={v1,v2,v3,v4},其中v1表示很欢迎,v2 ...

  8. 单因素模糊评价matlab,模糊综合评判matlab源程序

    <模糊综合评判matlab源程序>由会员分享,可在线阅读,更多相关<模糊综合评判matlab源程序(6页珍藏版)>请在人人文库网上搜索. 1.模糊综合评判matlab源程序20 ...

  9. matlab实现单(双)极性,Matlab实现单(双)极性(不)归零码

    Matlab实现单(双)极性(不)归零码 内容大纲 Matlab实现单极性不归零波形(NRZ),0 1 幅值 Matlab实现单极性归零波形(RZ),0 1 幅值 Matlab实现双极性不归零波形,- ...

最新文章

  1. 自动化测试(二) 单元测试junit的Test注解突然不能使用原因以及解决方案
  2. python多线程并行编程_Python并行编程(二):基于线程的并行
  3. 在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
  4. 加速Java应用开发速度3——单元/集成测试+CI
  5. exchange2003客户端无法收发邮件的一次处理过程
  6. summernote 字体名字不显示_觉得 Windows 10 显示字体不好看吗? 教你轻松更换成 Mac 字体版本。...
  7. 字节跳动8年经验,亲身经历教你如何从小白晋升月薪过万的测试工程师
  8. 【打印机】mac上添加打印机
  9. html.ex.day02
  10. 【Excel-2010】人口金字塔图
  11. 平凡程序员一年又一年的感悟(2019)
  12. 程序员必备的几款文档编辑器
  13. 20230216 作业
  14. 10. kafka消费者如何分配分区
  15. sublime text3插件使用
  16. 亚马逊、Lazada、shopee、wish、ebay、速卖通、阿里国际站、mercari、newegg测评,补单自养号攻略(环境方案详解)
  17. CSS 文本字体颜色设置方法。
  18. 联想昭阳E47A无线网卡指示灯不亮,搜不到无线信号,解决办法
  19. 【SolidWorks宏】VBA操作SolidWorks程序对象
  20. TUTK 手机客户端注意事项

热门文章

  1. 如何给PDF文件所有页面添加背景图片
  2. 开漏输出和推挽输出总结(一看就懂)
  3. 关于华为机试会不会考原题Od的问题?
  4. 案例二:推荐好友的好友
  5. python学习笔记1.4 对象和模块
  6. AI芯片发展现状及前景分析
  7. Nmap网络扫描使用手册(from it8g)
  8. 通过设置PHPSESSID保存到cookie实现免登录
  9. Guitar Pro8版本新增更新近30项功能
  10. 伪随机序列调相位C语言,伪随机序列的研究与仿真.doc