source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/zisserman/vgg_numerics/vgg_rotmat_from_exp.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

  • Property svn:executable set to *
File size: 653 bytes
Line 
1function 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
9H = [0, -r(3), r(2);  r(3), 0, -r(1); -r(2), r(1), 0];
10
11if 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
20else
21  M = expm(H);
22end
Note: See TracBrowser for help on using the repository browser.