1. 要通过外方位元素进行前方交会首先需要的已知量有:

  2. 然后计算左右片在地辅坐标系中旋转矩阵的方向余弦

  3. 再计算基线分量

  4. 计算像点的像空间辅助坐标

  5. 计算投影系数

  6. 计算地面点的左像辅系坐标

  7. 计算地面点的地面坐标

    具体代码如下

#include "iostream"
#include "opencv2\opencv.hpp"
using namespace std;int main()
{double phi1 = -0.005785603;double omiga1 = 0.0003784083;double kapa1 = -0.01880947;double phi2 = -0.006604103;double omiga2 = 0.0005394704;double kapa2 = 0.0007619388;double XS1 = 432438.565, YS1 = 3894841.049, ZS1 = 1274.012;double XS2 = 432847.537, YS2 = 3894836.718, ZS2 = 1272.414;double x1 = 0.029214000, y1 = -0.047640000;double x2 = 0.003936000, y2 = -0.047910000;double f = 0.0705;double rotate[2][3][3];rotate[0][0][0] = cos(phi1)*cos(kapa1) - sin(phi1)*sin(omiga1)*sin(kapa1);rotate[0][0][1] = (-1.0)*cos(phi1)*sin(kapa1) - sin(phi1)*sin(omiga1)*cos(kapa1);rotate[0][0][2] = (-1.0)*sin(phi1)*cos(omiga1);rotate[0][1][0] = cos(omiga1)*sin(kapa1);rotate[0][1][1] = cos(omiga1)*cos(kapa1);rotate[0][1][2] = (-1.0)*sin(omiga1);rotate[0][2][0] = sin(phi1)*cos(kapa1) + cos(phi1)*sin(omiga1)*sin(kapa1);rotate[0][2][1] = (-1.0)*sin(phi1)*sin(kapa1) + cos(phi1)*sin(omiga1)*cos(kapa1);rotate[0][2][2] = cos(phi1)*cos(omiga1);rotate[1][0][0] = cos(phi2)*cos(kapa2) - sin(phi2)*sin(omiga2)*sin(kapa2);rotate[1][0][1] = (-1.0)*cos(phi2)*sin(kapa2) - sin(phi2)*sin(omiga2)*cos(kapa2);rotate[1][0][2] = (-1.0)*sin(phi2)*cos(omiga2);rotate[1][1][0] = cos(omiga2)*sin(kapa2);rotate[1][1][1] = cos(omiga2)*cos(kapa2);rotate[1][1][2] = (-1.0)*sin(omiga2);rotate[1][2][0] = sin(phi2)*cos(kapa2) + cos(phi2)*sin(omiga2)*sin(kapa2);rotate[1][2][1] = (-1.0)*sin(phi2)*sin(kapa2) + cos(phi2)*sin(omiga2)*cos(kapa2);rotate[1][2][2] = cos(phi2)*cos(omiga2);cv::Mat rotate1(3, 3, CV_64FC1, rotate[0]);cv::Mat rotate2(3, 3, CV_64FC1, rotate[1]);double Bx = XS2 - XS1, By = YS2 - YS1, Bz = ZS2 - ZS1;cv::Mat xfzb1(3, 1, CV_64FC1);cv::Mat xfzb2(3, 1, CV_64FC1);cv::Mat nfw1 = (cv::Mat_<double>(3, 1) << x1, y1, -f);cv::Mat nfw2 = (cv::Mat_<double>(3, 1) << x2, y2, -f);xfzb1 = rotate1*nfw1;xfzb2 = rotate2*nfw2;double N1, N2;N1 = (Bx*nfw2.at<double>(2, 0) - Bz*nfw2.at<double>(0, 0)) / (nfw1.at<double>(0, 0)*nfw2.at<double>(2, 0) - nfw2.at<double>(0, 0)*nfw1.at<double>(2, 0));N2 = (Bx*nfw1.at<double>(2, 0) - Bz*nfw1.at<double>(0, 0)) / (nfw1.at<double>(0, 0)*nfw2.at<double>(2, 0) - nfw2.at<double>(0, 0)*nfw1.at<double>(2, 0));double derta_X, derta_Y, derta_Z;derta_X = N1*nfw1.at<double>(0, 0);derta_Y = (N1*nfw1.at<double>(1, 0) + N2*nfw2.at<double>(1, 0) + By);derta_Z = N1*nfw1.at<double>(2, 0);double zszb_X, zszb_Y, zszb_Z;zszb_X = XS1 + derta_X;zszb_Y = YS1 + derta_Y;zszb_Z = ZS1 + derta_Z;cout << "地面点的真实坐标为(" << zszb_X << "," << zszb_Y << "," << zszb_Z << ")" << endl;system("pause");return 0;
}

