齐次坐标,多视图几何,三维重建数学

     

“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”——F.S.Hill, JR

1.1首先我们先谈一下向量和点的区分问题。

   我们先用一个基和一个向量来表示一下向量和坐标。当然,这需要一定线性代数基础。忘了这部分知识的可以先回顾一下同济大学线性代数中第141页维数,基与坐标的相关知识。其实只需要知道下边这个定义就可以。


接下来我们说明向量与坐标之间的区别:






扫描二维码关注公众号,回复: 3152947 查看本文章



可以从图中看到当用一个四维空间来表示三维空间的点和向量时,向量最后一个分量是0,而点最后一个分量是1。这样就很容易区分向量和点了吧,比如三维空间中(1,2,3)用四维空间表示时(1,2,3,0),没错,就是向量。(1,2,3,1)就是点。

我们通过增加了一维来区分了点和向量,那和上边的齐次坐标有什么关系呢?看看百度百科对齐次坐标定义:齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。其实就是我们上边讲的这些东西。

1.2明白了上边这一点,我们先对普通坐标与平面坐标转换进行学习。

齐次=>普通(笛卡尔):前面n-1个坐标分量分别除以最后一个分量即可。


转化齐次坐标到笛卡尔坐标的过程中,我们有一个发现:


你会发现(1, 2, 3), (2, 4, 6) 和(4, 8, 12)对应同一个普通坐标 (1/3, 2/3),任何(1a, 2a, 3a) 对应 笛卡尔空间里面的(1/3, 2/3) 。因此,这些点是“齐次的”,因为他们代表了笛卡尔坐标系里面的同一个点。换句话说,齐次坐标有规模不变性。这个发现很有用,比如你会发现两条平行线会相交与无限远处的一个点(可以自己推到一下,也可以去看看别的文章,很简单)。

当然学过数学的看到上边公式都会产生疑问,如果w=o代表什么呢?实际上当w为零时,齐次点(x, y, 0)表示此点位于某方向的无穷远处。其实这只是一个约定俗成的看法。表示了一个无穷远处的点(极限观点,无穷大的点),描述了一个方向而不是一个位置(上边的坐标与向量的区别)。

1.3知道了这么多,那其次坐标到底有什么用呢?再看一下文章开头最后一句话,更易用于进行仿射(线性)几何变换。这句话怎么理解呢?先找相关资料补补常见的仿射变换吧(平移T,旋转R,缩放S).首先我们先从概念上去理解一下这句话:

(1)首先讨论一下三维空间中的平移,这个平移很特别,如果是一个标量,可以平移,但是一个向量呢,平移就失去了意义,所以说平移只对坐标有效,而对向量无效。这个和齐次坐标有什么用呢?在反射变换中,无论T,R还是S都是通过矩阵乘法来实现变换的。旋转和缩放坐标系可以使用3*3矩阵来实现。平移变换却不能使用3*3矩阵来实现变换。平移变换是将一个向量加上一个非零向量来实现的,而矩阵乘法中,零向量只能变换成零向量。所以为了表示平移必须扩展维数,这恰恰是齐次坐标所擅长的。

(2)对于一个2D空间来说,用3D空间齐次坐标来表示2D空间,则解决了两个问题 1是向量平移2是旋转。

                                                 



猜你喜欢

转载自blog.csdn.net/konglingshneg/article/details/75462080