UTF8gbsn
我们这里的讲解都是在2D平面上面的
Homogeneous representation of lines.
传统表示2D平面中的直线的方法为
a x + b y + c = 0 ax+by+c=0ax+by+c=0
那么,我们很自然的想到使用l = ( a , b , c ) T \mathbf{l}=(a,b,c)^Tl=(a,b,c)T来表示一条直线.
这便是齐次表示法. 注意,
( a , b , c ) T ≡ k ( a , b , c ) T , f o r k ≠ 0 (a,b,c)^T\equiv k(a,b,c)^T,for\quad k\neq 0(a,b,c)T≡k(a,b,c)T,fork=0
实际上他们构成一个等价类. 这个等价类中的任何一个元素, 都表示同一条直线.
Projective Space of P 2 \mathbb{P}^{2}P2
在R 3 − ( 0 , 0 , 0 ) T \mathbb{R}^{3}-(0,0,0)^TR3−(0,0,0)T中的所有的等价类的集合构成了P 2 \mathbb{P}^{2}P2,
值得注意的是,不是里面的元素, 而是等价类(这一点尤为重要)
Homogeneous representation of points
在2D平面中点的表示方式是( x , y ) (x,y)(x,y). 而它的齐次表示方式位( x , y , 1 ) (x,y,1)(x,y,1).
值得注意的是.所有的( k x , k y , k ) (kx,ky,k)(kx,ky,k), k ≠ 0 k\neq 0k=0, 都表示同一个点.
和直线的齐次表示同理.
这个等价类中的元素都表示同一个点.同样齐次表示法的点的一个等价类是属于P 2 \mathbb{P}^{2}P2,
也就是说, 等价类属于P 2 \mathbb{P}^{2}P2,
而不是仅仅是一种表示( x , y , 1 ) (x,y,1)(x,y,1)属于这个空间.
Result 2.1.
一个点x \mathbf{x}x在一条直线l \mathbf{l}l上的充分必要条件为x T l = 0 \mathbf{x}^T\mathbf{l}=0xTl=0,
所有的x , l \mathbf{x},\mathrm{l}x,l均是齐次表示法. 操作为向量点积.
Degrees of freedom (dof)
2D点的自由位2, 这个很简单就是( x , y ) (x,y)(x,y). 2D直线的自由度也是2,
表现在梯度和截距. 也可以表示为2个比值a : b : c a:b:ca:b:c.
Intersection of lines
在齐次坐标的表示下,两条直线l , l ′ \mathbf{l}, \mathbf{l^{'}}l,l′的交点非常容易求.
x = l × l ′ \mathbf{x}=\mathbf{l}\times \mathbf{l^{'}}x=l×l′
为什么? 因为交点x \mathbf{x}x同时出现在l , l ′ \mathbf{l}, \mathbf{l^{'}}l,l′上
l ⋅ x = l ⋅ l × l ′ = 0 \mathbf{l}\cdot \mathbf{x} = \mathbf{l} \cdot \mathbf{l}\times \mathbf{l^{'}} = 0l⋅x=l⋅l×l′=0
l ′ ⋅ x = l ′ ⋅ l × l ′ = 0 \mathbf{l^{'}}\cdot \mathbf{x}= \mathbf{l^{'}}\cdot \mathbf{l}\times \mathbf{l^{'}} = 0l′⋅x=l′⋅l×l′=0
Line joining points
同理过两点的直线, 也非常容易.
l = x × x ′ \mathbf{l} = \mathbf{x} \times \mathbf{x^{'}}l=x×x′
证明同上.