四个坐标系都是什么?

图像处理、立体视觉等等方向常常涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系

世界坐标相机坐标java_双目视觉

构建世界坐标系只是为了更好的描述相机的位置在哪里,在双目视觉中一般将世界坐标系原点定在左相机或者右相机或者二者X轴方向的中点。
接下来的重点,就是关于这几个坐标系的转换。也就是说,一个现实中的物体是如何在图像中成像的。

四个坐标系之间的相互转换

  • 从世界坐标系到相机坐标系

其中世界坐标相机坐标java_顺时针_02为世界坐标系下的坐标,将世界坐标系顺时针旋转世界坐标相机坐标java_世界坐标相机坐标java_03得到相机坐标系,将世界坐标相机坐标java_顺时针_02在相机坐标系下的坐标记为世界坐标相机坐标java_世界坐标系_05。z轴坐标不发生改变。相当于我们沿z轴做旋转
世界坐标相机坐标java_世界坐标系_06
如果将世界坐标系逆时针旋转世界坐标相机坐标java_世界坐标相机坐标java_03得到相机坐标系,此时得到坐标变换过程为:

世界坐标相机坐标java_图像中的各种坐标系_08

此时,我们
世界坐标相机坐标java_双目视觉_09

同理我们沿着剩下的两个坐标轴世界坐标相机坐标java_世界坐标相机坐标java_10世界坐标相机坐标java_世界坐标系_11进行旋转得到可以有剩下的两个变换矩阵世界坐标相机坐标java_顺时针_12世界坐标相机坐标java_世界坐标系_13,那么我们从世界坐标系变换到相机坐标系所需要进行的变换是世界坐标相机坐标java_双目视觉_14

接着进行平移变换得到的结果为:

  • 从相机坐标系变换到图像坐标系,属于透视投影关系,从3D转换到2D。

世界坐标相机坐标java_世界坐标系_15

此时投影点p的单位还是mm,并不是pixel,需要进一步转换到像素坐标系。

  • 从图像坐标系到像素坐标系
    像素坐标系和图像坐标系都在成像平面上,只是各自的原点和度量单位不一样。图像坐标系的原点为相机光轴与成像平面的交点,通常情况下是成像平面的中点或者叫principal point。图像坐标系的单位是mm,属于物理单位,而像素坐标系的单位是pixel,我们平常描述一个像素点都是几行几列。所以这二者之间的转换如下:其中dx和dy表示每一列和每一行分别代表多少mm,即1pixel=dx mm

    那么通过上面四个坐标系的转换就可以得到一个点从世界坐标系如何转换到像素坐标系的。

其中相机的内参和外参可以通过张正友标定获取,通过最终的转换关系来看,一个三维中的坐标点,的确可以在图像中找到一个对应的像素点,但是反过来,通过图像中的一个点找到它在三维中对应的点就很成了一个问题,因为我们并不知道等式左边的Zc的值。