仿射变换是平移、缩放、旋转、对称、错切五种变换的组合,其数学表达形式如下:
⎧⎩⎨⎪⎪x′=a11x+a12y+x0y′=a12x+a22y+y0
采用齐次坐标系表示如下:
[x′y′1]=[xy1]⋅⎡⎣⎢⎢⎢a11a12x0a12a22y0001⎤⎦⎥⎥⎥
从上面的公式可以看出,仿射变换就是线性变换加上平移变换。
下面分别看一下仿射变换的特例:平移,缩放(比例),旋转,对称,和错切。
1. 平移变换
平移变换可以表示为:
⎧⎩⎨⎪⎪x′=x+x0y′=y+y0
齐次坐标系中的平移变换矩阵形式:
[x′y′1]=[xy1]⋅⎡⎣⎢⎢⎢10x001y0001⎤⎦⎥⎥⎥
2. 比例变换
比例变换可以表示为:
⎧⎩⎨⎪⎪x′=sx⋅xy′=sy⋅y
齐次坐标系中的平移变换矩阵形式:
[x′y′1]=[xy1]⋅⎡⎣⎢⎢⎢sx000sy0001⎤⎦⎥⎥⎥
3. 旋转变换(绕原点旋转 θ 角度,以逆时针方向旋转为正角度)
旋转变换可以表示为:
⎧⎩⎨⎪⎪x′=xcosθ−ysinθy′=xsinθ+ycosθ
齐次坐标系中的平移变换矩阵形式:
[x′y′1]=[xy1]⋅⎡⎣⎢⎢cosθ−sinθ0sinθcosθ0001⎤⎦⎥⎥
4. 对称变换
以 y 轴为对称线,矩阵表示为:
以 x 轴为对称线,矩阵表示为:
以 y 轴为对称线,矩阵表示为:
5. 错切变换
沿 x 方向错切,可表示为:
齐次坐标系中的矩阵形式:
[x′y′1]=[xy1]⋅⎡⎣⎢⎢1sx0010001⎤⎦⎥⎥
同理,沿 x 方向错切,可表示为:
齐次坐标系中的矩阵形式:
[x′y′1]=[xy1]⋅⎡⎣⎢⎢⎢100sy10001⎤⎦⎥⎥⎥
可以看到这五种变化就是仿射变换的特例。