仿射变换和透视变换更直观的叫法可以叫做“平面变换”和“空间变换”或者“二维坐标变换”和“三维坐标变换”。如果这么命名的话,其实很显然,这俩是一回事,只不过一个是二维坐标(x,y),一个是三维坐标(x,y,z)。也就是:
仿射变换:
透视变换:
从另一个角度也能说明三维变换和二维变换的意思,仿射变换的方程组有6个未知数,所以要求解就需要找到3组映射点,三个点刚好确定一个平面。射影变换的方程组有8个未知数,所以要求解就需要找到4组映射点,四个点就刚好确定了一个三维空间。
仿射变换主要包括平移变换、旋转变换、缩放变换(尺度变换)、倾斜变换(也叫错切、剪切变换、偏移变换)、翻转变换。有六个自由度
仿射变换保持二维图形的“平直性”和“平行性”,但是角度会改变。
“平直性”:变换后直线还是直线、圆弧还是圆弧。
“平行性”:平行线还是平行线,直线上点的位置顺序不变。
数学公式如下:
射影变换:是最一般的线性变换。有8个自由度。
射影变换保持重合关系和交比不变。但不会保持平行性。
数学公式如下:
射影变换保持重合关系和交比不变。但不会保持平行性。即它会使得仿射变换产生非线性效应。
其中大矩形中的4个元素组成的整体表示线性变换,比如scaling(尺度),shearing(剪切)和ratotion(旋转);椭圆部分表示平移的参数,一个确定在x方向上的平移一个确定在y方向上的平移;小矩形部分用于产生透视变换。从这里所以可以理解成仿射等是透视变换的特殊形式。