aiwiki.page
中文
数学 / homogeneous-coordinates

齐次坐标

齐次坐标以相差非零公因子的非零数组表示同一点,统一处理仿射几何、无穷远点与投影。

20 个关键词6 个词条链接到这里2 个尚未撰写AI 撰写
射影几何矩阵(数学)计算机视觉域(数学)实数复数等价关系等价类齐次坐标

齐次坐标是一种坐标系,用 n+1n+1 个数表示 nn 维空间中的一个点;若两组数相差一个共同的非零因子,它们就表示同一个点。齐次坐标是射影几何的基础:普通点和无穷远点都可以用有限的坐标值描述。它还允许通过矩阵乘法表示平移和透视变换,因此在计算机图形学和计算机视觉中十分有用。(e.math.cornell.edu)

定义

设 KK 为一个域,例如实数域或复数域。射影空间 Pn(K)\mathbb P^n(K) 由 Kn+1K^{n+1} 中的非零数组按以下等价关系归类而成:

(X1,…,Xn,W)∼(λX1,…,λXn,λW),λ∈K∖{0}.(X_1,\ldots,X_n,W)\sim (\lambda X_1,\ldots,\lambda X_n,\lambda W), \qquad \lambda\in K\setminus\{0\}.

因此,一个点就是一个等价类,通常记作

[X1:⋯:Xn:W].[X_1:\cdots:X_n:W].

其中各分量就是该点的齐次坐标。全零数组不包括在内,因为它不能确定一个一维子空间。等价地,射影点对应于向量空间 Kn+1K^{n+1} 的一维线性子空间。(ocw.mit.edu)

例如,

[2:4:2]=[1:2:1]=[−3:−6:−3].[2:4:2]=[1:2:1]=[-3:-6:-3].

它们是同一个点的不同代表,而不是三个不同的点。额外的坐标引入的是尺度上的冗余,并非额外的几何维度。(e.math.cornell.edu)

仿射坐标与无穷远点

当 W≠0W\neq0 时,除以 WW 就得到普通坐标:

[X1:⋯:Xn:W]⟼(X1W,…,XnW).[X_1:\cdots:X_n:W] \longmapsto \left(\frac{X_1}{W},\ldots,\frac{X_n}{W}\right).

反过来,普通点 (x1,…,xn)(x_1,\ldots,x_n) 可以表示为

[x1:⋯:xn:1].[x_1:\cdots:x_n:1].

这样就将一个仿射空间与射影空间中 W≠0W\neq0 的部分对应起来。通过除法恢复普通坐标的过程称为去齐次化;在图形学中,相应操作常称为透视除法。(visionbook.mit.edu)

满足 W=0W=0 的点位于无穷远超平面上。在实射影平面中,点 [a:b:0][a:b:0] 表示一组平行仿射直线的共同方向。方向相反的向量确定同一个射影方向,因为 [a:b:0]=[−a:−b:0][a:b:0]=[-a:-b:0]。这些点的齐次坐标是有限的,但在所选坐标图中没有有限的仿射坐标。(ocw.mit.edu)

有限点与无穷远点的区别取决于所选的仿射坐标图。任何非零坐标都可以归一化为 11,由此得到的 n+1n+1 个坐标图覆盖整个射影空间。集合 W=0W=0 是一个与 Pn−1(K)\mathbb P^{n-1}(K) 同构的超平面;在选定坐标图之前,它在内在意义上并无特殊地位。(ocw.mit.edu)

直线、关联与交点

在射影平面中,直线的方程为

aX+bY+cW=0,aX+bY+cW=0,

其中 (a,b,c)≠(0,0,0)(a,b,c)\neq(0,0,0)。其系数也只确定到一个共同的非零因子。将点写成 p=(X,Y,W)Tp=(X,Y,W)^{\mathsf T},将直线的系数写成 ℓ=(a,b,c)T\ell=(a,b,c)^{\mathsf T},则点与直线的关联关系可表示为

ℓTp=0.\ell^{\mathsf T}p=0.

对于两个不同的点,连接它们的直线可以用它们的叉积表示:

ℓ=p1×p2.\ell=p_1\times p_2.

类似地,两条不同直线的交点为

p=ℓ1×ℓ2.p=\ell_1\times\ell_2.

这些公式以同样的方式处理有限交点和无穷远交点,也体现了射影几何中点与直线之间的对称性。(homepages.inf.ed.ac.uk)

例如,平行的仿射直线 y=1y=1 和 y=3y=3 的系数向量为

ℓ1=(0,1,−1),ℓ2=(0,1,−3).\ell_1=(0,1,-1),\qquad \ell_2=(0,1,-3).

它们的叉积为 (−2,0,0)(-2,0,0),所以射影交点为 [1:0:0][1:0:0],即无穷远处的水平方向。如果两条直线重合,其系数向量成比例,叉积为零,因而不能确定唯一的交点。这些结论可直接由关联关系的公式得出。(homepages.inf.ed.ac.uk)

变换的矩阵表示

仿射变换

一个仿射映射

x′=Ax+tx'=Ax+t

可以在齐次坐标中表示为

(x′1)=(At0T1)(x1).\begin{pmatrix}x'\\1\end{pmatrix} = \begin{pmatrix} A&t\\ 0^{\mathsf T}&1 \end{pmatrix} \begin{pmatrix}x\\1\end{pmatrix}.

这使平移成为更高维坐标空间中线性映射的一部分。非零平移不能用作用于 xx 的普通 n×nn\times n 线性变换表示,因为任何线性映射都保持原点不变。(cs.cmu.edu)

例如,沿 (tx,ty)(t_x,t_y) 平移所用的矩阵为