立体像对空间前方交会(利用外方位元素交会出地面点三维坐标)相关推荐

  1. 空间前方交会(利用相机外方位元素和像点坐标进行解算)

    目录 一.前言 二.空间前方交会 1. 前方交会的概念 2. 基本公式 三.代码展示 四.小结 一.前言   在摄影测量过程中,得到相机的外方位元素以及地面控制点对应的像点坐标之后,如何解算地面控制点 ...

  2. Matlab解算空间后方交会外方位元素

    目录 1 问题描述 2 实现部分 参考文献   本问题为武汉大学摄影测量学教材课后习题,现在用MATLAB实现,供大家学习参考. 1 问题描述   已知摄像机主距f=153.24mm,四对点的像点坐标 ...

  3. 航飞原始影像外方位元素_【技术】无人机倾斜摄影建模技术在虚拟现实中的应用...

    (如有侵权,请联系删除) 摘 要 针对于虚拟现实平台中构建三维场景的费时费力问题,基于无人机倾斜摄影建模技术构建三维模型,利用 3DS Max 建模软件进行模型优化,并结合 Unity 3D 引擎构建 ...

  4. 摄影测量外方位元素代码

    航摄相片的外方位元素表示的是摄影摄影瞬间相片上的点对于地面上的点之间的关系的一些参数,在测绘工作中,如果求出了一张航拍相片的外方位元素,那么就可以根据像素点的坐标计算出对应的地面点的坐标,而这些解算过 ...

  5. 航飞原始影像外方位元素_影响无人机航测精度的因素都有哪些?

    ‍[摘要]本文通过对1∶500 无人机航测法成图过程中误差产生的来源进行分析,研究‍提高成图精度的关键技术,经过试验建立1∶500 无人机航测法高精度成图技术路线和工艺流程,并给出实际生产项目中的具体 ...

  6. 外参矩阵(旋转矩阵+平移向量)以及外方位元素的关系

    外参包括旋转矩阵R3×3.平移向量T3×1,它们共同描述了如何把点从世界坐标系转换到摄像机坐标系,旋转矩阵描述了世界坐标系的坐标轴相对于摄像机坐标轴的方向, 平移向量描述了在摄像机坐标系下空间原点的位 ...

  7. 立体像对空间前方交会算法

    https://blog.csdn.net/qq_37554556/article/details/88363572基于这位优秀的博主有感而发,写完后和老师的答案还是不太一样,正在找原因中. //前方 ...

  8. 航飞原始影像外方位元素_浅谈大型倾斜航摄仪(飞思)的数据处理流程

    引言:虽然,现阶段无人机倾斜作业盛行,但对于大面积.特殊敏感区域上空,能及时有效获取外业倾斜数据的问题上依旧少不了大型倾斜航摄仪的身影.对于此类型数据处理,M3D同样适用.本文以飞思航摄仪数据进行处理 ...

  9. 用C#编写摄影测量后方交会求外方位元素

    程序源码程序源码下载地址 https://download.csdn.net/download/u011713916/11743497 实验原理 **详细题目: ** 编程思想: 具体代码 我使用了M ...

最新文章

  1. Linux Shell高级技巧(目录)
  2. windbg调试masm生成程序的方法
  3. IE打印控件推荐-4fang pazu
  4. ITK:计算图像中的局部噪声
  5. Spring Boot 整合Mybatis (一)
  6. Centos下安装Gcc和Qt
  7. 2.11 确定运行计划
  8. Git笔记(14) 分支开发工作流
  9. CentOS 7 安装 Python 3.6
  10. linux系统克隆安装教程,使用Clonezilla克隆Linux安装的方法
  11. Mongo db 与mysql 语法比较
  12. 金融行业密钥体系介绍(转)
  13. java多线程下如何调用一个共同的内存单元(调用同一个对象)
  14. Linux下配置安装NFS
  15. 用matlab化简三角函数方程组,matlab化简三角函数 matlab怎么样化简三角函数?
  16. 用c语言写一个求和的程序,用C语言编写一个“等比数列求和”的程序?
  17. 微信小程序之人脸识别
  18. 升级Ubuntu18.04的linux kernel(修复小米游戏本的触摸板驱动问题)
  19. 小程序项目:基于微信小程序的答题系统——计算机毕业设计
  20. 银联 backreceive.php,银联支付报文格式错误5100030

热门文章

  1. 共享书籍同类产品调研
  2. ECharts常用图例
  3. 如何正确使用HTTP代理?
  4. 什么是Moodle?
  5. oracle狎鸥亭_韩国Oracle(奥拉克)整形医院
  6. LINUX-配置环境变量
  7. 基于java+ssm+mysql的高校后勤管理系统
  8. Three.js 实现点击模型改变颜色
  9. 阿里云RPA操作——当前窗口截图
  10. 将Rtf转换为Html格式