1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 仿射几何 投影几何与欧几里得几何

仿射几何 投影几何与欧几里得几何

时间:2024-04-15 20:23:40

相关推荐

仿射几何 投影几何与欧几里得几何

什么是投影变换

在了解仿射几何和欧几里得几何之前,我们需要了解什么什么是投影变换:可以举一个生活中的例子,在我们看一张相片得时候,我们会看到圆形在图片中不会呈现圆形得形状,方形在图片中不会呈现方形得形状,那么这种映射平面中的物体到图片中的变换就成之为投影转换。

投影变换中不变的几何属性

那么哪些几何属性在投影变换中是不会改变的呢?首先,我们可以排除形状,因为我们刚才所提到的,现实中的圆形在图片中就会被看成是椭圆形。那么当然也不会是长度,因为圆的两个垂直半径会在投影转换中被伸展为不同的长度。那么同理,角度,距离,距离比例这些量都不会在投影变换中被保留。那么唯一被保留下来的几何属性是什么呢?我们称其为直线性(straightness)。事实证明,这是对映射的最一般要求,我们可以将平面的投影变换定义为平面上保持直线的点的任何映射。

由欧几里得空间到投影空间

为了了解为什么需要投影几何学(投影空间),我们需要从我们熟知的欧几里得几何学开始说起。那么欧几里得几何学主要描述的是物体的角度和形状,但是欧几里得几何学不是完美的,对于几何学的一些基本概念,我们需要不断地给出特例去推理这些概念,例如线之间的相交。在二维空间中,两条线总是相交于一点的,但是也有一些线之间是不会相交的,我们称这些线为平行线,我们想要绕开这一点去解释就只能说他们在无限远处相交,然而,这并不是完全令人信服的,因为这与另一条公理相违背,即:无穷是不存在的,无穷只是方便我们解释而虚构出来的一个概念,那么我们想再绕开这一点就只能增加平行线在无穷远处的交点,并称这些点为理想点,由此我们增强了欧几里得平面。

那么通过增加这些在无限远处的理想点,我们熟悉的欧几里得空间就会转换为另一种空间–投影空间。这是一种非常有用的思维方式,因为我们熟悉欧几里德空间的性质,包括距离、角度、点、线和关联等概念。射影空间并没有什么神秘之处——它只是欧几里德空间的一个扩展,在投影空间中,两条直线总是在一个点上相交,尽管有时在无穷远处的神秘点上相交。

齐次坐标系

我们在这里要介绍一个非常重要的概念–齐次坐标系。我们依然据刚刚平行线的例子,在欧式几何空间中,两条平行的直线是不能相交的,然而,在投影空间中,是可以相交的。比如下图的铁路,在无穷远的地方交为一点。

在笛卡尔坐标系中,一个2维点可以表示为(x,y)( x , y )(x,y) 。如果这个点事无穷远,该怎么表示呢?无穷远的点应该表示为(∞,∞)(\infty,\infty)(∞,∞),这样的表示毫无意义。在投影空间中,两个平行的直线相交于无穷远的一点,这在欧式空间中是无法表示的,但是数学家们已经找到了方法来解决这个问题,就是引入齐次坐标系。

简而言之,齐次坐标就是用N+1维来代表N维坐标。

我们可以在一个2D笛卡尔坐标末尾加上一个额外的变量w来形成 2D齐次坐标。因此,一个在笛卡尔坐标系下的点(X,Y)(X, Y)(X,Y)在齐次坐标里面变成了 (x,y,w)(x,y,w)(x,y,w)。

并且有X=x/w,Y=y/wX=x/w,Y=y/wX=x/w,Y=y/w

例如,笛卡尔坐标系下 (2,3)(2,3)(2,3)齐次坐标可以表示为(2,3,1)(2,3,1)(2,3,1) ,如果点 (2,3)(2,3)(2,3)移动到无限远处,在笛卡尔坐标下它变为 (∞,∞)(\infty,\infty)(∞,∞) ,然后它的齐次坐标表示为 (2,3,0)(2,3,0)(2,3,0) ,因为 (2/0,3/0)=(∞,∞)(2/0,3/0)=(\infty,\infty)(2/0,3/0)=(∞,∞)。 注意这样的话,我们可以不用 ” (∞,∞)(\infty,\infty)(∞,∞) " 来表示一个无穷远处的点了。

