最近在学习计算机视觉,学习过程中遇到了homogeneous coordinates(齐次坐标),觉得很有趣也很神奇,便写个笔记记录一下。先挂上参考的page:
1. Department of Computer Science,Michigan Technological University,CS3621, Introduction to Computing with Geometry Notes
2. “齐次坐标” 百度百科
在介绍“齐次坐标”前我们先来回顾我们熟悉的“笛卡尔坐标系”。
笛卡尔坐标系:
笛卡尔坐标系(Cartesian coordinates,法语:les coordonnées cartésiennes)就是直角坐标系和斜坐标系的统称。
相交于原点的两条数轴,构成了平面放射坐标系。如两条数轴上的度量单位相等,则称此放射坐标系为笛卡尔坐标系。两条数轴互相垂直的笛卡尔坐标系,称为笛卡尔直角坐标系,否则称为笛卡尔斜角坐标系。
二维坐标系三维坐标系
在众多的引入齐次坐标系的原因中,有一个重要的原因就是为了描述“无穷远”这个概念。在欧几里得空间中,两条平行线永远都不会相交。但是在投影空间中,平行线总会在远处的某点处相交。如下图的铁轨所示,在远方的地平线处将会相交。在透视学术语中,这个点常常称为灭点(vanishing point)。
但是,数学家们已经发现了在“无限远点”的概念能够被解释的条件下,许多几何概念和计算能够被大大地简化。于是聪明的数学家们引进了新的坐标系“齐次坐标系”。
“齐次坐标系”在百度中的解释:
齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指一个用于投影几何里的坐标系统,如同用于欧氏几何里的笛卡儿坐标一般。
下面先提供一种理解方式:
首先考虑:
有两个实数a和w,计算a/w的值。在计算过程中我们保持a的值不变,而改变w的值,我们有:当w变大的时候a/w的值变小,当w趋于无穷大的时候,a/w趋于0。当w变小的时候,a/w的值变大,当w趋于0的时候,a/w的值趋于无穷大。因此,“无穷的概念”可以表示为一个数字对(a, w)。
将上述推广到xy坐标系平面,f(X, Y)= 0等价于f(X, Y, 1) = 0,此时X, Y的次数均为1,而1所表示的坐标轴的次数为0,即次数不齐。这时我们可以做这样的变换:f(x/w, y/w, w/w) = 0/w。则我们就从(X, Y, 1)的非齐次坐标系,转换成(x, y, w)的齐次坐标系。
再举个例子:假设有多项式Ax2 + 2Bxy + Cy2 + 2Dx + 2Ey + F = 0。在把x、y用x/w和y/w替换之后,再乘w2。多项式就转换成Ax2 + 2Bxy + Cy2 + 2Dxw + 2Eyw + Fw2 = 0。如果你仔细观察每一项,会发现他们的次数都是相同的(x2, xy, y2, xw, yw, w2)。
也就是说,对于一个n次多项式,在引入了w之后,所有项均变成了n次项。变换后的多项式称为齐次多项式。(x, y, w)就称为“齐次坐标系”。
另一种理解方式:
任何一个由n维坐标表示的一个点,可以看做是在他的n+1维空间中丢失了第n+1维。所以前n维的次数都是1,而丢失的n+1维可以认为是次数为0。如(x, y)可以看做是(x, y, 1)。这样显然不是齐次的。而在(x, y, z)坐标系中,三个维度的次数都为1,这种情况下坐标系为齐次的,则为齐次坐标。若是我们把这个坐标每一维都除以z,得到(x, y, 1)又变成了非齐次坐标。
齐次坐标系的作用:
当我们尝试利用(x, y)表示笛卡尔空间的一个2D点时,(∞,∞)是没有意义的。投影空间里的两条平行线会在无限远处相交于一点,但笛卡尔空间里面无法搞定这个问题。于是数学家引入齐次坐标如(1, 2, 0),就能很好的解决这个问题。
坐标的转换
通过上述讲解我们很容易能得到:
(1,3,1)
(2,6,2)
(3,9,3)
三个齐次坐标的笛卡尔坐标均为:
(1,3)
网友评论