跳到正文
格致开物MATHWIKI

齐次坐标

内容维护:格致开物 · 编写与核验 · 修订记录 · 纠错

齐次坐标(homogeneous coordinates)用一组非全零的数表示射影空间中的一个点,并把所有非零倍数视为同一个表示。平面情形写成 [X:Y:W];在 W≠0 的坐标区域内,它对应普通坐标 (X/W,Y/W)。增加一个坐标使平移、直线交点和射影变换可以用统一的线性代数处理。

例如,普通点 (1,2) 可以表示成 [1:2:1]、[2:4:2] 或 [−1:−2:−1]。它们表示同一个点,原因是归一化后得到相同的两个比值;并不是说三个不同的三维向量彼此相等。

非零向量的比例等价类

取非零列向量 p=(X,Y,W)𝖳∈ℝ3∖{0}。定义 p∼q⟺q=λp 对某个 λ∈ℝ∖{0}. 乘数一给出自反性;把乘数取倒数给出对称性;两次非零乘数相乘给出传递性。因此它确实是等价关系。一个等价类是同一条过原点的直线上的所有非零向量,用 [X:Y:W] 表示。这些等价类组成实射影平面 ℙ2(ℝ)。[1]

零向量不能加入:它不张成一维子空间,也无法决定任何比值。允许 λ=0 同样会把所有向量都送到零,从而失去区分点的能力。这里的比例可以为负,所以 [X:Y:W]=[−X:−Y:−W];正负两条半射线共同表示一个射影点。

在三维坐标空间的Y等于2X截面中,非零代表向量P、2P和负P位于同一条过原点的直线上,W等于一截面选出P
为便于画图,取三维向量空间的Y=2X截面,横轴t=X、纵轴W。P=(1,2,1)、2P和−P属于同一比例类;空心原点被排除。金色线W=1选出该有限点的唯一归一化代表。

有限点与无穷远点

当 W≠0 时,乘以 1/W 后得到唯一代表 [X:Y:W]=[X/W:Y/W:1]. 因此所有 W≠0 的点与普通平面一一对应;选取这个区域称为选定一个仿射坐标片。普通点 (0,0) 对应 [0:0:1],仍是合法点。

剩余点形如 [u:v:0],其中 (u,v)≠(0,0)。它们称为相对于该坐标片的无穷远点,记录平面直线的方向:[u:v:0]=[−u:−v:0],所以这里不区分同一直线的相反朝向。例如 [2:−1:0] 记录斜率为 −1/2 的方向,[0:1:0] 记录竖直方向。无穷远点不是一个额外的公共“无限大数”,不同方向对应不同点。

所有这些点满足 W=0,共同组成无穷远直线。有限与无穷远的区分依赖选定的坐标片;在一般射影变换下,有限点可以被送到无穷远,反之亦然。

直线坐标与点线关联

普通直线 ax+by+c=0 可写成齐次方程 aX+bY+cW=0. 将非零系数列向量记为 ℓ=(a,b,c)𝖳,方程就是 ℓ𝖳p=0。同时把 p 和 ℓ 乘以任意非零数只会把左边乘以非零因子,不改变等式是否成立,因此点在线上的关系不依赖代表的选择。

直线系数也只确定到一个非零倍数;(1,2,−5)𝖳 与 (2,4,−10)𝖳 表示同一直线。若 a=b=0,c≠0,得到的正是无穷远直线 W=0,其坐标可取 ℓ∞=(0,0,1)𝖳。点和线虽然都使用三元组,几何角色却不同;点线关联由上面的内积为零来判断。[2]

叉积统一连线与交点

