“齐次坐标:的理解

数学中,齐次坐标能简化仿射变换的矩阵表法,也能用以在射影空间中作运算。

所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。
例如:
 
  
对于一个向量v以及基oabc,可以找到一组坐标(v1,v2,v3),使得v = v1 a + v2 b + v3 c (1)
而对于一个点p,则可以找到一组坐标(p1,p2,p3),使得 p – o = p1 a + p2 b + p3 c (2),
从上面对向量和点的表达,我们可以看出为了在坐标系中表示一个点(如p),我们把点的位置看作是对这个基的原点o所进行的一个位移,即一个向量——p – o(有的书中把这样的向量叫做位置向量——起始于坐标原点的特殊向量),我们在表达这个向量的同时用等价的方式表达出了点p:p = o + p1 a + p2 b + p3 c (3)
(1)(3)是坐标系下表达一个向量和点的不同表达方式。这里可以看出,虽然都是用代数分量的形式表达向量和点,但表达一个点比一个向量需要额外的信息。如果我写出一个代数分量表达(1, 4, 7),谁知道它是个向量还是个点!
我们现在把(1)(3)写成矩阵的形式:v = (v1 v2 v3 0) X (a b c o)
p = (p1 p2 p3 1) X (a b c o),这里(a,b,c,o)是坐标基矩阵,右边的列向量分别是向量v和点p在基下的坐标。这样,向量和点在同一个基下就有了不同的表达:3D向量的第4个代数分量是0,而3D点的第4个代数分量是1。像这种这种用4个代数分量表示3D几何概念的方式是一种齐次坐标表示。
这样,上面的(1, 4, 7)如果写成(1,4,7,0),它就是个向量;如果是(1,4,7,1),它就是个点。下面是如何在普通坐标(Ordinary Coordinate)和齐次坐标(Homogeneous Coordinate)之间进行转换:
(1)从普通坐标转换成齐次坐标时
如果(x,y,z)是个点,则变为(x,y,z,1);
如果(x,y,z)是个向量,则变为(x,y,z,0)
(2)从齐次坐标转换成普通坐标时 
如果是(x,y,z,1),则知道它是个点,变成(x,y,z);
如果是(x,y,z,0),则知道它是个向量,仍然变成(x,y,z)
以上是通过齐次坐标来区分向量和点的方式。从中可以思考得知,对于平移T、旋转R、缩放S这3个最常见的仿射变换,平移变换只对于点才有意义,因为普通向量没有位置概念,只有大小和方向.
而旋转和缩放对于向量和点都有意义,你可以用类似上面齐次表示来检测。从中可以看出,齐次坐标用于仿射变换非常方便。
此外,对于一个普通坐标的点P=(Px, Py, Pz),有对应的一族齐次坐标(wPx, wPy, wPz, w),其中w不等于零。比如,P(1, 4, 7)的齐次坐标有(1, 4, 7, 1)、(2, 8, 14, 2)、(-0.1, -0.4, -0.7, -0.1)等等。因此,如果把一个点从普通坐标变成齐次坐标,给x,y,z乘上同一个非零数w,然后增加第4个分量w;如果把一个齐次坐标转换成普通坐标,把前三个坐标同时除以第4个坐标,然后去掉第4个分量。
由于齐次坐标使用了4个分量来表达3D概念,使得平移变换可以使用矩阵进行,从而如F.S. Hill, JR所说,仿射(线性)变换的进行更加方便。由于图形硬件已经普遍地支持齐次坐标与矩阵乘法,因此更加促进了齐次坐标使用,使得它似乎成为图形学中的一个标准。
 
  

维基百科解释

定义

  K  上的  n  维射影空间中一点的齐次坐标通常写作  (x_0: \cdots: x_n) ,其中  x_0, \ldots, x_n \in K-\{0\}  不全为零。两组成比例的表法  (x_0: \cdots :x_n)  与 (cx_0: \cdots : cx_n) c \in K )被视为同一个坐标。

齐次坐标系可作如下解释:考虑一个 n+1 维的向量空间 V,透过选定 V 的基底引入坐标,则 V 中所有非零向量在等价关系 \vec v \sim \vec w \iff \exists c \in K, v=cw下形成的商集\mathbb{P}(V) 由上述齐次坐标刻划;而这个商集无非就是射影空间。

性质

射影空间 \mathbb{P}_K^n 可以写成联集 \mathbb{P}_K^n = \bigcup_{i=0}^n U_i,其中

U_i := \{ (x_0: \cdots : x_n) \in \mathbb{P}_K^n : x_i \neq 0 \}

在任一 U_i 上,齐次坐标透过下述映射

(x_0 : \cdots : x_n) \in U_i \mapsto \left( \dfrac{x_0}{x_i}, \cdots, \dfrac{x_{i-1}}{x_i}, \dfrac{x_{i+1}}{x_i} \cdots \dfrac{x_n}{x_i} \right)

化约为一般的 n 维仿射坐标。因此 U_i \cong \mathbb{A}^n_K

例子

取三维射影空间为例,此时坐标形如 (x:y:z:w)无穷远平面通常被定为子集 w=0,在此平面之外总是可以同除以 w,因而无穷远平面的补集透过映射 (x,y,z) \mapsto (x:y:z:1) 等同于我们熟悉的三维仿射空间。

若我们试图考虑平面 x=w 与 x=2w 的交集,则显然可先后导出 w=0 与 x=0,这告诉我们交集落在无穷远平面,其坐标形如 (0:y:z:0),它事实上是连接 (0:1:0:0) 与 (0:0:1:0) 的直线。


你可能感兴趣的:(计算机视觉,数学)