跳转至

透视投影变换就是三维变换

透视投影(Perspective Projection)变换推导 这篇文章非常明了地介绍了齐次坐标,以及为什么要用齐次坐标

图像透视变换原理及实现 这个讲了下透视变换的原理,2d点先变换到3d点,然后3d点除以Z坐标再变换回二维坐标

这里有两个问题:

3d坐标变换回2d坐标,为什么直接除以z坐标

因为等式右边的变换源坐标是(x,y,1),说明透视点距离投影平面的z坐标是1,变换后3d坐标不在投影平面上,从观察点(3d原点),经过投影平面到达变换后的3d坐标,跟投影平面相交的点,构建三角形,根据比例,可以推导交点的x/y坐标的比例关系

其实透视投影变换就是三维空间中的坐标变化: 透视变换

平面上A,B,C,D四个点通过透视变换,变换到三维空间中E,F,G,H 四个点;观察点O(原点)和E,F,G,H的连线交平面与M,P,Q,R四个点, 我们定义ABCD所在平面的Z坐标为1,那么我们可以得到变换公示:

变换公式

可以看到透视投影里面用的是平面里面四个点变换前后的对应关系,但是实际上是一组三维变换,只是我们用三维坐标与原点交平面的交点来替代三维点的变换

为什么可以直接指定a33=1

同理是不是所有的变换关系都可以指定a33=1通过8个方程来求解3x3的变换矩阵?