根据已知的3阶变换矩阵 H [ a 11 a 12 a 13 a 21 a 22 a 23 0 0 1 ] H \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ 0 & 0 & 1 \ \end{bmatrix} H a11a210a12a220a13a231 ,由平移、旋转、各向同性缩放、各向同性剪切顺序变换而成,求平移,旋转角度、缩放、剪切的矩阵。
平移:平移矩阵表示平移变换,一般形式如下:
T
=
[
1
0
x
0
1
y
0
0
1
]
T = \begin{bmatrix} 1 & 0 & x \\ 0 & 1 & y \\ 0 & 0 & 1 \ \end{bmatrix}
T=
100010xy1
其中(x, y)表示平移的距离。根据H的形式,平移矩阵的x和y分别为 a 13 a_{13} a13和 a 23 a_{23} a23:
T = [ 1 0 a 13 0 1 a 23 0 0 1 ] T =\begin{bmatrix} 1 & 0 & a_{13} \\ 0 & 1 & a_{23} \\ 0 & 0 & 1 \ \end{bmatrix} T= 100010a13a231
旋转:旋转矩阵表示旋转变换,一般形式如下:
R
=
[
c
o
s
(
θ
)
−
s
i
n
(
θ
)
0
s
i
n
(
θ
)
c
o
s
(
θ
)
0
0
0
1
]
R = \begin{bmatrix} cos(\theta) & -sin(\theta) & 0 \\ sin(\theta) & cos(\theta) & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}
R=
cos(θ)sin(θ)0−sin(θ)cos(θ)0001
其中 ( θ ) (\theta) (θ)表示旋转的角度。根据H的形式,旋转矩阵的角度 ( θ ) (\theta) (θ)可以通过以下公式计算:
c o s ( θ ) = a 11 / a 11 2 + a 21 2 cos(\theta) = a_{11}/\sqrt{a_{11}^2 + a_{21}^2} cos(θ)=a11/a112+a212
s i n ( θ ) = a 21 / a 11 2 + a 21 2 sin(\theta) = a_{21}/\sqrt{a_{11}^2 + a_{21}^2} sin(θ)=a21/a112+a212
缩放:缩放矩阵表示沿着坐标轴方向进行尺度变换,一般形式如下:
S
=
[
s
x
0
0
0
s
y
0
0
0
1
]
S = \begin{bmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \ \end{bmatrix}
S=
sx000sy0001
其中(s_x)和(s_y)分别表示沿x轴和y轴的缩放因子。根据H的形式,缩放矩阵的缩放因子可以通过以下公式计算:
s x = a 11 2 + a 21 2 s_x = \sqrt{a_{11}^2 + a_{21}^2} sx=a112+a212
s y = a 12 2 + a 22 2 s_y = \sqrt{a_{12}^2 + a_{22}^2} sy=a122+a222
剪切:剪切矩阵表示坐标轴方向的切变变换,一般形式如下:
S
H
=
[
1
α
0
β
1
0
0
0
1
]
SH = \begin{bmatrix} 1 & \alpha & 0 \\ \beta & 1 & 0 \\ 0 & 0 & 1 \ \end{bmatrix}
SH=
1β0α10001
其中 ( α ) (\alpha) (α)和 ( β ) (\beta) (β)表示剪切因子。根据H的形式,剪切因子可以通过以下公式计算:
a 12 = α ⋅ a 11 a_{12} = \alpha \cdot a_{11} a12=α⋅a11
a 22 = β ⋅ a 21 a_{22} = \beta \cdot a_{21} a22=β⋅a21