共线方程、旋转矩阵、转移向量等摄影测量知识综合
参考链接: https://wenku.baidu.com/view/606da2a1240c844769eaee7e.html?qq-pf-to=pcqq.group
https://blog.csdn.net/fireflychh/article/details/82352710
先验知识:
(1)内方位元素:表示摄影中心与像片之间相关位置(姿态)的参数,共三个参数:
1)摄影中心s到像片的垂距;
2)像主点O在框标坐标系中的坐标(x0 , y0);
外方位元素:摄影中心在物方坐标系中的三维坐标和姿态(共6个参数);
(2)四个坐标系:
1)框标坐标系:二维像平面坐标系;
2)像空间坐标系:Z轴垂直于二维像平面,X、Y轴平行于框标坐标系的X、Y轴;
3)像空间辅助坐标系(像辅坐标系):其一是取铅垂方向为z轴,航向为X轴,构成右手直角坐标系;
4)大地坐标系,也称物方坐标系:该坐标系与上面的像辅坐标系X、Y、Z轴均平行,只是原点位置不同,上者的原点在摄影中心(相机中心),该坐标系的原点在物体中心;
示意图如下:
如上图:(Xtp , Ytp , Ztp)是物方坐标系,(X , Y , Z)是像辅坐标系,(x , y , z)是像空间坐标系,s是相机中心,a是物体A在像平面上的成像点;
1)(XA , YA , ZA):A点物方坐标;
2)(XS , YS , ZS):S点物方坐标;
3)(x , y , -f):a点像空坐标;
4)(X , Y , Z):a点像辅坐标;
另外,,其中
为相机中心到物体中心的距离,f是相机的焦距;
现在我们先来证明共线方程:
在证明共线方程之前,我们需要县引入旋转矩阵(rotation matrix)这个概念,可以参考 https://blog.csdn.net/fireflychh/article/details/82352710
详细解释如下:
注意:对于上面的旋转角度,我们规定:令右手大拇指指向旋转轴的正向,则其他手指弯曲的方向为旋转角度的正方向;
然后我们也顺便引入translation vector的概念(即转移向量),我们令:
1)To-c:物体中心在像空坐标系中的坐标;
2)Tc-o:摄影中心(相机中心)在物方坐标系中的坐标;
然后来证明共线方程:
下面引入一个比较实用的公式,可以实现从物方坐标系到二维像平面坐标系的转换!如下:
还有几点补充的:
(1)opencv中的两个函数:
1)cv::projectPoints(object_points2, rotation_matrix, translate_T, intrinsic_matrix, distortion_coeffs, pts_proj);
2)solvePnP()
第一个函数是给定rotation_matrix和translate_T,可以计算出物方坐标投影到对应的像坐标,第二个函数是计算出rotation_matrix和translate_T,它们均为To-c , Ro-c;
(2)一些基本的图像变换矩阵(平移、缩放、旋转):
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架