坐标系转换
来源:互联网 发布:李强强 linux 编辑:程序博客网 时间:2024/06/05 00:36
(一)三维空间坐标互转
1 问题背景
如图,有两个坐标系空间A和B。P为空间中一点,我们目的是:根据P在B中的坐标BP,获取P在A中的坐标AP。P在A坐标系中的坐标AP,如下图所示:
P在B中的坐标BP如下图所示:
2 转换原理
讨论变换前,先确定下坐标系的方向。一共只有两种:(1) x、y、z正朝向逆时针,右手坐标系(大拇指对应x轴正向,食指对应y轴正向,中指对应z轴正向);(2) x、y、z正朝向顺时针,左手坐标系(大拇指对应x轴正向,食指对应y轴正向,中指对应z轴正向),如图:
由于这两种坐标系中,旋转角会有差异,所以我们的公式中,统一采用(1)x、y、z正朝向逆时针的右手坐标系。
(1) 平移转换
平移转换关系如上图所示,红字部分是A坐标系中坐标,蓝字是B坐标系坐标,三者关系如公式1.1所示:
(公式1.1)
(2) 旋转转换
学习旋转变换前,先了解下角度的方向。右手坐标系中角度遵循右手法则,即:右手大拇指朝向坐标轴正向,其余四指方向为旋转正方向,我们后面所说的角度都遵循这个标准。
下面,我们以绕z轴旋转为例,说明旋转转换的公式推导:
左上图是三维空间图,图中我们以z轴为轴心,右手法则正向旋转A空间,角度如图绿线部分,得到空间B。空间A和B在z轴坐标没有变化,x、y坐标发生了变化。变化后的x、y平面图如右上图所示。下图中,我们增加两条红色虚线,辅助点P在A和B两个坐标系中的坐标进行转换。
根据上图两条红色虚线,不难理解下面的转换关系公式1.2:
(公式1.2)
公式转换为矩阵表示为公式1.3:
(公式1.3)
即:
(公式1.4)
上面只是以z轴为轴心旋转的结果,同理,沿着x和y轴,也可以得到类似转换关系(以下简称cos为c,sin为s):
(公式1.5)
三个矩阵相乘,可以得到旋转变换公式:
(公式1.6)
旋转转换关系如下:
(公式1.7)
(3) 复合转换
复合变换就是综合平移变换和旋转变换,结合公式1.1、公式1.7得到公式1.8如下:
(公式1.8)
经过齐次变换之后,上公式可以转换为:
(公式1.9)
抽取转换矩阵:
(公式1.10)
最终,空间转换矩阵为:
(公式1.11)
该转换矩阵的目的,是将B坐标系中的坐标,转换为A坐标系中的坐标。perception代码中,Eigen:Matrix4d存储的,就是这个4*4矩阵,是将GPS坐标系中的坐标,转换为世界坐标。其中:
1、c和s表示cos和sin;
2、α、β、γ分别表示B空间到A空间转换,沿z、y、x轴旋转的角度;
3、第四列的x、y、z,表示B空间的原点,在A空间中的坐标;
另,该矩阵的逆矩阵,可以将A坐标系中的坐标,转换为B坐标系中的坐标。
(二)三维空间转二维图像空间
1 几种空间定义
A:三维世界坐标系,以空间中一点为原点
B:三维摄像机坐标系,以光心为原点
C:二维图像物理坐标系,以平面中心为原点
D:二维图像像素坐标系,以图像左上角为原点
本节的目的是说明如何通过三维空间坐标等参数,计算三维空间物体映射在二维图像中的位置,如下图所示:
2 三维世界坐标系(A)转三维摄像机坐标系(B)
这步中,我们的目的是将红绿灯的四个点的世界坐标系(A)坐标转换为摄像机坐标系(B)坐标,直接利用(一)中描述的三维空间坐标互转即可。
P点在A和B坐标系中的转换关系公式2.1所示:
(公式2.1)
由公式2.1推导出公式2.2:
(公式2.2)
3 三维摄像机坐标系(B)映射二维物理坐标系(C)
这步中,我们的目的是,将红绿灯顶点的摄像机坐标系(B)坐标,转换为二维物理坐标系(C)坐标。P点在B和C坐标系中的转换关系公式2.3所示:
(公式2.3)
其中的f是焦距,BZP是P点在摄像机坐标系中的z坐标,直观理解就是点P到摄像机平面的垂直距离。由公式2.3推导出公式2.4:
(公式2.4)
4 二维物理坐标系(C)映射二维像素坐标系(D)
二维物理坐标系(C)和二维像素坐标系(D)的主要区别是:1、原点不同,C的中心在摄像机中心,D的中心在图像左上角;2、转换不同,需要由C的单位毫米,转换为D的单位像素,dx和dy分别是横纵坐标的转换率(举个例子,CCD的尺寸是8mm *6mm,帧画面的分辨率设置为640X480,那么毫米与像素点之间的转换关系就是80pixel/mm。”设CCD每个像素点的物理大小为dx*dy,相应地,就有 dx=dy=1/80),转换关系如公式2.5:
(公式2.5)
由公式2.5推导出公式2.6
(公式2.6)
5 D和A的关系推导
由公式2.6、2.4、2.2推导得出:
(公式2.7)、
通过合并进一步推导:
(公式2.8)
令fx=f/dx,fy=f/dy推导得出:
(公式2.9)
上面公式就是由三维世界坐标系(A)坐标转换为二维图像坐标系(D)坐标的转换关系,其中:
D:就是BzP,直观理解是目标点P和摄像机平面的垂直距离;
M1:就是摄像机内参矩阵,主要由fx、fy、u0、v0等参数组成;
M2:是世界坐标系和摄像机坐标系的旋转矩阵,一般称为外参;
- 坐标系转换
- 坐标系转换
- 坐标系转换
- 转换坐标系
- 坐标系转换
- 各地图坐标系转换(WGS84坐标系,GCJ02坐标系,BD09坐标系)
- 各种经纬度坐标系转换-百度坐标系、火星坐标系、国际坐标系
- 坐标系转换矩阵生成
- 坐标系转换简介
- 坐标系的转换
- 平面的坐标系转换
- cocos2d坐标系转换
- FME 坐标系转换
- 机器人坐标系转换
- 【iOS开发】---- 坐标系转换
- 坐标系的转换
- ios坐标系转换
- ios坐标系转换
- redis-infq——将infQ集成到redis
- Ubuntu安装caffe指南(cpu only)
- ImageMagick使用for java(im4java)
- Xcode8.1 安装插件后进行编辑会崩溃的解决办法
- UGUI之布局实战——聊天系统
- 坐标系转换
- 解决mac中Lauchpad图标重复
- EXP-00003: 未找到段 (0,0) 的存储定义
- 省市县自关联表的数据封装
- 基于retrofit的网络框架的终极封装(一):第一层(参数组装层)的API设计
- XGBoost解决多分类问题
- 内存抖动和内存泄漏
- Netty websocket server压力测试
- 自定义MediaPlayer控制组件