为什么叫齐次坐标系:

如前面所述,我们把齐次坐标转化为笛卡尔坐标的方法是前面n-1个坐标分量分别除以最后一个分量即可。

把坐标从齐次坐标转换为笛卡尔坐标,我们可以发现这样一个事实。看下面的例子:

Homogeneous⇔CartesianHomogeneous \Leftrightarrow Cartesian Homogeneous⇔Cartesian

(1,2,3)⇔(1/3,2/3)(1,2,3) \Leftrightarrow (1/3,2/3) (1,2,3)⇔(1/3,2/3)

(2,4,6)⇔(2/6,4/6)=(1/3,2/3)(2,4,6) \Leftrightarrow (2/6,4/6)= (1/3,2/3) (2,4,6)⇔(2/6,4/6)=(1/3,2/3)

(4,8,12)⇔(4/12,8/12)=(1/3,2/3)(4,8,12) \Leftrightarrow (4/12,8/12)= (1/3,2/3) (4,8,12)⇔(4/12,8/12)=(1/3,2/3)

(1a,2a,3a)⇔(1a/3a,2a/3a)=(1/3,2/3)(1a,2a,3a) \Leftrightarrow (1a/3a,2a/3a)= (1/3,2/3) (1a,2a,3a)⇔(1a/3a,2a/3a)=(1/3,2/3)

去哦吗我你会发现 (1,2,3),(2,4,6),(4,8,12)(1,2,3),(2,4,6),(4,8,12)(1,2,3),(2,4,6),(4,8,12) 对应同一个欧几里得点(笛卡尔空间点)(1/3,2/3)(1/3,2/3)(1/3,2/3) 。任何标量的乘积,(1a,2a,3a)(1a,2a,3a)(1a,2a,3a)对应 笛卡尔空间里面的都是 (1/3,2/3)(1/3,2/3)(1/3,2/3) 。因此,这些点是“齐次的 (Homogeneous adj. 同类的,同质的)”,因为他们代表了欧氏空间(笛卡尔坐标空间)里面的同一个点。换句话说,齐次坐标有规模不变性。

证明齐次坐标系下的两条平行线可以相交

考虑如下欧几里得空间的平行线的方程:

{Ax+By+C=0Ax+By+D=0\left\{ \begin{aligned} Ax+By+C=0 \\ Ax+By+D=0 \\ \end{aligned} \right. {Ax+By+C=0Ax+By+D=0​

我们知道在笛卡尔坐标系里面,如果C≠DC\neq DC​=D该方程组无解。

在投影空间里中,让我们用齐次坐标 x/w,y/wx/w, y/wx/w,y/w 分别代替 x,yx ,yx,y 重写这个方程:

{Ax/w+By/w+C=0Ax/w+By/w+D=0\left\{ \begin{aligned} Ax/w+By/w+C=0 \\ Ax/w+By/w+D=0 \\ \end{aligned} \right. {Ax/w+By/w+C=0Ax/w+By/w+D=0​

可以化为:

{Ax+By+Cw=0Ax+By+Dw=0\left\{ \begin{aligned} Ax+By+Cw=0 \\ Ax+By+Dw=0 \\ \end{aligned} \right. {Ax+By+Cw=0Ax+By+Dw=0​

现在我们有一个解(x,y,0)(x,y,0)(x,y,0),因为(C−D)w=0(C-D)w=0(C−D)w=0,所以w=0w=0w=0 。因此,两条直线相交于(x,y,0)(x,y,0)(x,y,0) ,这个点在无穷远处。

将点转化为齐次坐标

#归一化def normalize(points):for row in points:row/=points[-1]return points#转换齐次坐标def make_homog(points)return vstack((points,ones(1,points.shape[1])))

齐次坐标的意义:

如果一个点在无穷远处,这个点的坐标将会(∞,∞)(\infty,\infty)(∞,∞),在欧氏空间中,这就变得没有意义。如果使用齐次坐标,平行线在透视空间的无穷远处交于一点,这样就实现了对于无穷点的表示,但是在欧氏空间不能表示无穷点。

也就是说:通过利用齐次坐标就可以表示无穷远处的点。

欧几里得空间向投影空间的转换

我们通过把点表示称为齐次向量,就可以完成从欧几里得空间到投影空间的转换。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。