设 p,q 是两个不同射影点的代表列向量。它们不成比例,所以线性无关,叉积非零。写出 p×q=(p2q3−p3q2p3q1−p1q3p1q2−p2q1). 将它与 p 作内积,得到 p1(p2q3−p3q2)+p2(p3q1−p1q3)+p3(p1q2−p2q1)=0; 六项两两抵消;与 q 的内积也为零。因此 ℓ=p×q 是同时经过两点的直线。再看唯一性:满足 ℓ𝖳p=ℓ𝖳q=0 的线性方程组秩为二,三维未知量的解空间为一维,故所有非零解都只差一个倍数。这证明了两不同点确定唯一射影直线。

同理,若 ℓ,m 代表两条不同射影直线,则 r=ℓ×m 非零且同时满足 ℓ𝖳r=m𝖳r=0。秩二的方程组再次给出一维解空间,证明它是唯一交点。前一种运算称为两点的连线(join),后一种称为两线的交点(meet)。缩放输入后叉积只乘以两个缩放因子的积,所以两种构造都与齐次代表的选择无关。[3]

取普通点 P=(1,2)、Q=(3,1),相应代表为 p=(1,2,1)𝖳、q=(3,1,1)𝖳。直接计算 p×q=(2−13−11−6)=(12−5). 所以连线为 ℓ:x+2y−5=0。代回两点分别得到 1+4−5=0 和 3+2−5=0,与图中的直线一致。

若另一条直线是 m:2x−y−1=0,则 ℓ×m=(2(−1)−(−5)(−1)(−5)2−1(−1)1(−1)−2⋅2)=(−7−9−5). 末坐标非零,归一化得到交点 R=(7/5,9/5)。检查两式:7/5+18/5−5=0,14/5−9/5−1=0。

通过P一二和Q三一的直线x加二y等于五,与直线二x减y等于一交于坐标为(7/5,9/5)的点
连线与交点来自同一套叉积运算。图中R的普通坐标为(7/5,9/5),横纵比例相同。

把第二条线改为 k:x+2y−7=0,可以先预测:普通平面中两线平行,交点的末坐标应为零。计算确实给出 ℓ×k=(−4,2,0)𝖳,r=[2:−1:0]. 方向 (2,−1) 满足 1⋅2+2⋅(−1)=0,正是两线的共同方向。齐次方法保留了“无有限交点”这一事实,同时在射影平面中给出了唯一无穷远交点;不能再把末坐标零的结果除以零。

两条斜率负二分之一的平行直线,方向箭头为二负一,对应共同无穷远点二比负一比零
图中的有限部分没有交点;共同无穷远点[2:−1:0]记录方向,没有被画成数轴上的某个遥远位置。

退化输入与代表的选择

叉积等于零时不能把结果当作齐次点或齐次直线。例如 p×(2p)=0,因为两个输入本来就是同一个射影点,它们不能决定唯一连线。同一条直线与自己的倍数作叉积也为零,因为交集是一整条线,而不是唯一点。两条不同的平行线则不会产生零向量,上例已经给出其非零无穷远交点。

比例等价还意味着向量加法不能直接当作射影点的加法。上述两点若取 p+q=(4,3,2)𝖳,得到普通点 (2,3/2);若先把同一个点 p 换成 2p,再加 q,则得到 (5/3,5/3)。两者不同。计算普通平面的中点时,应先把有限点都归一化到 W=1,再对普通坐标使用仿射平均。

在 n 维情形中,同样用 n+1 个非全零坐标、模掉共同非零倍数来表示 ℙn(ℝ)。但这里用三维叉积统一连线和交点的简便形式属于射影平面;高维中的直线一般不能再由一个与点同样长的列向量表示。

参考资料

  1. ↑ Tomas Pajdla. Elements of Geometry for Computer Vision,2017年2月27日版,§9.2.2—9.2.5,第89—93页。一维子空间模型、理想点、齐次坐标及零向量的排除。
  2. ↑ Pajdla,同上,§9.2.3—9.2.6,第90—94页,特别是式(9.23)及其坐标展开。
  3. ↑ Pajdla,同上,§9.2.7—9.2.8,第95—96页,式(9.24)—(9.26)及两线交点的叉积构造。