2 Projective Geometry and Transformations of 2D
本章主要介绍本书必要的几何知识与符号。
文章目录
-
2 Projective Geometry and Transformations of 2D
-
-
2.1 Planar geometry
-
2.2 The 2D projective plane
-
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.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.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.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
x
T
就是行向量。对于一个行向量
(
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
a
x
+
b
y
+
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
a
x
+
b
y
+
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
x
T
l
=
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
a
x
+
b
y
+
c
=
0
,
a
x
+
b
y
+
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
(
x
1
,
x
2
,
x
3
)
T
,把
x
3
=
0
x_3=0
x
3
=
0
, 那么
(
x
1
,
x
2
,
0
)
T
(x_1,x_2,0)^T
(
x
1
,
x
2
,
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
x
3
=
1
。
线段与点的对偶性
点与线段的角色其实可以是互换的。比如说
l
T
x
=
0
l^T x=0
l
T
x
=
0
可以写成
x
T
l
=
0
x^T l = 0
x
T
l
=
0
。
2.2.3 Conics and dual conics
圆锥描述了平面上的二次方程。欧氏几何主要三种:抛物线、双曲线、椭圆。在二维摄影几何里,这三种都是等价的。
我们首先把圆锥写成其次表达式
x
=
(
x
1
,
x
2
,
x
3
)
x=(x_1,x_2,x_3)
x
=
(
x
1
,
x
2
,
x
3
)
[
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]
a
b
/2
d
/2
b
/2
c
e
/2
d
/2
e
/2
f
圆锥就可以写成
x
T
C
x
=
0
x^TCx=0
x
T
C
x
=
0
圆锥有5个自由度。
五个点确定一个圆锥
我们把圆锥换一个方式写,用
x
=
x
1
/
x
3
,
y
=
x
2
/
x
3
x=x_1/x_3,y=x_2/x_3
x
=
x
1
/
x
3
,
y
=
x
2
/
x
3
,可以得到:
(
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)
(
x
i
2
,
x
i
y
i
,
y
i
2
,
x
i
,
y
i
,
1
)
c
=
0
c
=
(
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
=
C
x
。
对偶圆锥
在前文中
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
x
1
,
x
2
,
x
3
变换前在一条直线上,当且仅当变换后的他们
(
h
(
x
1
)
,
h
(
x
2
)
,
h
(
x
3
)
)
(h(x_1),h(x_2),h(x_3))
(
h
(
x
1
)
,
h
(
x
2
)
,
h
(
x
3
))
还在一条直线上。
根据这个定义,投影变换也叫共线性,投影变换和单应性是同一个意思。
书中还介绍了另外一种从代数角度来定义的办法。通俗来说就是任何一个
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
′
=
H
x
,那么线变换就是
l
′
=
H
−
T
l
l’=H^{-T} l
l
′
=
H
−
T
l
,圆锥变换就是
x
T
C
x
=
x
′
T
H
−
T
C
H
−
1
x
′
x^TCx = x’^T H^{-T}CH^{-1}x’
x
T
C
x
=
x
′
T
H
−
T
C
H
−
1
x
′
,所以
C
=
H
−
T
C
H
−
1
C=H^{-T}CH^{-1}
C
=
H
−
T
C
H
−
1
,其对偶圆变换就是
C
∗
′
=
H
C
∗
H
T
C^{*’}=HC^{*}H^T
C
∗
′
=
H
C
∗
H
T
。
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
−
cos
0
t
x
t
y
1
x
y
1
可以简写成:
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
′
=
H
E
x
=
[
R
0
T
t
1
]
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
=
s
cos
θ
s
sin
θ
0
−
s
sin
s
cos
0
t
x
t
y
1
x
y
1
可以简写成:
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
′
=
H
S
x
=
[
s
R
0
T
t
1
]
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
=
a
11
a
21
0
a
12
a
22
0
t
x
t
y
1
x
y
1
可以简写成:
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
′
=
H
A
x
=
[
A
0
T
t
1
]
x
整个矩阵有6个自由度,左上角
A
A
A
四个,平移两个。
A
A
A
可以被分解成如下形式:
A
=
R
(
θ
)
R
(
−
ϕ
)
D
R
(
ϕ
)
A=R(\theta) R(-\phi) D R(\phi)
A
=
R
(
θ
)
R
(
−
ϕ
)
D
R
(
ϕ
)
[
λ
1
0
0
λ
2
]
\left[ \begin{matrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{matrix} \right]
[
λ
1
0
0
λ
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
′
=
H
P
x
=
[
A
v
T
t
v
]
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
=
H
S
H
A
H
P
=
[
s
R
0
T
t
1
]
[
K
0
T
0
1
]
[
I
v
T
0
v
]
=
[
A
v
T
t
v
]
H
P
H_P
H
P
移动无穷远处的直线,
H
A
H_A
H
A
是一个仿射变换,
H
S
H_S
H
S
是一个广义的相似变换。
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
ˉ
=
(
x
1
,
x
2
)
T
,其中
x
2
=
0
x_2=0
x
2
=
0
,一维空间单应矩阵就是:
x
ˉ
′
=
H
2
×
x
x
ˉ
\bar{x}’=H_{2 \times x} \bar{x}
x
ˉ
′
=
H
2
×
x
x
ˉ
H
2
×
2
H_{2 \times 2}
H
2
×
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}|}
C
ross
(
x
1
ˉ
,
x
2
ˉ
,
x
3
ˉ
,
x
4
ˉ
)
=
∣
x
1
ˉ
x
3
ˉ
∣∣
x
2
ˉ
x
4
ˉ
∣
∣
x
1
ˉ
x
2
ˉ
∣∣
x
3
ˉ
x
4
ˉ
∣
其中
∣
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]
∣
x
i
ˉ
x
j
ˉ
∣
=
det
[
x
i
1
x
i
2
x
j
1
x
j
2
]
交叉比有这么几个性质:
- 交叉比和用什么坐标系表示无关,因为分子和分母之间的比例相互抵消
-
如果每个点都是有限远处的点并且
x2
=
1
x_2=1
x
2
=
1
, 那么
∣x
ˉ
i
x
ˉ
j
∣
|\bar{x}_{i}\bar{x}_{j}|
∣
x
ˉ
i
x
ˉ
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
=
(
l
1
,
l
2
,
l
3
)
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
=
H
A
1
0
l
1
0
1
l
2
0
0
l
3
H
A
H_A
H
A
是任一个仿射变换,
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
′
=
H
s
I
=
s
cos
θ
s
sin
θ
s
0
−
s
sin
θ
s
cos
θ
0
t
x
t
x
1
1
i
0
=
s
e
−
i
θ
1
i
0
=
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
∞
∗
=
I
J
T
+
J
I
T
这个
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
=
(
l
1
,
l
2
,
l
3
)
T
,
m
=
(
m
1
,
m
2
,
m
3
)
T
m=(m_1,m_2,m_3)^T
m
=
(
m
1
,
m
2
,
m
3
)
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
θ
=
(
l
1
2
+
l
2
2
)
(
m
1
2
+
m
2
2
)
l
1
m
1
+
l
2
m
2
如果对
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
θ
=
(
l
T
C
∞
∗
l
)
(
m
T
C
∞
∗
m
)
l
T
C
∞
∗
m
所以说我们知道了
C
∞
∗
C^*_{\infty}
C
∞
∗
就可以计算出线段或者平面之间的角度(
结论2.23
)。
书中还有一个很明显的结论:如果
l
T
C
∞
∗
m
=
0
l^T C^*_{\infty} m=0
l
T
C
∞
∗
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
∞
∗
′
=
(
H
P
H
A
H
S
)
C
∞
∗
(
H
P
H
A
H
S
)
T
=
[
K
K
T
v
T
K
K
T
K
K
T
v
v
T
K
K
T
v
]
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
=
C
x
,这条
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
=
A
x
。
这个
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
y
T
l
=
y
T
C
x
=
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
=
U
T
D
U
,其中
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}
e
i
θ
,
e
−
i
θ
},2个固定点是前文提到的circular points(椭圆点)。
相似变换
其特征值是{1,
s
e
i
θ
,
s
e
−
i
θ
se^{i \theta},s e^{-i \theta}
s
e
i
θ
,
s
e
−
i
θ
},2个固定点是前文提到的椭圆点。
仿射变换
2个固定点可以是实点或者复数点,但是通过这些点的固定线
l
∞
l_{\infty}
l
∞
在任何情况下都是实的。