简单版相机坐标转换

简单整理一下相机坐标转换的概念, 帮助理清思路, 不会涉及很复杂的东西, 有写错的或错别字请留言告知~

坐标系说明

相机的成像过程涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。
简单版相机坐标转换

世界坐标系

客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述数码相机的位置,并且用它来描述安放在此三维环境中的其它任何物体的位置,用 (X,Y,Z) 表示其坐标值。

相机坐标系

相机坐标系又叫做光心坐标系, 以相机的光心为坐标原点, X 轴和 Y 轴分别平行于图像坐标系的 X 轴和 Y 轴,相机的光轴为 Z 轴,用 (Xc,Yc,Zc) 表示其坐标值。

图像坐标系

以CCD图像平面的中心为坐标原点,x轴和y轴分别平行于图像平面的两条垂直边,用(x,y)表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。

像素坐标系

以 CCD 图像平面的左上角顶点为原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和 Y 轴,用 (u,v)表示其坐标值。数码相机采集的图像首先是形成标准电信号的形式,然后再通过模数转换变换为数字图像。每幅图像的存储形式是 M×N 的数组, MN 列的图像中的每一个元素的数值代表的是图像点的灰度。这样的每个元素叫像素,像素坐标系就是以像素为单位的图像坐标系。

坐标系变换

1. 世界坐标系到相机坐标系

处于世界坐标系中的物体,可以仅通过一个旋转矩阵和平移矩阵就可转换到相机坐标系中。旋转矩阵和平移矩阵可以合并为一个 3×4的外参矩阵(Extrinsic Calibration Matrix)

[XcYcZc]=[r11r12r13t1r21r22r23t2r31r32r33t3][XYZ1]

2. 相机坐标系到图像坐标系

相机坐标系到图像坐标系的转换对应透视投影的过程,这一步主要完成透视除法,利用的是相似三角形原理, 为了表述简单, 先假设世界坐标系和相机坐标系重合, [X,Y,Z]=[Xc,Yc,Zc]
简单版相机坐标转换
这里的 f 是焦距, 是光心到图像坐标平面的距离.
写成齐次形式:

[xy1]=1Z[f0000f000010][XYZ1]

其中的 3×33×4的矩阵称作投影矩阵(Projection Matrix).

3. 图像坐标系到像素坐标系

图像坐标系到像素坐标系的转换主要对应仿射变换, 定义物理上的距离到像素距离的尺度因子 mx,my, 定义光心在像素坐标系的坐标与像素坐标系原点的偏移量为ox,oy, 则图像坐标系到像素坐标的转换为:

(49)u=mxx+ox(50)v=myy+oy

矩阵表示为:
[uv1]=[mx0ox0myoy001][xy1]

其中,mx 表示 x 方向上,一单位(如1mm)中所含有像素个数;同理,myy 方向上的。需要注意的是,尽管 mxmy 数值上通常非常接近,但一般并不严格相等.

另外通常还会有一项 s 为坐标轴倾斜参数 ,理想情况下为0, 即从图像坐标系到像素坐标系的变换矩阵为:

[mxsox0myoy001]

4.相机坐标系到图像坐标系

结合2, 3, 可以很直接的得到相机坐标系到图像坐标系的转换关系:
写成齐次坐标系的矩阵相乘形式:

[uv1]=1Zc[mxfsox0myfoy001][XcYcZc]

式中的 3×3 矩阵就是内参矩阵(Intrinsic Matrix)

5.世界坐标系到图像坐标系

结合1, 4, 可以很直接的得到世界坐标系到图像坐标系的转换关系:

[uv1]=1Zc[mxfsox0myfoy001][r11r12r13t1r21r22r23t2r31r32r33t3][XYZ1]

也就是常见的内参外参的乘积的形式了, (注意这里还有一项 Zc 不要看漏了)