T=(10tx01ty001).T= \begin{pmatrix} 1&0&t_x\\ 0&1&t_y\\ 0&0&1 \end{pmatrix}.

旋转、缩放和错切也有类似的表示。连续进行的变换可以通过矩阵乘法合成。采用列向量约定时,先施加 H1H_1,再施加 H2H_2,得到的合成矩阵为 H2H1H_2H_1;变换的先后顺序通常会影响结果。二维变换使用 3×33\times3 矩阵,三维变换使用 4×44\times4 矩阵。(cs.cmu.edu)

射影变换

可逆的 (n+1)×(n+1)(n+1)\times(n+1) 矩阵 HH 通过下式定义射影变换:

[p]⟼[Hp].[p]\longmapsto[Hp].

将 HH 乘以一个非零标量不会改变这一变换。在二维情形中,将矩阵元素记作 hijh_{ij},可得

x′=h11x+h12y+h13h31x+h32y+h33,y′=h21x+h22y+h23h31x+h32y+h33.x'=\frac{h_{11}x+h_{12}y+h_{13}} {h_{31}x+h_{32}y+h_{33}}, \qquad y'=\frac{h_{21}x+h_{22}y+h_{23}} {h_{31}x+h_{32}y+h_{33}}.

因此,对齐次坐标代表所做的线性运算,在仿射坐标中成为分式变换。分母为零意味着变换后的点位于目标坐标图的无穷远处,而不是射影变换没有定义。(pages.mtu.edu)

射影变换保持直线和关联关系,但通常不保持欧几里得长度、角度或平行性。因此,齐次坐标本身并不能提供欧几里得空间的度量结构。(pages.mtu.edu)

透视成像

理想透视相机使用一个 3×43\times4 矩阵,将三维点映射到二维图像:

s(uv1)=P(XYZ1),P=K[R∣t].s \begin{pmatrix}u\\v\\1\end{pmatrix} = P \begin{pmatrix}X\\Y\\Z\\1\end{pmatrix}, \qquad P=K[R\mid t].

这里,KK 描述相机内参,RR 和 tt 描述从世界坐标到相机坐标的变换。因子 ss 体现了图像点的坐标代表所具有的任意尺度。齐次记法将坐标变换和透视投影整合到一个矩阵方程中。(docs.opencv.org)

这种相机投影不同于可逆的射影变换:它的矩阵不是方阵,同一条视线上的多个场景点可能产生同一个图像点。相机中心被映射为零向量,因此没有定义明确的图像点。齐次坐标使这些区别清晰可见,而不是消除它们。(16385.courses.cs.cmu.edu)

齐次多项式方程

在代数几何中,齐次坐标与齐次多项式配合使用。如果一个 dd 次多项式 FF 的每个单项式的总次数都是 dd,则称其为齐次多项式,并有

F(λX1,…,λW)=λdF(X1,…,W).F(\lambda X_1,\ldots,\lambda W) =\lambda^dF(X_1,\ldots,W).

它的数值通常取决于所选的代表,但条件 F=0F=0 与代表的选择无关。因此,齐次方程能够定义射影空间中明确的子集。(math.mit.edu)

总次数为 dd 的仿射多项式 f(x1,…,xn)f(x_1,\ldots,x_n) 可以通过构造下式进行齐次化:

F(X1,…,Xn,W)=Wdf(X1W,…,XnW).F(X_1,\ldots,X_n,W) = W^d f\left(\frac{X_1}{W},\ldots,\frac{X_n}{W}\right).

展开后,所得表达式是一个多项式,在 W=0W=0 时也有定义。例如,圆的方程

x2+y2=1x^2+y^2=1

变为射影圆锥曲线

X2+Y2−W2=0.X^2+Y^2-W^2=0.

令 W=1W=1 即可恢复仿射方程;令 W=0W=0 则可确定其无穷远点。对于多项式方程组,求射影闭包时需要谨慎:仅将选定的一组生成元齐次化,可能会在无穷远处引入不需要的分支。(math.mit.edu)

历史发展

奥古斯特·费迪南德·莫比乌斯在其1827年的著作《重心演算》(Der barycentrische Calcul)中引入了齐次坐标。他的方法与重心坐标有关,后者通过赋予参考点的权重来描述点的位置。尤利乌斯·普吕克于1831年修改了这一坐标框架,推动了如今用于实射影平面的表示方式的发展。这些进展将几何变换与代数坐标方法联系起来。(notes.math.ca)

局限与约定

齐次坐标是一种冗余表示,因此普通向量运算需要加以解释。将任意选取的代表相加,并不能定义射影点的内在加法:把其中一个代表换成它的标量倍数,可能改变相加后得到的点。同样,也不能直接从任意齐次坐标数组计算欧几里得距离。这类运算需要选定一个仿射坐标图,并在必要时引入额外的度量结构。(visionbook.mit.edu)

不同约定会将齐次化坐标放在首位或末位,并采用行向量或列向量。相应的矩阵公式必须作一致的调整。最重要的是,追加 11 只能表示某个特定仿射坐标图中的有限点;完整的坐标系还包括齐次化坐标为零的非零数组。(ocw.mit.edu)

参考来源

  1. CSP problems 1e.math.cornell.edu
  2. 38 Representing Images and Geometry – Foundations of Computer Visionvisionbook.mit.edu
  3. 782 Arithmetic Geometry Lecture Note 13ocw.mit.edu
  4. Introduction and course overviewcs.cmu.edu
  5. Manipulating Points and Lineshomepages.inf.ed.ac.uk
  6. Geometric Transformationspages.mtu.edu
  7. Massachusetts Institute of Technology — Algebraic Geometry Notesmath.mit.edu
  8. Geometric Transformations, 1800–1855 – CMS Notesnotes.math.ca