摄影测量与计算机视觉坐标系统转换和一些基本量的关系

本文通过直观实例介绍摄影测量与三维计算机视觉中坐标系转换的基本原理,重点讲解了二维及三维空间内的旋转问题,并给出了具体计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客试图用一些最直观,形象,实例的方式解释相关概念

对于一个摄影测量学(photogrammetry)或者三维计算机视觉(3D computer vision)的学习者来说,第一个要接触的应该就是各种坐标系之间的转换,摄影测量领域有一套自己的坐标系统规则,计算机视觉也有一套自己的规则。下面就让我们看看到底它们之间是如何转换的?摄影测量中的旋转欧拉角构成的旋转矩阵 R (rotation),基线 (baseline) B 和计算机视觉中的旋转矩阵 (camera rotation) R ,平移向量 (camera translation) T ,相机位置 (camera position) C 之间到底是什么关系?

为了回答这些问题,首先我们给出两个非常直观的例子来理清楚三维空间中的旋转问题.
当谈及到空间中的旋转,我们需要特别注意两个问题:
(1)旋转的方向,即从 A 旋转到 B 还是从 B 旋转到 A
(2)旋转是顺时针 (clockwise) 还是逆时针 (counter-clockwise).
当然,它们都是相对的关系,顺时针从 A B 就是逆时针 从 B A 。好了,说的这么抽象,看一个简单的二维坐标系的例子:

假设 P 点的在 OXY 坐标系下的坐标是 (1,1) ,那么 P 点在 o1XY 坐标系下的坐标是多少呢?从图中我们可以直接看出是 (1,1) 。但是从理论上是如何计算出来的呢?我们知道 P 点在 o1XY 下的坐标是将 oXY 坐标系逆时针旋转 π2 得到的,这里需要注意的是,在旋转坐标系的时候, P 点并没有变化,我们要得到的仅仅是 P 点在不同坐标系下的表示,那么如何用矩阵来表示这一过程呢?
这里,我们首先直接给出二维坐标系顺时针旋转 θ 的公式(这里就不做推导,有兴趣可以自己推导,也很简单)。

[cosθsinθsinθcosθ]

所以上述旋转过程用矩阵表示即为:
[0110]1[11]=[11]

因为是逆时针旋转与公式中的顺时针刚好相反,所以要用逆,用转置也可以,对于旋转矩阵有这样的性质,就是: RRT=I ,所以旋转矩阵的逆和转置是一样的。
这里写图片描述
上面给的是一个二维坐标下的旋转问题,当扩展到三维坐标,会稍稍复杂一些,会涉及到旋转轴的顺序。在这里统一使用欧拉角(Euler Angle)的表示方法,三维空间表示还有其他表示方法(如,四元数(Quaternion)和轴角(Axis-Angle)表示法),这里先不做讨论。这里统一按顺时针绕 X(ω)Y(ϕ)Z(κ) 的顺序(注意,这里的角是从相机坐标系旋转到坐标系的角)。这个一般是国外摄影测量采用的标准,而国内摄影测量的标准采用的为 Y(ϕ)X(ω)Z(κ) ,而且绕 Y 轴为逆时针,X Z 轴还是顺时针旋转。这篇文章中,均采用的是国际摄影测量标准。

如图,假设点 O1 OXYZ 坐标系下的坐标为 (1,0,0) ,那么点 O1 O1X1Y1Z1 下的坐标为多少呢?从图中可以看出是 (0,0,0) ,如果用矩阵的形式该如何表示呢?这里,我们也先给出三维坐标系下,绕旋转轴顺时针旋转的公式:

Rx(ω)=1000cosωsinω0sinωcosω

Ry(ϕ)=cosϕ0sinϕ010sinϕ0cosϕ

Rz(κ)=cosκsinκ0sinκcosκ0001

所以最终的旋转矩阵为:
R=Rz(κ)Ry(ϕ)Rx(ω)=r00r10r20r01r11r21r02r12r22

r00r01r02r10r11r12r20r21r22=cosϕcosκ=cosϕsinκ=sinϕ=cosωsinκ+sinωsinϕcosκ=cosωcosκsinωsinϕsinκ=sinωcosϕ=sinωsinκcosωsinϕcosκ=sinωcosκ+cosωsinϕcdotsinκ=cosωcosϕ

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值