MVG读书笔记——三维空间中的射影几何(一)

来源:互联网 发布:什么是大数据开发 编辑:程序博客网 时间:2024/05/18 17:04

前面讲了2D情况下的射影几何和射影变换,我们用到更多的则是3D情况下的射影几何。这里只需对一些概念进行推广即可。

三维齐次坐标

IP3中的点我们使用一个4元组X=(x1,x2,x3,x4)T表示,它与非齐次坐标(X,Y,Z)的关系是

X=x1x4,Y=x2x4,Z=x3x4

单应矩阵

IP3中的变换可以用一个4×4的矩阵H表示。即X=HX

平面

三维空间中的平面可以写成

π1X+π2Y+π3Z+π4=0

考虑到只有系数间的比例关系是有意义的,它的自由度为3。在齐次空间中可以用一个4维向量表示,即ππ=(π1,π2,π3,π4)T
(通过替换非齐次坐标)写成平面方程形式为
π1x1+π2x2+π3x3+π4x4=0

πTπTX=0

ππ的前三个系数对应着欧氏几何中平面的法线,使用非齐次坐标表示就是nX~+d=0。其中n=(π1,π2,π3)T,X~=(X,Y,Z)T,x4=1,d=π4。在此形式下,|d|/||n||是平面到原点的距离。

三点确定一个平面

设有三个不共线的点X1,X2,X3,他们都在平面π上,则有πTXi=0,i=1,2,3
因此

XT1XT2XT3π=0

X1,X2,X3不共线,故他们线性不相关,因此它们构成的3×4矩阵的秩为3。π可以从该矩阵的零空间得到。

在二维平面中我们通过l=x1×x2来确定一条直线,类似的,我们也能用更简单的方法由三点确定一个平面。

首先我们定义一个矩阵M=[X,X1,X2,X3]。其中X为空间中任意一点。X1,X2,X3为用来确定平面π的3点。

显然,对于平面上一点X=[x1,x2,x3,x4],它必能被X1,X2,X3线性表出,从而有det M = 0。

从第一列对det M展开有detM=x1D234x2D134+x3D124x4D123 。其中Djkl是由矩阵[X1,X2,X3]的jkl行组成的新矩阵。由于det M = 0,可以得到

π=(D234,D134,D124,D123)T

这也是之前平面所满足的方程的解。

将空间点X表示为X=[X~  1]T,X~=[x y z]T。则有

D234=Y1Y3Z1Z30Y2Y3Z2Z30Y3Z31=((X1~X2~)×(X2~X3~))1

对其他的系数也有相似的结果,于是
π=[(X1~X2~)×(X2~X3~)XT3~(X1~×X2~)]

其中(X1~X2~)×(X2~X3~)为平面的法线。

平面的射影变换

π=HTπ

平面的参数方程表示

对平面π上一点X可以使用参数方程表示,即

X=Mx

x为自变量,M为与π对应的参数,有πTM=0。设π=(a,b,c,d)T,则它的参数矩阵的转置MT=[p|I3×3],p=(b/a,c/a,d/a)T