Page 59 -
P. 59
38 2 Image formation
^ n u
v
v Œ v ××
ș u ŏ
v ŏ
v ×
Figure 2.5 Rotation around an axis ˆn by an angle θ.
which is the component of v that is not affected by the rotation. Next, we compute the
perpendicular residual of v from ˆn,
T
v ⊥ = v − v =(I − ˆnˆn )v. (2.30)
◦
We can rotate this vector by 90 using the cross product,
v × = ˆn × v =[ˆn] × v, (2.31)
where [ˆn] × is the matrix form of the cross product operator with the vector ˆn =(ˆn x , ˆn y , ˆn z ),
0 −ˆn z ˆ n y
⎡ ⎤
[ˆn] × = ⎣ ˆ n z 0 −ˆn x ⎦ . (2.32)
−ˆn y ˆ n x 0
◦
Note that rotating this vector by another 90 is equivalent to taking the cross product again,
2
v ×× = ˆn × v × =[ˆn] v = −v ⊥ ,
×
and hence
2
v = v − v ⊥ = v + v ×× =(I +[ˆn] )v.
×
We can now compute the in-plane component of the rotated vector u as
2
u ⊥ = cos θv ⊥ + sin θv × = (sin θ[ˆn] × − cos θ[ˆn] )v.
×
Putting all these terms together, we obtain the final rotated vector as
2
u = u ⊥ + v =(I + sin θ[ˆn] × +(1 − cos θ)[ˆn] )v. (2.33)
×
We can therefore write the rotation matrix corresponding to a rotation by θ around an axis ˆn
as
2
R(ˆn,θ)= I + sin θ[ˆn] × +(1 − cos θ)[ˆn] , (2.34)
×
which is known as Rodriguez’s formula (Ayache 1989).
The product of the axis ˆn and angle θ, ω = θˆn =(ω x ,ω y ,ω z ), is a minimal represen-
◦
tation for a 3D rotation. Rotations through common angles such as multiples of 90 can be
represented exactly (and converted to exact matrices) if θ is stored in degrees. Unfortunately,