依旧是对鲁鹏老师的计算机视觉之三维重建课程 进行整理,在加上一些自己的理解。

在进行三维重建时,使用的都是齐次坐标(为什么要用齐次坐标?),故这里的变换都是针对图形的齐次坐标。

2D平面中的变换

· 等距变换

等距变换是指变化前后,图形中任意两点之间的距离保持不变。用矩阵表示则为:

当上式中的 时,表示保向变换(即欧式变换,我们日常中最常见平面中的平移、旋转);当时,表示逆向变换(即镜像变换)。

img1

保向变换(欧式变换)

img3

保向变换主要对图形进行平移和旋转操作,其矩阵表示为:

其中,分别表示平移的单位距离,表示旋转的角度。

img2

简单推导:

如上图,点旋转度后,到达处,假设到坐标原点的距离都为,那么容易得到:

加上平移以后,即得到:

将上式使用矩阵表示,则为前面的欧式变换矩阵。

· 相似变换

img4

相似变换与欧式变换的差异主要是,相似变换可以进行均匀伸缩变化,即分别在轴坐标上乘以一个相等的变伸缩倍数,该伸缩变换使用矩阵表示为:

所以,相似变换即可以由前面欧式变换中的平移、旋转和上面的伸缩变换一起得到:

该变换拥有4个自由度,分别是旋转角度、平移距离和伸缩倍数。相似变换能够维持原图像中线段间的长度比值、夹角大小等性质。

· 仿射变换

img5

仿射变换相对于相似变换有着更多的自由度,该变换后,将不再维持线段间的夹角大小。但是,线段间的平行性、平行线段间的长度比值以及图形中面积的比值还是维持不变的。该变换使用矩阵表示为:

· 射影变换(透视变换)

img6

射影变换即为透视变换,在日常中我们通过眼睛看到的图像,其实就是使用的透视变换,尽管那是在3D空间中做的透视变换,但是其原理是差不多的。透视变换之后,平行线之间的关系将被破坏,但同一直线上的点,将仍旧在一条直线上,且共线点之间的交比仍旧维持。该变换使用矩阵表示为:


3D空间中的变换

在3D空间中的变换和2D平面中的变换没有本质区别,只是增加了一个维度。

· 相似变换

3D空间中的相似变换,可以分解为分别忽略轴后,进行2D平面上的相似变换,其使用矩阵表示为:

其中,

所以,在3D空间中进行相似变换,拥有平移,旋转以及缩放倍数共计7个自由度。

· 仿射变换

拥有12个自由度。

· 射影变换(透视变换)

拥有15个自由度。