本节介绍后续文章涉及到的几何思想和符号定义,以便于理解交流。其中一些想法比较熟悉,如消失点的形成、圆锥曲线表示方法等,而另一些想法较难理解,如使用圆点移除图像中的透视畸变。这些想法在2维平面因可视化强易于理解。至于3维空间几何,将在后续文章详细介绍,它也仅是2维平面的一种泛化应用。 所以,本节及后续文章要先谈论平面投影变换的几何内容。这些变换的建立基于几何学的畸变模型,而畸变在透视相机的平面成像过程中出现。在透视成像时,某些几何性质保留下来,如相关线性度(一条直线成像后依旧是直线),而另一些性质则无法保留下来,如平行线成像后一般不会是平行线。投影几何建立成像过程的模型,也提供适于电脑计算的数学方程。 首先,描述基于齐次坐标的点、线、圆锥曲线的表达形式(这篇文章主要是涉及这一部分);其次,几何对象在透视变换下如何映射,无穷远线和圆点的引入,可以概括平面的仿射和量度性质;其次,给出平面算法,借助算法可以从图像中计算仿射和量度性质;最后,我们将描述投影变换下的固定点。 2.1平面几何 平面几何的基本概念众人皆知,生活中经常可以接触到这些概念。从初等层面讲,几何学是研究点、线、以及两者关系的学科。纯粹几何学研究的内容是基于几何元素而非坐标系,因此定理的陈述及证明仅是依据几何元素进行,而未使用代数,传统的欧几里得方法就是典型实例。但由于笛卡尔,几何学开始代数化,几何学的定理可以从代数角度推理求证。本书中,我们将几何和代数的方法均会使用,有时是几何元素,有时是代数方法。在代数方法中,几何元素会采用坐标或其他代数元素描述。因此,一个点与某个坐标系下向量对应、一条直线也与向量对应、圆锥曲线则采用对称矩阵表示。事实上,我们已经承认这种对应关系,向量表示点、直线,或者对称矩阵表示圆锥曲线。代数方法研究几何的一大优势是,推导的结论易于形成算法进而为计算机使用。 2.2 二维投影平面 行和列向量.稍后,我们将考虑向量空间的线性映射,并将映射表示成矩阵形式。通常情况下,矩阵和向量乘积是另一个向量,图像是基于这样的映射。这使得列向量和行向量的区别,因为乘积的过程是左侧取行向量乘以右侧列向量而得,因此几何元素默认表示为列向量,平面内的点表示为列向量(x,y)T。 2.2.1点和线 直线齐次坐标.平面内直线的方程式是ax+by+c=0,不同的系数a/b/c确定不同的直线。因此,直线是由向量(a,b,c)T表示。直线和向量(a,b,c)T并不是一一对应,因为当常量系数k不为0时,直线ax+by+c与kax+kby+kc=0是相同的。因此,当常量系数k不为零时,向量(a,b,c)T和k(a,b,c)T表示相同的直线。这样两个通过比例系数联系在一起的向量,可以视作是等价的。在这种等价关系下的向量,称之为齐次向量。向量(a,b,c)表示一群等价的向量,R3-(0,0,0)T空间内这种等价向量的集合形成了P²投影空间。注:-(0,0,0)T表示零向量排除在外,不对应任何直线。 点齐次坐标.如果ax+by+c=0成立,则点x=(x,y)T在直线l=(a,b,c)T上。该方程亦可以采用向量内积的表达形式,即(x,y,1)(a,b,c)T=(x,y,1)l=0;即R²空间的点(x,y)T在末尾增加坐标1表示成3维向量。注:当常量系数k不为0时,若(x,y,1)l=0成立,则(kx,ky,k)l=0也成立。因此,我们认为随着常量k不断变化构成的向量(kx,ky,k)T的集合也是R²空间点(x,y)的表达式。因此,参照直线齐次坐标,点也可以用齐次向量表示。点的任意齐次向量表达式是 x=(x1,x2,x3)T它表示R2空间的点(x1/x3,x2/x3)T那么,齐次向量形式的点也是P2空间的元素。 因此,一个简单的方程(x,y,1)(a,b,c)T=(x,y,1)l=0,表示了点在直线上。 结论2.1.当且仅当xTl=0时,点x在直线l上。 注:表达式xTl是两个向量x和l的内积,内积xTl=lTx=x.l。一般来说,更偏向于采用转置形式lTx,但极个别情况下,也采用·表示内积。我们区别一个点的齐次坐标和非齐次坐标形式,前者是三维向量(x1,x2,x3)T,后者是 (x,y)T。 自由度(dof).确定一个点,需要明确点的x和y坐标。同样,直线也需要明确两个参数(a:b:c两个比值),所以点和直线都有两个自由度。例如,在非齐次坐标表示时,直线的两个参数可以选择斜率和y向截距。 直线交点.给定两条直线l=(a,b,c)T和l'=(a',b',c')T,我们希望确定交点。我们定义向量x=l×l',此处×表示叉积(叉乘结果垂直于原来两向量,而两垂直向量点积是0)。根据点乘叉乘性质,l.(l×l')=l'.(l×l')=0,即lTx=l'Tx=0。因此,如果x表示一个点,则点x既在直线l上也在l'上,即点x是两直线交点,可得到结论2.2: 结论2.2.若有两条直线l和l',则两直线交点x=l×l'。 注:两直线交点表达式的简化是直线和点采用齐次向量表示的直接结果。 例2.3.思考直线x=1和y=1的交点。直线x=1的方程为-1x+1=0,因此齐次坐标形式是l=(-1,0,1)T;直线y=1的方程为-1y+1=0,因此齐次坐标形式是l'=(0,-1,1)T。根据结论2.2,两直线交点是 该交点的非齐次坐标是:(1,1)T。 连接两点的直线.经过两点x和x’的直线表达式也可根据类似推导得到。定义一条直线l=x×x',则可以证明点x和x'均在直线l上。l是叉乘结果,所以l垂直于x和x',因此l和x/x’的点积为0,即lTx=lTx'=0,所以点x和x'都在直线l上,即 结论2.4.若有两个点x和x',则经过两点'的直线l=x×x'。 2.2.2 理想点和无穷远线 平行线交点.现有两条直线ax+by+c=0和ax+by+c'=0,两条直线可以用向量l=(a,b,c)T和l'=(a,b,c')T表示,且前两个坐标相同。根据结论2.2可以求得两直线交点l×l'=(c'-c)(b,-a,0)T,暂时忽略比例系数(c-c'),仅看点(b,-a,0)T。 现在,我们尝试寻找这个点的非齐次坐标形式,可以得到(b/0,-a/0)T,该点没有意义,除非这个交点有无限大坐标。一般来说,点的齐次坐标形式为(x,y,0)T并不对应于R2空间任何有限点。这个现象与平行线相较于无限远的想法不谋而和。 例2.5.现有两条直线x=1和x=2,这两条直线平行,因此相较于无限远。当使用齐次坐标时,直线l=(-1,0,1)T,直线l'=(-1,0,2)T,根据结论2.2,两直线交点是, 该交点在y轴方向无穷远处。 理想点和无穷远线.齐次向量x=(x1,x2,x3)T且x3≠0,该点对应于R2空间某个有限点。通过在坐标后增加一个坐标x3=0,使R2空间扩大,扩大后的空间是所有三维齐次向量的集合,称为投影空间P2。末尾坐标是0的点称为理想点,或无穷远点。所有理想点的集合写作(x1,x2,0)T,可以通过x1:x2比值确定。注意:这个集合位于某条直线上,即无穷远线上,记作I¥=(0,0,1)T;事实上,可验证无穷远线和无穷远点关系,(0,0,1)(x1,x2,0)T=0. 二次曲线(圆锥体),是平面内由二次方程描述的曲线。欧几里得几何中,二次曲线主要分三大类型:双曲线、椭圆、抛物线(除了所谓的退化二次曲线,将在后文定义)。这三种是圆锥体三维空间中在截面上的投影。但是,在2D投影几何中,在投影变换作用下,所有非退化二次曲线(圆锥曲线)都是等价的。 注:二次曲线系数矩阵是对称矩阵。正如点和直线采用齐次坐标形式,矩阵元素唯有比值最重要的,因为非零系数乘以矩阵C并不会影响上面方程。因此,C是二次曲线的齐次表达形式。二次曲线有五个自由度,即比值{a:b:c:d:e:f}或者等价于对称矩阵6个元素少一个比例值。 二次曲线c是5×6矩阵的零向量。这表明,五个点可以唯一确定二次曲线(按比例)。这种方法,以拟合几何实体决定零空间,将在本书涉及计算的章节中频繁被使用。 |
|