【CG】仿射变换(Affine Transformation)

  • 定义
  • 图示
  • 齐次坐标表达
  • Ref

定义

  • 简单来说,“仿射变换”= “线性变换”+“平移”
  • 线性变换
    • 变换前是直线的,变换后依然是直线
    • 变换前是平行线的,变换后依然是平行线
    • 变换前是原点的,变换后依然是原点
  • 仿射变换
    • 变换前是直线的,变换后依然是直线
    • 变换前是平行线的,变换后依然是平行线
  • 所以,线性变换一定是仿射变换,仿射变换不一定是线性变换

图示

【CG】仿射变换(Affine Transformation)_第1张图片

【CG】仿射变换(Affine Transformation)_第2张图片

如上图线性变换就是通过 翻转旋转缩放错切 这四种原子变换复合而成的变换;仿射变换就是通过 平移翻转旋转缩放错切 这五种原子变换复合而成的变换。

齐次坐标表达

以二维图像的仿射变换为例,

在二维平面上

  • 线性变换 y⃗ =Ax⃗  y → = A x →
  • 仿射变换 y⃗ =Ax⃗ +b⃗  y → = A x → + b →

引入齐次坐标表示

  • 仿射变换

    [y⃗ 1]=[A0,..,0b⃗ 1][x⃗ 1] [ y → 1 ] = [ A b → 0 , . . , 0 1 ] [ x → 1 ]

    展开来看,就是
    xy1=a11a210a12a220t1t21x0y01 [ x y 1 ] = [ a 11 a 12 t 1 a 21 a 22 t 2 0 0 1 ] [ x 0 y 0 1 ]

  • 从代数角度看,仿射变换矩阵具有 6 个自由度,一组对应点 (x0,y0)(x,y) ( x 0 , y 0 ) ⇐⇒ ( x , y ) 可以提供两个等式,因此基于不共线的三组对应点,可以唯一确定仿射变换。

  • 从几何角度看,齐次坐标把二维上的仿射变换升维成了三维上的线性变换。可以去 Wikipedia上看这个的动图
    【CG】仿射变换(Affine Transformation)_第3张图片

Ref

  • Affine transformation - Wikipedia

你可能感兴趣的:(CG)