仿射變換可以理解為
?對坐標(biāo)進(jìn)行放縮,旋轉(zhuǎn),平移后取得新坐標(biāo)的值。
?經(jīng)過對坐標(biāo)軸的放縮,旋轉(zhuǎn),平移后原坐標(biāo)在在新坐標(biāo)領(lǐng)域中的值。
如上圖所示,XY坐標(biāo)系坐標(biāo)軸旋轉(zhuǎn)θ,坐標(biāo)原點(diǎn)移動(x0,y0)。
XY坐標(biāo)系中的坐標(biāo)(X,Y),則求新坐標(biāo)系xy中的坐標(biāo)值的方程組為:
X = X?cosθ - Y?sinθ + x0
Y = X?sinθ + Y?cosθ + y0
寫成矩陣形式為
| x | | cosθ sinθ | | x0 |
| | = | X Y | * | | + | |
| y | | -sinθ cosθ | | y0 |
為將原點(diǎn)移動的值放入矩陣,則可以加入一個不影響原方程組的解的冗余方程。于是可以寫成
X = X?cosθ - Y?sinθ + x0
Y = X?sinθ + Y?cosθ + y0
1 = X?0 + Y?0 + 1
寫成矩陣形式為
| x | | cosθ sinθ 0|
| y | = | X Y 1 | * | -sinθ cosθ 0|
| 1 | | x0 y0 1|
這個矩陣就是Helmert變換矩陣。
考慮到新坐標(biāo)系對于原坐標(biāo)系在x,y兩個坐標(biāo)軸上的放縮率,可分別表示為λ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變換矩陣,仿射矩陣。