透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。其原理如下图所示。
Python结合OpenCV, 能够实现透视变换。其基本方法是在原始图上选择四个点,任意三个点都不共线。对应地在要变换到的图上设置4个点。使用cv2.getPerspectiveTransform()方法计算得到从原图像到新图像的变换矩阵。使用cv2.warpPerspective()方法,按照获取的变换矩阵将原图像变换为新的图像。
动态改变原图上4个点的位置,能获得一系列变换图像。使用imageio模块,将它们制作为gif,能够动态演示透视变换的过程,造成观察者对被观察对象视角变化的视觉效果。
以下几个例子动态演示了透视变换的过程。每个gif都产生在一幅原始图片。
以后有机会再附上代码。