source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/BlueCCal/MultiCamSelfCal/MartinecPajdla/fill_mm/normu.m @ 37

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

Added original make3d

File size: 644 bytes
Line 
1%normu Normalize image points to be used for LS estimation.
2%   A = normu(u) finds normalization matrix A so that mean(A*u)=0 and
3%   mean(||A*u||)=sqrt(2). (see Hartley: In Defence of 8-point Algorithm,
4%   ICCV`95).
5%
6%   Parameters:
7%      u ... Size (2,N) or (3,N). Points to normalize.
8%      A ... Size (3,3). Normalization matrix.
9
10function A = normu(u)
11
12if size(u,1)==3, u = p2e(u); end
13
14m        = mean(u')'; % <=> mean (u,2)
15u        = u - m*ones(1,size(u,2));
16distu    = sqrt(sum(u.*u));
17r        = mean(distu)/sqrt(2);
18if ~r, A = []; return; end     % one of degenarate configurations
19A        = diag([1/r 1/r 1]);
20A(1:2,3) = -m/r;
Note: See TracBrowser for help on using the repository browser.