天天看點

什麼是仿射變換以及仿射變換矩陣?(轉)

仿射變換可以了解為

・對坐标進行放縮,旋轉,平移後取得新坐标的值。

・經過對坐标軸的放縮,旋轉,平移後原坐标在在新坐标領域中的值。

如上圖所示,XY坐标系坐标軸旋轉θ,坐标原點移動(x0,y0)。

XY坐标系中的坐标(X,Y),則求新坐标系xy中的坐标值的方程組為:

X = X・cosθ - Y・sinθ + x0

Y = X・sinθ + Y・cosθ + y0

寫成矩陣形式為

| x |              | cosθ   sinθ |   | x0 |

|   | = | X Y | * |               | + |    |

| y |              | -sinθ cosθ |   | y0 |

為将原點移動的值放入矩陣,則可以加入一個不影響原方程組的解的備援方程。于是可以寫成

1 = X・0     + Y・0     + 1

| x |                 | cosθ   sinθ   0|

| y | = | X Y 1 | * | -sinθ cosθ   0|

| 1 |                 | x0      y0      1|

這個矩陣就是Helmert變換矩陣。

考慮到新坐标系對于原坐标系在x,y兩個坐标軸上的放縮率,可分别表示為λx和λy,則Helmert變換方程組可以修改為

X = (λx)X・cosθ - (λy)Y・sinθ + x0

Y = (λx)X・sinθ + (λy)Y・cosθ + y0

同樣按照前述方法寫成三階矩陣為

| x |                 | (λx)cosθ   (λx)sinθ   0|

| y | = | X Y 1 | * | (λy)-sinθ (λy)cosθ   0|

| 1 |                 |  x0           y0          1|

這個矩陣就是affine變換矩陣,仿射矩陣。