Last change
on this file since 177 was
37,
checked in by (none), 15 years ago
|
Added original make3d
|
-
Property svn:executable set to
*
|
File size:
653 bytes
|
Line | |
---|
1 | function M = vgg_rotmat_from_exp(r)
|
---|
2 | % VGG_ROTMAT_FROM_EXP Convert from exponential to matrix rotation parameterization.
|
---|
3 | % R = vgg_rotmat_from_exp([r1, r2, r3]) generates the rotation
|
---|
4 | % matrix with axis along r, angle = norm(r).
|
---|
5 | % This is equivalent to expm(cross_matrix(r)) but more stable.
|
---|
6 |
|
---|
7 | % Andrew Fitzgibbon <awf@robots.ox.ac.uk>
|
---|
8 |
|
---|
9 | H = [0, -r(3), r(2); r(3), 0, -r(1); -r(2), r(1), 0];
|
---|
10 |
|
---|
11 | if 1
|
---|
12 | angle = norm(r);
|
---|
13 | if (angle < eps)
|
---|
14 | M=eye(3,3);
|
---|
15 | else
|
---|
16 | ef = sin(angle)/angle;
|
---|
17 | gee = (1.0 - cos(angle))/ (angle*angle);
|
---|
18 | M = (H*H)*gee + H*ef + eye(3,3);
|
---|
19 | end
|
---|
20 | else
|
---|
21 | M = expm(H);
|
---|
22 | end
|
---|
Note: See
TracBrowser
for help on using the repository browser.