Projective Geometry and Transformations of 2D
本章主要介绍本书必要的几何知识与符号。
文章目录
- Projective Geometry and Transformations of 2D
- 2.1 Planar geometry
- 2.2 The 2D projective plane
- 2.2.1 Points and lines
- 2.2.2 Ideal points and the line at infinity
- 2.2.3 Conics and dual conics
- 2.3 Projective transformations
- 2.3.1 Transformations of lines and conics
- 2.4 A hierarchy of transformations
- 2.4.1 Isometries刚体变换
- 2.4.2 Similarity transformations相似变换
- 2.4.3 Affine transformations仿射变换
- 2.4.4 Projective transformations投影变换
- 2.4.5 Summary and comparison
- 2.4.6 Decomposition of a projective transformation
- 2.4.7 The number of invariants
- 2.5 The projective geometry of 1D
- 2.7 Recovery of affine and metric properties from images
- 2.7.1 The line at infinity
- 2.7.2 Recovery of affine properties from images
- 2.7.3 The circular points and their dual
- 2.7.4 Angles on the projective plane
- 2.7.5 恢复图像的度量性质
- 2.8 More properties of conics
- 2.8.1 The pole–polar relationship
- 2.8.2 Classification of conics
- 2.9 Fixed points and lines
2.1 Planar geometry
简要介绍了平面几何,本书将以代数和几何混合的方式来讲解。
2.2 The 2D projective plane
行向量与列向量 本书默认所有向量的都是列向量,比如 x x x,那么 x T x^T xT就是行向量。对于一个行向量 ( x , y ) (x,y) (x,y),我们就有 x = ( x , y ) T x=(x,y)^T x=(x,y)T。
2.2.1 Points and lines
线段的齐次坐标 线是由方程 a x + b y + c = 0 ax+by+c=0 ax+by+c=0组成的,所以我们就用 ( a , b , c ) T (a,b,c)^T (a,b,c)T来表示线段。但是 ( a , b , c ) T (a,b,c)^T (a,b,c)T不能唯一表示一条线段,因为 ( a , b , c ) T (a,b,c)^T (a,b,c)T与 k ( a , b , c ) T k(a,b,c)^T k(a,b,c)T表示一样的线段 ( k k k不为0)。那么 k ( a , b , c ) T k(a,b,c)^T k(a,b,c)T其实就是一类向量的表达。这个类中所有的向量都是其次向量。那么我们把所有的类都放在一起,就形成了投影空间。空间中有一个特殊点 ( 0 , 0 , 0 ) T (0,0,0)^T (0,0,0)T,它不属于任何直线。
点的其次坐标 直线方程是 a x + b y + c = 0 ax+by+c=0 ax+by+c=0,那么可以写成 ( x , y , 1 ) ( a , b , c ) T (x,y,1)(a,b,c)^T (x,y,1)(a,b,c)T,那么这个 ( x , y , 1 ) (x,y,1) (x,y,1)就是点的齐次坐标。
结论2.1 点在直线上当且仅当 x T l = 0 x^T l = 0 xTl=0
自由度 自由度就是这个几何体可以由几个自由变化的变量来表达,比如点的自由度就是2,因为指定 x , y x,y x,y就够了,线的自由度也是2,这是因为虽然线有三个变量,但是他们之间的比例是 a : b : c a:b:c a:b:c。例如,在非齐次表示中,可以选择这两个参数作为直线的梯度和 y 截距。
直线的交点 两个直线 l = ( a , b , c ) , l ′ = ( a ′ , b ′ , c ′ ) l=(a,b,c),l'=(a',b',c') l=(a,b,c),l′=(a′,b′,c′),它们的交点就是 l × l ′ l \times l' l×l′。
两个点确定的直线 两个点 x , x ′ x,x' x,x′,它们所确定的直线就是 x × x ′ x \times x' x×x′。
2.2.2 Ideal points and the line at infinity
平行线的交点 如果我们考虑两个平行线的交点 a x + b y + c = 0 , a x + b y + c ′ = 0 ax+by+c=0,ax+by+c'=0 ax+by+c=0,ax+by+c′=0, 做叉乘,我们会得到 ( c ′ − c ) ( b , − a , 0 ) T (c'-c)(b,-a,0)^T (c′−c)(b,−a,0)T,如果我们忽略尺度因子 ( c ′ − c ) (c'-c) (c′−c),那么平行线的交点就在 ( b , − a , 0 ) T (b,-a,0)^T (b,−a,0)T,我们再把这个齐次坐标变成非齐次,那么就得到 ( b / 0 , − a / 0 ) T (b/0,-a/0)^T (b/0,−a/0)T,这点就在无穷远处,所以我们说平行线就是在无穷远处相交。
理想点与无穷远的直线 我们考虑任一个点 ( x 1 , x 2 , x 3 ) T (x_1,x_2,x_3)^T (x1,x2,x3)T,把 x 3 = 0 x_3=0 x3=0, 那么 ( x 1 , x 2 , 0 ) T (x_1,x_2,0)^T (x1,x2,0)T就是无穷远处的所有点, 这些点都落在一个直线上, 那就是 l ∞ = ( 0 , 0 , 1 ) T l_{\infty}=(0,0,1)^T l∞=(0,0,1)T。
我们紧接着考虑任意一条直线 l = ( a , b , c ) T l=(a,b,c)^T l=(a,b,c)T, l l l与 l ∞ l_{\infty} l∞的交点就是 ( b , − a , 0 ) T (b,-a,0)^T (b,−a,0)T。那么一条和 l l l平行的直线 l ′ l' l′会和 l ∞ l_{\infty} l∞也交于 ( b , − a , 0 ) T (b,-a,0)^T (b,−a,0)T。 ( b , − a ) (b,-a) (b,−a)和直线的法向量 ( a , b ) (a,b) (a,b)是垂直的, 所以它就是直线的方向。注意 ( a , b ) (a,b) (a,b)不是直线的方向, ( a , b ) (a,b) (a,b)和直线是垂直的。 ( b , − a , 0 ) (b,-a,0) (b,−a,0)这个点在无穷远直线上,那么无穷远处的直线就可以被看做是直线方向的集合。
二维投影平面的几何模型 投影平面可以想象为三维空间中射线的集合。可以从三个射线上挑出三个点并且让他们共面,那么其他的射线都与该平面有交点。所以该平面就是由射线上的点组成的。射影平面上的线就是过原点的平面和射影平面的交点。任意两个不同射线处于同一平面上,任意两个不同的平面相较于一个射线。可以类比两直线交于一点,两点确定一条直线。
如图所示,无穷远处的理想点和直线平行于平面
x
3
=
1
x_3=1
x3=1。
线段与点的对偶性 点与线段的角色其实可以是互换的。比如说 l T x = 0 l^T x=0 lTx=0 可以写成 x T l = 0 x^T l = 0 xTl=0。
2.2.3 Conics and dual conics
圆锥描述了平面上的二次方程。欧氏几何主要三种:抛物线、双曲线、椭圆。在二维摄影几何里,这三种都是等价的。
我们首先把圆锥写成其次表达式 x = ( x 1 , x 2 , x 3 ) x=(x_1,x_2,x_3) x=(x1,x2,x3)
[ a b / 2 d / 2 b / 2 c e / 2 d / 2 e / 2 f ] \left[ \begin{matrix} a & b/2 & d/2 \\ b/2& c & e/2 \\ d/2 & e/2 & f \end{matrix} \right] ab/2d/2b/2ce/2d/2e/2f
圆锥就可以写成 x T C x = 0 x^TCx=0 xTCx=0 圆锥有5个自由度。
五个点确定一个圆锥 我们把圆锥换一个方式写,用
x
=
x
1
/
x
3
,
y
=
x
2
/
x
3
x=x_1/x_3,y=x_2/x_3
x=x1/x3,y=x2/x3,可以得到:
(
x
i
2
,
x
i
y
i
,
y
i
2
,
x
i
,
y
i
,
1
)
c
=
0
c
=
(
a
,
b
,
c
,
e
,
d
,
f
)
(x_i^2, x_i y_i,y_i^2,x_i,y_i,1)c=0\\ c=(a,b,c,e,d,f)
(xi2,xiyi,yi2,xi,yi,1)c=0c=(a,b,c,e,d,f)
需要五个方程解出 c c c,因为 c c c的自由度是5。
和椭圆相切的直线 和椭圆 C C C在点 x x x处相切的直线 l l l是 l = C x l=Cx l=Cx。
对偶圆锥 在前文中 c c c定义的圆锥是点组成的圆锥。我们可以定义一个由直线组成的圆锥 c ∗ c^* c∗,这个圆锥就是由所有和 c c c相切的直线组成的。 c ∗ = c − 1 c^*=c^{-1} c∗=c−1
2.3 Projective transformations
定义2.9 投影变换 h h h是一个从二维投影空间到二维投影空间的变换,它满足一个性质:如果 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3变换前在一条直线上,当且仅当变换后的他们 ( h ( x 1 ) , h ( x 2 ) , h ( x 3 ) ) (h(x_1),h(x_2),h(x_3)) (h(x1),h(x2),h(x3))还在一条直线上。
根据这个定义,投影变换也叫共线性,投影变换和单应性是同一个意思。
书中还介绍了另外一种从代数角度来定义的办法。通俗来说就是任何一个 3 × 3 3 \times 3 3×3的非奇异矩阵 H H H都定义了一个投影变换。
从几何角度来解释, 投影变换其实定义了一个平面到平面的映射,因为我们知道,投影几何就是由平面定义的。而且投影变换保持了共线性。如果说这两个平面上的坐标系都是欧式坐标系,那么这个投影变换就变成了6个自由度的透视变换。
2.3.1 Transformations of lines and conics
一个点有如下变换 x ′ = H x x'=Hx x′=Hx,那么线变换就是 l ′ = H − T l l'=H^{-T} l l′=H−Tl,圆锥变换就是 x T C x = x ′ T H − T C H − 1 x ′ x^TCx = x'^T H^{-T}CH^{-1}x' xTCx=x′TH−TCH−1x′,所以 C = H − T C H − 1 C=H^{-T}CH^{-1} C=H−TCH−1,其对偶圆变换就是 C ∗ ′ = H C ∗ H T C^{*'}=HC^{*}H^T C∗′=HC∗HT。
2.4 A hierarchy of transformations
本节是一个重点章节,层层推广地介绍了各种变换的定义和性质。
2.4.1 Isometries刚体变换
其形式如下:
(
x
′
y
′
1
)
=
[
ϵ
cos
θ
−
sin
t
x
ϵ
sin
θ
−
cos
t
y
0
0
1
]
(
x
y
1
)
\left( \begin{matrix} x' \\ y' \\ 1 \end{matrix} \right)= \left[ \begin{matrix} \epsilon \cos \theta & -\sin & t_x \\ \epsilon \sin \theta & -\cos & t_y \\ 0 & 0 & 1 \end{matrix} \right] \left( \begin{matrix} x\\ y\\ 1 \end{matrix} \right)
x′y′1
=
ϵcosθϵsinθ0−sin−cos0txty1
xy1
可以简写成:
x
′
=
H
E
x
=
[
R
t
0
T
1
]
x
x'=H_{E}x= \left[ \begin{matrix} R & t \\ 0^T & 1 \\ \end{matrix} \right] x
x′=HEx=[R0Tt1]x
R
R
R是一个
2
×
2
2 \times 2
2×2的正交矩阵,整个大矩阵有3个自由度:旋转一个,平移两个。不变量是:线段长度、线段之间角度、图形的面积。
2.4.2 Similarity transformations相似变换
其形式如下:
(
x
′
y
′
1
)
=
[
s
cos
θ
−
s
sin
t
x
s
sin
θ
s
cos
t
y
0
0
1
]
(
x
y
1
)
\left( \begin{matrix} x' \\ y' \\ 1 \end{matrix} \right)= \left[ \begin{matrix} s \cos \theta & -s \sin & t_x \\ s \sin \theta & s \cos & t_y \\ 0 & 0 & 1 \end{matrix} \right] \left( \begin{matrix} x\\ y\\ 1 \end{matrix} \right)
x′y′1
=
scosθssinθ0−ssinscos0txty1
xy1
可以简写成:
x
′
=
H
S
x
=
[
s
R
t
0
T
1
]
x
x'=H_{S}x= \left[ \begin{matrix} sR & t \\ 0^T & 1 \\ \end{matrix} \right] x
x′=HSx=[sR0Tt1]x
整个矩阵有4个自由度:缩放因子一个,旋转一个,平移两个。不变量是:线段之间角度,、平行线还是平行的、线段之间的比例不变、因为是对整个图形进行缩放,不同区域之间的面积比也不变。
2.4.3 Affine transformations仿射变换
其形式如下:
(
x
′
y
′
1
)
=
[
a
11
a
12
t
x
a
21
a
22
t
y
0
0
1
]
(
x
y
1
)
\left( \begin{matrix} x' \\ y' \\ 1 \end{matrix} \right)= \left[ \begin{matrix} a_{11} & a_{12} & t_x \\ a_{21} & a_{22} & t_y \\ 0 & 0 & 1 \end{matrix} \right] \left( \begin{matrix} x\\ y\\ 1 \end{matrix} \right)
x′y′1
=
a11a210a12a220txty1
xy1
可以简写成:
x
′
=
H
A
x
=
[
A
t
0
T
1
]
x
x'=H_{A}x= \left[ \begin{matrix} A & t \\ 0^T & 1 \\ \end{matrix} \right] x
x′=HAx=[A0Tt1]x
整个矩阵有6个自由度,左上角
A
A
A四个,平移两个。
A
A
A可以被分解成如下形式:
A
=
R
(
θ
)
R
(
−
ϕ
)
D
R
(
ϕ
)
A=R(\theta) R(-\phi) D R(\phi)
A=R(θ)R(−ϕ)DR(ϕ)
[
λ
1
0
0
λ
2
]
\left[ \begin{matrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{matrix} \right]
[λ100λ2]
所以 A A A可以被解释为先旋转一个角度 ϕ \phi ϕ,再从 x , y x,y x,y两个方向进行缩放,其比例因子为 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2,再按 − ϕ -\phi −ϕ旋转回去,再转一个 θ \theta θ。
由于进行了压缩,那么线段之间的角度就变了,不变量只能是保持直线之间的平行性、直线之间比例、面积的比例。
2.4.4 Projective transformations投影变换
投影变换是齐次坐标的一般非奇异线性变换,实际上是推广了仿射变换,我们之前已经看到了投影变换的作用。
其形式如下:
x
′
=
H
P
x
=
[
A
t
v
T
v
]
x
x'=H_{P}x= \left[ \begin{matrix} A & t \\ v^T & v \\ \end{matrix} \right] x
x′=HPx=[AvTtv]x
整个大矩阵8个自由度。其不变量:直线变换以后还是直线。
2.4.5 Summary and comparison
2.4.6 Decomposition of a projective transformation
整个投影变换矩阵可以分解成三个小矩阵的乘机
H
=
H
S
H
A
H
P
=
[
s
R
t
0
T
1
]
[
K
0
0
T
1
]
[
I
0
v
T
v
]
=
[
A
t
v
T
v
]
H = H_S H_A H_P \\ = \left[ \begin{matrix} sR & t \\ 0^T & 1 \\ \end{matrix} \right] \left[ \begin{matrix} K & 0 \\ 0^T & 1 \\ \end{matrix} \right] \left[ \begin{matrix} I & 0 \\ v^T & v \\ \end{matrix} \right]= \left[ \begin{matrix} A & t \\ v^T & v \\ \end{matrix} \right]
H=HSHAHP=[sR0Tt1][K0T01][IvT0v]=[AvTtv]
H
P
H_P
HP移动无穷远处的直线,
H
A
H_A
HA是一个仿射变换,
H
S
H_S
HS是一个广义的相似变换。
2.4.7 The number of invariants
前文我们讨论了在某某变换下,几何体有多少不变量。那么这个不变量到底怎么计算呢?我们有以下结论:
结论2.16 几何体的不变量大于等于几何体的自由度减去变换的自由度。
举个例子,空间中4个点,有8个自由度,因为每个点有2个。那么几何体的不变量就是:几何体的自由度8,减去变换的自由度。如果我们假设变换是相似变换,那么答案就是8-4=4(相似变换是4个自由度)。假设变换是仿射变换,答案就是8-6=2(仿射变换是6个自由度)。
2.5 The projective geometry of 1D
一维空间投影几何那就是点
x
ˉ
=
(
x
1
,
x
2
)
T
\bar{x}=(x_1,x_2)^T
xˉ=(x1,x2)T,其中
x
2
=
0
x_2=0
x2=0,一维空间单应矩阵就是:
x
ˉ
′
=
H
2
×
x
x
ˉ
\bar{x}'=H_{2 \times x} \bar{x}
xˉ′=H2×xxˉ
H
2
×
2
H_{2 \times 2}
H2×2有3个自由度。
The cross ratio交叉比
给定一维平面4个点, 我们定义一个cross ratio:
C
r
o
s
s
(
x
1
ˉ
,
x
2
ˉ
,
x
3
ˉ
,
x
4
ˉ
)
=
∣
x
1
ˉ
x
2
ˉ
∣
∣
x
3
ˉ
x
4
ˉ
∣
∣
x
1
ˉ
x
3
ˉ
∣
∣
x
2
ˉ
x
4
ˉ
∣
Cross(\bar{x_1}, \bar{x_2},\bar{x_3},\bar{x_4})= \frac{|\bar{x_1} \bar{x_2}| |\bar{x_3} \bar{x_4}|} {|\bar{x_1} \bar{x_3}| |\bar{x_2} \bar{x_4}|}
Cross(x1ˉ,x2ˉ,x3ˉ,x4ˉ)=∣x1ˉx3ˉ∣∣x2ˉx4ˉ∣∣x1ˉx2ˉ∣∣x3ˉx4ˉ∣
其中
∣
x
i
ˉ
x
j
ˉ
∣
=
det
[
x
i
1
x
j
1
x
i
2
x
j
2
]
|\bar{x_i} \bar{x_j}|= \det \left[ \begin{matrix} x_{i1} & x_{j1} \\ x_{i2} & x_{j2} \end{matrix} \right]
∣xiˉxjˉ∣=det[xi1xi2xj1xj2]
交叉比有这么几个性质:
- 交叉比和用什么坐标系表示无关,因为分子和分母之间的比例相互抵消
- 如果每个点都是有限远处的点并且 x 2 = 1 x_2=1 x2=1, 那么 ∣ x ˉ i x ˉ j ∣ |\bar{x}_{i}\bar{x}_{j}| ∣xˉixˉj∣ 表示从 x ˉ i \bar{x}_{i} xˉi 到 x ˉ j \bar{x}_{j} xˉj 的有符号距离
- 如果有一个点是理想点,交叉比也依然成立
- 交叉比在任何投影变换下都是不变的
Concurrent lines共点线
共点线就是有共同起点的线,然后多找一条线,和所有共点线相交,这样就可以的定义交叉比了。
2.7 Recovery of affine and metric properties from images
本节主要是为了移除投影变换带来的性质丢失,把图像从投影变换恢复到相似变换,所以平行线、线段和面积的比例等等性质得以保留。
因为我们知道投影变换只比相似变换多4个自由度,那么我们只需要恢复4个自由度就好了。这4个自由度从哪里来?无穷远处的线提供2个,还有两个无穷远处的绝对点,因为在相似变换下它们是不变的。也可以叫圆锥点,因为任何一个圆锥都和无穷远处的线相交于这两点。
2.7.1 The line at infinity
在投影变换下,无穷远处的线会被投影到非无穷远处。
无穷远处的线在仿射变换下是不变的,也就是说经过仿射变换,它还在无穷远处。但是线上点的位置变了,只不过点都在无穷远处。
2.7.2 Recovery of affine properties from images
我们知道要恢复仿射性质就要找出无穷远处的线。那么我们首先明确,摄像机是一个投影变换,那么该线就会被映射到图像坐标系的某一个地方。我们先找到这个地方然后利用2.7.1的性质来建立一个方程。
假设无穷远处的线被映射到了
l
=
(
l
1
,
l
2
,
l
3
)
T
l=(l_1,l_2,l_3)^T
l=(l1,l2,l3)T, 我们已知无穷远处线的坐标是
(
0
,
0
,
1
)
T
(0,0,1)^T
(0,0,1)T 而且该线在仿射变换下不变,那么我们就构造一个矩阵:
H
=
H
A
[
1
0
0
0
1
0
l
1
l
2
l
3
]
H=H_A \left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ l_1 & l_2 & l_3 \end{matrix} \right]
H=HA
10l101l200l3
H A H_A HA是任一个仿射变换, H H H可以把 l l l变换到 ( 0 , 0 , 1 ) (0,0,1) (0,0,1),那么我们就把 H H H和整个图像相乘,这样整个图像就恢复了仿射性质。
那么接下来的问题就是说怎么找 l l l,我们从图像中找出两个平行线,将其延长,他们肯定相交,这样就是一个点。再重复一遍,这样就有两个点。这两个点就确定了 l l l。书上还有另外一个办法,在P51的Example 2.20。
2.7.3 The circular points and their dual
什么是椭圆点我们已经介绍了,所以现在我们来看一下它长什么样。
我们用
I
,
J
I,J
I,J来表示,
I
=
(
1
,
i
,
0
)
T
,
J
=
(
1
,
−
i
,
0
)
T
I=(1,i,0)^T,J=(1,-i,0)^T
I=(1,i,0)T,J=(1,−i,0)T,这个点为什么不变呢?
因为有如下等式:
I
′
=
H
s
I
=
[
s
cos
θ
−
s
sin
θ
t
x
s
sin
θ
s
cos
θ
t
x
s
0
0
1
]
(
1
i
0
)
=
s
e
−
i
θ
(
1
i
0
)
=
I
I' = H_s I \\= \left[ \begin{matrix} s \cos \theta & -s \sin \theta & t_x \\ s \sin \theta & s \cos \theta & t_x \\ s 0 & 0 & 1 \\ \end{matrix} \right] \left( \begin{matrix} 1 \\ i \\ 0 \end{matrix} \right) \\ = s e^{-i \theta} \left( \begin{matrix} 1 \\ i \\ 0 \end{matrix} \right) \\ = I
I′=HsI=
scosθssinθs0−ssinθscosθ0txtx1
1i0
=se−iθ
1i0
=I
根据上式,我们有如下结论:
结论2.21 椭圆点
I
,
J
I,J
I,J在投影变换下保持不变,当且仅当投影变换是相似变换。
这两个点是怎么找出来的?是圆锥方程与 l ∞ l_{\infty} l∞的交点。
*由圆锥点定义的对偶圆锥
我们可以利用
I
,
J
I,J
I,J来定义一个圆锥
C
∞
∗
=
I
J
T
+
J
I
T
C^*_{\infty} = IJ^T+JI^T
C∞∗=IJT+JIT
这个
C
∞
∗
C^*_{\infty}
C∞∗是由直线组成的圆锥,是2.2.3节线圆锥的退化情况。那么它关于谁对偶呢?它是圆锥点的对偶。
C ∞ ∗ C^*_{\infty} C∞∗在相似变换下也是不变的。所以我们可以有以下结论:
结论2.22 圆锥点 C ∞ ∗ C^*_{\infty} C∞∗在投影变换下保持不变当且仅当投影变换是相似变换。
C ∞ ∗ C^*_{\infty} C∞∗还有两个性质。1. 有四个自由度 2. l ∞ l_{\infty} l∞是 C ∞ ∗ C^*_{\infty} C∞∗的零向量
2.7.4 Angles on the projective plane
假设有两条直线
l
=
(
l
1
,
l
2
,
l
3
)
T
l=(l_1,l_2,l_3)^T
l=(l1,l2,l3)T,
m
=
(
m
1
,
m
2
,
m
3
)
T
m=(m_1,m_2,m_3)^T
m=(m1,m2,m3)T,它们之间的夹角就是:
cos
θ
=
l
1
m
1
+
l
2
m
2
(
l
1
2
+
l
2
2
)
(
m
1
2
+
m
2
2
)
\cos \theta = \frac{l_1 m_1 + l_2 m_2}{\sqrt{(l_1 ^2+l_2^2)(m_1^2+m_2^2)}}
cosθ=(l12+l22)(m12+m22)l1m1+l2m2
如果对
l
,
m
l,m
l,m施加投影变换,上式就不适用了,为了在投影变换之后还可以计算角度,我们有以下式子存在:
cos
θ
=
l
T
C
∞
∗
m
(
l
T
C
∞
∗
l
)
(
m
T
C
∞
∗
m
)
\cos \theta = \frac{l^T C^*_{\infty} m}{\sqrt{(l^T C^*_{\infty} l)(m^T C^*_{\infty} m)}}
cosθ=(lTC∞∗l)(mTC∞∗m)lTC∞∗m
所以说我们知道了 C ∞ ∗ C^*_{\infty} C∞∗就可以计算出线段或者平面之间的角度(结论2.23)。
书中还有一个很明显的结论:如果 l T C ∞ ∗ m = 0 l^T C^*_{\infty} m=0 lTC∞∗m=0,那么 l , m l,m l,m垂直。
2.7.5 恢复图像的度量性质
度量性质就是指角度,线段之间的比例等。主要是用
C
∞
∗
C^*_{\infty}
C∞∗,这是因为在投影变换之下,有下式存在:
C
∞
∗
′
=
(
H
P
H
A
H
S
)
C
∞
∗
(
H
P
H
A
H
S
)
T
=
[
K
K
T
K
K
T
v
v
T
K
K
T
v
T
K
K
T
v
]
C^{*'}_{\infty} = (H_P H_A H_S) C^*_{\infty} (H_P H_A H_S)^T \\= \left[ \begin{matrix} KK^T & KK^Tv \\ v^TKK^T & v^TKK^Tv \end{matrix} \right]
C∞∗′=(HPHAHS)C∞∗(HPHAHS)T=[KKTvTKKTKKTvvTKKTv]
K K K是仿射变换左上角的分量, v v v是投影变换的分量。从上式我们可以看出,只要知道 C ∞ ∗ C^*_{\infty} C∞∗就可以求出 C ∞ ∗ ′ C^{*'}_{\infty} C∞∗′,然后做SVD分解,就可以求出 K , v K,v K,v。
具体细节可以参考P56 Example2.26。
2.8 More properties of conics
本章也是重点,介绍了点、线、圆锥之间的关系,是对极几何的基础。
2.8.1 The pole–polar relationship
一个点
x
x
x和一个圆锥
C
C
C可以确定一条直线
l
=
C
x
l=Cx
l=Cx,这条
l
l
l就叫极线。注意这个点
x
x
x并不在圆锥
C
C
C上,而是在
C
C
C的外边。过
x
x
x可以向
C
C
C做出两条线(注意,这个线不是极线,为了区分我把它叫切线)。每一条切线都和圆锥相切,如下图所示。我们可以想象
x
x
x逐渐向圆锥移动,所以两条切线之间的角度逐渐增大,当
x
x
x位于圆锥之上,两条切线就变成了一条切线。
下面介绍另一个概念:点和线的相关性
定义2.29 相关性是从二维投影空间中的点,到二维投影空间中的线的一个可逆映射。它是一个
3
×
3
3 \times 3
3×3的非奇异矩阵(非奇异所以可逆),我们把它表示为
A
A
A,那么整个相关性就可以表示为
l
=
A
x
l=Ax
l=Ax。
这个 A A A提供了点和线的关系,但是 A A A不是对称的。那么如果 A A A是对称的,会是什么情况? 这就引出了共轭点的概念:
共轭点 点 y y y在由 x x x确定的极线上,那么 y y y和 x x x就是共轭点,表示为 y T l = y T C x = 0 y^T l = y^T Cx=0 yTl=yTCx=0。
所以 C C C描述的就是点和线之间的关系。
另外,共轭点有一个性质: x x x如果在 y y y的极线上, y y y也会在 x x x的极线上。
2.8.2 Classification of conics
圆锥可以确定双曲线、抛物线、椭圆这三种类别。它们分别是用平面和圆锥相交形成的。那么我们如果从投影几何的角度考虑,用无穷远处的直线来和一个椭圆相交,如果没有实交点,那就形成了椭圆,如果有一个交点,那就是抛物线,如果有两个交点, 那就是双曲线,如下图所示:
如果我们从代数的角度考虑,将
C
C
C用SVD分解得到
C
=
U
T
D
U
C=U^TDU
C=UTDU,其中
D
D
D就是矩阵的特征值,把
D
D
D再次SVD分解,保证
D
D
D的特征值是-1或1或0,这样根据
D
D
D特征值的不同,就得到不同类型的圆锥,如下表所示:
2.9 Fixed points and lines
我们知道 l ∞ l_{\infty} l∞和椭圆点在投影变换下是不变的。那么,如果把一个变换看成矩阵,点和线看成向量,那么什么样的向量在矩阵的作用下不变?特征值对应的向量。所以说那些不变的点和线就是投影矩阵的特征向量。
下面分别介绍不同变换中的固定点:
欧式变换(刚体变换) 其特征值是{ e i θ , e − i θ e^{i \theta}, e^{-i \theta} eiθ,e−iθ},2个固定点是前文提到的circular points(椭圆点)。
相似变换 其特征值是{1, s e i θ , s e − i θ se^{i \theta},s e^{-i \theta} seiθ,se−iθ},2个固定点是前文提到的椭圆点。
仿射变换 2个固定点可以是实点或者复数点,但是通过这些点的固定线 l ∞ l_{\infty} l∞在任何情况下都是实的。