summaryrefslogtreecommitdiffstats
path: root/SD-VBS/common/toolbox/toolbox_basic/fact/factorizaion.tar
blob: 133cdfff4c95f016f69aae0d0170899b9ed59a83 (plain) (blame)
ofshex dumpascii
0000 63 6f 6e 73 74 72 75 63 74 5f 77 32 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 construct_w2.m..................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 31 30 30 36 34 34 00 30 30 32 31 33 36 31 00 30 30 30 30 33 33 31 00 30 30 30 30 ....0100644.0021361.0000331.0000
0080 30 30 30 31 31 34 32 00 30 35 36 37 33 36 37 35 35 32 37 00 30 31 31 35 30 35 00 20 30 00 00 00 0001142.05673675527.011505..0...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 6a 73 68 69 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...jshi...................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 66 75 6e 63 74 69 6f 6e 20 57 20 3d 20 63 6f 6e 73 74 72 75 63 74 5f 77 32 28 63 65 6e 74 65 72 function.W.=.construct_w2(center
0220 73 2c 44 73 2c 69 6d 67 5f 63 65 6e 74 65 72 2c 69 6e 64 65 78 65 73 2c 66 72 61 6d 65 73 29 0a s,Ds,img_center,indexes,frames).
0240 25 0a 25 20 20 66 75 6e 63 74 69 6f 6e 20 57 20 3d 20 63 6f 6e 73 74 72 75 63 74 5f 77 32 28 63 %.%..function.W.=.construct_w2(c
0260 65 6e 74 65 72 73 2c 44 73 2c 69 6d 67 5f 63 65 6e 74 65 72 2c 69 6e 64 65 78 65 73 2c 66 72 61 enters,Ds,img_center,indexes,fra
0280 6d 65 73 29 0a 25 20 20 20 6f 70 74 69 6f 6e 61 6c 3a 20 66 72 61 6d 65 73 0a 25 20 20 0a 0a 0a mes).%...optional:.frames.%.....
02a0 70 6f 69 6e 74 73 20 3d 20 6c 65 6e 67 74 68 28 69 6e 64 65 78 65 73 29 3b 0a 69 66 20 28 6e 61 points.=.length(indexes);.if.(na
02c0 72 67 69 6e 20 3d 3d 20 34 29 2c 0a 20 66 72 61 6d 65 73 20 3d 20 30 2e 35 2a 73 69 7a 65 28 63 rgin.==.4),..frames.=.0.5*size(c
02e0 65 6e 74 65 72 73 2c 32 29 3b 0a 65 6e 64 0a 0a 57 20 3d 20 7a 65 72 6f 73 28 33 2a 66 72 61 6d enters,2);.end..W.=.zeros(3*fram
0300 65 73 2c 70 6f 69 6e 74 73 29 3b 0a 0a 63 65 6e 74 65 72 5f 78 20 3d 20 69 6d 67 5f 63 65 6e 74 es,points);..center_x.=.img_cent
0320 65 72 28 31 29 3b 0a 63 65 6e 74 65 72 5f 79 20 3d 20 69 6d 67 5f 63 65 6e 74 65 72 28 32 29 3b er(1);.center_y.=.img_center(2);
0340 0a 0a 66 6f 72 20 6a 3d 31 3a 66 72 61 6d 65 73 2c 0a 20 20 25 20 78 20 69 73 20 63 65 6e 74 65 ..for.j=1:frames,...%.x.is.cente
0360 72 73 28 3a 2c 32 2a 6a 2d 31 29 0a 20 20 25 20 79 20 69 73 20 63 65 6e 74 65 72 73 28 3a 2c 32 rs(:,2*j-1)...%.y.is.centers(:,2
0380 2a 6a 29 0a 20 20 25 20 64 20 69 73 20 44 73 28 3a 2c 32 2a 6a 2d 31 29 0a 20 20 57 28 6a 2c 3a *j)...%.d.is.Ds(:,2*j-1)...W(j,:
03a0 29 20 3d 20 28 63 65 6e 74 65 72 73 28 69 6e 64 65 78 65 73 2c 32 2a 6a 2d 31 29 20 2d 63 65 6e ).=.(centers(indexes,2*j-1).-cen
03c0 74 65 72 5f 78 29 27 2e 2f 44 73 28 69 6e 64 65 78 65 73 2c 32 2a 6a 2d 31 29 27 3b 0a 20 20 57 ter_x)'./Ds(indexes,2*j-1)';...W
03e0 28 6a 2b 66 72 61 6d 65 73 2c 3a 29 20 3d 20 28 63 65 6e 74 65 72 73 28 69 6e 64 65 78 65 73 2c (j+frames,:).=.(centers(indexes,
0400 32 2a 6a 29 20 2d 63 65 6e 74 65 72 5f 79 29 27 2e 2f 44 73 28 69 6e 64 65 78 65 73 2c 32 2a 6a 2*j).-center_y)'./Ds(indexes,2*j
0420 2d 31 29 27 3b 20 0a 20 20 57 28 6a 2b 32 2a 66 72 61 6d 65 73 2c 3a 29 20 3d 20 6f 6e 65 73 28 -1)';....W(j+2*frames,:).=.ones(
0440 31 2c 70 6f 69 6e 74 73 29 2e 2f 44 73 28 69 6e 64 65 78 65 73 2c 32 2a 6a 2d 31 29 27 3b 0a 65 1,points)./Ds(indexes,2*j-1)';.e
0460 6e 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nd..............................
0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 63 6f 6e 73 74 72 75 63 74 5f 77 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 construct_w.m...................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 30 31 30 30 36 34 34 00 30 30 32 31 33 36 31 00 30 30 30 30 33 33 31 00 30 30 30 30 ....0100644.0021361.0000331.0000
0680 30 30 30 31 31 34 31 00 30 35 36 37 34 32 31 33 37 36 34 00 30 31 31 34 31 32 00 20 30 00 00 00 0001141.05674213764.011412..0...
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 75 73 74 61 72 20 20 00 6a 73 68 69 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...jshi...................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 66 75 6e 63 74 69 6f 6e 20 57 20 3d 20 63 6f 6e 73 74 72 75 63 74 5f 77 28 63 65 6e 74 65 72 73 function.W.=.construct_w(centers
0820 2c 44 73 2c 69 6d 67 5f 63 65 6e 74 65 72 2c 69 6e 64 65 78 65 73 2c 66 72 61 6d 65 73 29 0a 25 ,Ds,img_center,indexes,frames).%
0840 0a 25 20 20 66 75 6e 63 74 69 6f 6e 20 57 20 3d 20 63 6f 6e 73 74 72 75 63 74 5f 77 28 63 65 6e .%..function.W.=.construct_w(cen
0860 74 65 72 73 2c 44 73 2c 69 6d 67 5f 63 65 6e 74 65 72 2c 69 6e 64 65 78 65 73 2c 66 72 61 6d 65 ters,Ds,img_center,indexes,frame
0880 73 29 0a 25 20 20 20 6f 70 74 69 6f 6e 61 6c 3a 20 66 72 61 6d 65 73 0a 25 20 20 0a 0a 0a 70 6f s).%...optional:.frames.%.....po
08a0 69 6e 74 73 20 3d 20 6c 65 6e 67 74 68 28 69 6e 64 65 78 65 73 29 3b 0a 69 66 20 28 6e 61 72 67 ints.=.length(indexes);.if.(narg
08c0 69 6e 20 3d 3d 20 34 29 2c 0a 20 66 72 61 6d 65 73 20 3d 20 30 2e 35 2a 73 69 7a 65 28 63 65 6e in.==.4),..frames.=.0.5*size(cen
08e0 74 65 72 73 2c 32 29 3b 0a 65 6e 64 0a 0a 57 20 3d 20 7a 65 72 6f 73 28 32 2a 66 72 61 6d 65 73 ters,2);.end..W.=.zeros(2*frames
0900 2c 70 6f 69 6e 74 73 29 3b 0a 0a 63 65 6e 74 65 72 5f 78 20 3d 20 69 6d 67 5f 63 65 6e 74 65 72 ,points);..center_x.=.img_center
0920 28 31 29 3b 0a 63 65 6e 74 65 72 5f 79 20 3d 20 69 6d 67 5f 63 65 6e 74 65 72 28 32 29 3b 0a 0a (1);.center_y.=.img_center(2);..
0940 66 6f 72 20 6a 3d 31 3a 66 72 61 6d 65 73 2c 0a 20 20 25 20 78 20 69 73 20 63 65 6e 74 65 72 73 for.j=1:frames,...%.x.is.centers
0960 28 3a 2c 32 2a 6a 2d 31 29 0a 20 20 25 20 79 20 69 73 20 63 65 6e 74 65 72 73 28 3a 2c 32 2a 6a (:,2*j-1)...%.y.is.centers(:,2*j
0980 29 0a 20 20 25 20 64 20 69 73 20 44 73 28 3a 2c 32 2a 6a 2d 31 29 0a 20 20 57 28 6a 2c 3a 29 20 )...%.d.is.Ds(:,2*j-1)...W(j,:).
09a0 3d 20 28 63 65 6e 74 65 72 73 28 69 6e 64 65 78 65 73 2c 32 2a 6a 2d 31 29 20 2d 63 65 6e 74 65 =.(centers(indexes,2*j-1).-cente
09c0 72 5f 78 29 27 2e 2f 44 73 28 69 6e 64 65 78 65 73 2c 32 2a 6a 2d 31 29 27 3b 0a 20 20 57 28 6a r_x)'./Ds(indexes,2*j-1)';...W(j
09e0 2b 66 72 61 6d 65 73 2c 3a 29 20 3d 20 28 63 65 6e 74 65 72 73 28 69 6e 64 65 78 65 73 2c 32 2a +frames,:).=.(centers(indexes,2*
0a00 6a 29 20 2d 63 65 6e 74 65 72 5f 79 29 27 2e 2f 44 73 28 69 6e 64 65 78 65 73 2c 32 2a 6a 2d 31 j).-center_y)'./Ds(indexes,2*j-1
0a20 29 27 3b 20 0a 20 25 20 57 28 6a 2b 32 2a 66 72 61 6d 65 73 2c 3a 29 20 3d 20 6f 6e 65 73 28 31 )';...%.W(j+2*frames,:).=.ones(1
0a40 2c 70 6f 69 6e 74 73 29 2e 2f 44 73 28 69 6e 64 65 78 65 73 2c 32 2a 6a 2d 31 29 27 3b 0a 65 6e ,points)./Ds(indexes,2*j-1)';.en
0a60 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d...............................
0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 66 61 63 74 6f 72 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 factor.m........................
0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c60 00 00 00 00 30 31 30 30 36 34 34 00 30 30 32 31 33 36 31 00 30 30 30 30 33 33 31 00 30 30 30 30 ....0100644.0021361.0000331.0000
0c80 30 30 30 31 36 31 36 00 30 35 36 35 32 36 36 35 32 37 36 00 30 31 30 33 33 32 00 20 30 00 00 00 0001616.05652665276.010332..0...
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 00 75 73 74 61 72 20 20 00 6a 73 68 69 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...jshi...................
0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 25 0a 25 20 55 73 61 67 65 3a 0a 25 0a 25 20 20 20 20 5b 52 2c 74 2c 53 5d 20 3d 20 66 61 63 74 %.%.Usage:.%.%....[R,t,S].=.fact
0e20 6f 72 28 57 29 0a 25 0a 25 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 61 63 74 6f 72 20 61 20 6d or(W).%.%.Function.to.factor.a.m
0e40 61 74 72 69 78 20 6f 66 20 69 6e 70 75 74 20 64 61 74 61 20 28 57 29 20 69 6e 74 6f 20 74 68 65 atrix.of.input.data.(W).into.the
0e60 20 63 61 6d 65 72 61 0a 25 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 28 52 29 2c 20 74 .camera.%.rotation.matrix.(R),.t
0e80 72 61 6e 73 6c 61 74 69 6f 6e 20 28 74 29 2c 20 61 6e 64 20 74 68 65 20 73 68 61 70 65 20 6d 61 ranslation.(t),.and.the.shape.ma
0ea0 74 72 69 78 20 28 53 29 2e 0a 25 20 54 68 72 65 65 2d 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 76 65 trix.(S)..%.Three-dimensional.ve
0ec0 72 73 69 6f 6e 2e 20 46 61 69 6c 75 72 65 20 6f 66 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 20 rsion..Failure.of.normalization.
0ee0 72 65 73 75 6c 74 73 20 69 6e 0a 25 20 65 6d 70 74 79 20 52 20 61 6e 64 20 53 2e 0a 0a 66 75 6e results.in.%.empty.R.and.S...fun
0f00 63 74 69 6f 6e 20 5b 52 2c 74 2c 53 5d 20 3d 20 66 61 63 74 6f 72 28 57 29 0a 0a 70 74 73 20 3d ction.[R,t,S].=.factor(W)..pts.=
0f20 20 73 69 7a 65 28 57 2c 32 29 3b 0a 74 20 3d 20 57 2a 6f 6e 65 73 28 70 74 73 2c 31 29 2f 70 74 .size(W,2);.t.=.W*ones(pts,1)/pt
0f40 73 3b 0a 57 20 3d 20 57 20 2d 20 74 2a 6f 6e 65 73 28 31 2c 70 74 73 29 3b 0a 0a 25 20 55 73 65 s;.W.=.W.-.t*ones(1,pts);..%.Use
0f60 20 53 56 44 20 74 6f 20 66 61 63 74 6f 72 20 57 2e 20 0a 20 20 20 5b 61 2c 62 2c 63 5d 20 3d 20 .SVD.to.factor.W......[a,b,c].=.
0f80 73 76 64 28 57 2c 30 29 3b 0a 20 0a 73 6d 61 6c 6c 62 20 3d 20 62 28 31 3a 33 2c 31 3a 33 29 3b svd(W,0);...smallb.=.b(1:3,1:3);
0fa0 09 25 20 53 69 6e 63 65 20 57 20 69 73 20 72 61 6e 6b 20 33 2c 20 62 20 68 61 73 20 6f 6e 6c 79 .%.Since.W.is.rank.3,.b.has.only
0fc0 20 74 68 72 65 65 20 6d 65 61 6e 69 6e 67 66 75 6c 20 76 61 6c 75 65 73 0a 73 71 72 74 62 20 3d .three.meaningful.values.sqrtb.=
0fe0 20 73 71 72 74 28 73 6d 61 6c 6c 62 29 3b 0a 52 68 61 74 20 3d 20 61 28 3a 2c 31 3a 33 29 20 2a .sqrt(smallb);.Rhat.=.a(:,1:3).*
1000 20 73 71 72 74 62 3b 0a 53 68 61 74 20 3d 20 73 71 72 74 62 20 2a 20 63 28 3a 2c 31 3a 33 29 27 .sqrtb;.Shat.=.sqrtb.*.c(:,1:3)'
1020 3b 0a 0a 47 20 3d 20 66 69 6e 64 47 28 52 68 61 74 29 3b 0a 0a 69 66 20 73 69 7a 65 28 47 2c 31 ;..G.=.findG(Rhat);..if.size(G,1
1040 29 20 3d 3d 20 30 2c 0a 52 20 3d 20 5b 5d 3b 0a 53 20 3d 20 5b 5d 3b 0a 65 6c 73 65 0a 20 20 52 ).==.0,.R.=.[];.S.=.[];.else...R
1060 20 3d 20 52 68 61 74 2a 47 3b 0a 20 20 53 20 3d 20 69 6e 76 28 47 29 2a 53 68 61 74 3b 0a 0a 20 .=.Rhat*G;...S.=.inv(G)*Shat;...
1080 20 25 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 74 68 61 74 20 61 6c 69 67 6e 73 20 74 .%.rotation.matrix.that.aligns.t
10a0 68 65 20 72 65 66 65 72 65 6e 63 65 20 66 72 61 6d 65 20 77 69 74 68 20 74 68 65 20 66 69 72 73 he.reference.frame.with.the.firs
10c0 74 20 63 61 6d 65 72 61 0a 20 20 46 20 3d 20 73 69 7a 65 28 52 2c 31 29 2f 32 3b 0a 20 20 52 31 t.camera...F.=.size(R,1)/2;...R1
10e0 20 3d 20 52 28 31 2c 3a 29 3b 0a 20 20 52 31 20 3d 20 52 31 2f 6e 6f 72 6d 28 52 31 29 3b 0a 20 .=.R(1,:);...R1.=.R1/norm(R1);..
1100 20 52 32 20 3d 20 52 28 46 2b 31 2c 3a 29 3b 0a 20 20 52 32 20 3d 20 52 32 2f 6e 6f 72 6d 28 52 .R2.=.R(F+1,:);...R2.=.R2/norm(R
1120 32 29 3b 0a 20 20 52 33 20 3d 20 63 72 6f 73 73 28 52 31 2c 52 32 29 3b 0a 20 20 52 33 20 3d 20 2);...R3.=.cross(R1,R2);...R3.=.
1140 52 33 2f 6e 6f 72 6d 28 52 33 29 3b 0a 20 20 50 20 3d 20 5b 52 31 3b 20 52 32 3b 20 52 33 5d 3b R3/norm(R3);...P.=.[R1;.R2;.R3];
1160 0a 20 20 50 20 3d 20 50 27 3b 0a 0a 20 20 52 20 3d 20 52 2a 50 3b 0a 20 20 53 20 3d 20 69 6e 76 ...P.=.P';....R.=.R*P;...S.=.inv
1180 28 50 29 2a 53 3b 0a 65 6e 64 0a 0a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (P)*S;.end......................
11a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1200 66 61 63 74 6f 72 5f 74 65 73 74 32 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 factor_test2.m..................
1220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1260 00 00 00 00 30 31 30 30 36 34 34 00 30 30 32 31 33 36 31 00 30 30 30 30 33 33 31 00 30 30 30 30 ....0100644.0021361.0000331.0000
1280 30 30 30 31 36 36 30 00 30 35 36 35 37 32 37 37 36 32 31 00 30 31 31 34 35 30 00 20 30 00 00 00 0001660.05657277621.011450..0...
12a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1300 00 75 73 74 61 72 20 20 00 6a 73 68 69 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...jshi...................
1320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1400 25 0a 25 20 55 73 61 67 65 3a 0a 25 0a 25 20 20 20 20 5b 52 2c 74 2c 53 5d 20 3d 20 66 61 63 74 %.%.Usage:.%.%....[R,t,S].=.fact
1420 6f 72 28 57 29 0a 25 0a 25 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 61 63 74 6f 72 20 61 20 6d or(W).%.%.Function.to.factor.a.m
1440 61 74 72 69 78 20 6f 66 20 69 6e 70 75 74 20 64 61 74 61 20 28 57 29 20 69 6e 74 6f 20 74 68 65 atrix.of.input.data.(W).into.the
1460 20 63 61 6d 65 72 61 0a 25 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 28 52 29 2c 20 74 .camera.%.rotation.matrix.(R),.t
1480 72 61 6e 73 6c 61 74 69 6f 6e 20 28 74 29 2c 20 61 6e 64 20 74 68 65 20 73 68 61 70 65 20 6d 61 ranslation.(t),.and.the.shape.ma
14a0 74 72 69 78 20 28 53 29 2e 0a 25 20 54 68 72 65 65 2d 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 76 65 trix.(S)..%.Three-dimensional.ve
14c0 72 73 69 6f 6e 2e 20 46 61 69 6c 75 72 65 20 6f 66 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 20 rsion..Failure.of.normalization.
14e0 72 65 73 75 6c 74 73 20 69 6e 0a 25 20 65 6d 70 74 79 20 52 20 61 6e 64 20 53 2e 0a 0a 66 75 6e results.in.%.empty.R.and.S...fun
1500 63 74 69 6f 6e 20 5b 52 2c 74 2c 53 2c 43 2c 62 5d 20 3d 20 66 61 63 74 6f 72 28 57 29 0a 0a 70 ction.[R,t,S,C,b].=.factor(W)..p
1520 74 73 20 3d 20 73 69 7a 65 28 57 2c 32 29 3b 0a 74 20 3d 20 57 2a 6f 6e 65 73 28 70 74 73 2c 31 ts.=.size(W,2);.t.=.W*ones(pts,1
1540 29 2f 70 74 73 3b 0a 57 20 3d 20 57 20 2d 20 74 2a 6f 6e 65 73 28 31 2c 70 74 73 29 3b 0a 0a 25 )/pts;.W.=.W.-.t*ones(1,pts);..%
1560 20 55 73 65 20 53 56 44 20 74 6f 20 66 61 63 74 6f 72 20 57 2e 20 0a 20 20 20 5b 61 2c 62 2c 63 .Use.SVD.to.factor.W......[a,b,c
1580 5d 20 3d 20 73 76 64 28 57 2c 30 29 3b 0a 0a 66 69 67 75 72 65 28 33 29 3b 70 6c 6f 74 28 64 69 ].=.svd(W,0);..figure(3);plot(di
15a0 61 67 28 62 29 29 0a 20 0a 73 6d 61 6c 6c 62 20 3d 20 62 28 31 3a 33 2c 31 3a 33 29 3b 09 25 20 ag(b))...smallb.=.b(1:3,1:3);.%.
15c0 53 69 6e 63 65 20 57 20 69 73 20 72 61 6e 6b 20 33 2c 20 62 20 68 61 73 20 6f 6e 6c 79 20 74 68 Since.W.is.rank.3,.b.has.only.th
15e0 72 65 65 20 6d 65 61 6e 69 6e 67 66 75 6c 20 76 61 6c 75 65 73 0a 73 71 72 74 62 20 3d 20 73 71 ree.meaningful.values.sqrtb.=.sq
1600 72 74 28 73 6d 61 6c 6c 62 29 3b 0a 52 68 61 74 20 3d 20 61 28 3a 2c 31 3a 33 29 20 2a 20 73 71 rt(smallb);.Rhat.=.a(:,1:3).*.sq
1620 72 74 62 3b 0a 53 68 61 74 20 3d 20 73 71 72 74 62 20 2a 20 63 28 3a 2c 31 3a 33 29 27 3b 0a 0a rtb;.Shat.=.sqrtb.*.c(:,1:3)';..
1640 5b 47 2c 43 5d 20 3d 20 66 69 6e 64 67 32 28 52 68 61 74 29 3b 0a 0a 69 66 20 73 69 7a 65 28 47 [G,C].=.findg2(Rhat);..if.size(G
1660 2c 31 29 20 3d 3d 20 30 2c 0a 52 20 3d 20 5b 5d 3b 0a 53 20 3d 20 5b 5d 3b 0a 65 6c 73 65 0a 20 ,1).==.0,.R.=.[];.S.=.[];.else..
1680 20 52 20 3d 20 52 68 61 74 2a 47 3b 0a 20 20 53 20 3d 20 69 6e 76 28 47 29 2a 53 68 61 74 3b 0a .R.=.Rhat*G;...S.=.inv(G)*Shat;.
16a0 0a 20 20 25 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 74 68 61 74 20 61 6c 69 67 6e 73 ...%.rotation.matrix.that.aligns
16c0 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 66 72 61 6d 65 20 77 69 74 68 20 74 68 65 20 66 69 .the.reference.frame.with.the.fi
16e0 72 73 74 20 63 61 6d 65 72 61 0a 20 20 46 20 3d 20 73 69 7a 65 28 52 2c 31 29 2f 32 3b 0a 20 20 rst.camera...F.=.size(R,1)/2;...
1700 52 31 20 3d 20 52 28 31 2c 3a 29 3b 0a 20 20 52 31 20 3d 20 52 31 2f 6e 6f 72 6d 28 52 31 29 3b R1.=.R(1,:);...R1.=.R1/norm(R1);
1720 0a 20 20 52 32 20 3d 20 52 28 46 2b 31 2c 3a 29 3b 0a 20 20 52 32 20 3d 20 52 32 2f 6e 6f 72 6d ...R2.=.R(F+1,:);...R2.=.R2/norm
1740 28 52 32 29 3b 0a 20 20 52 33 20 3d 20 63 72 6f 73 73 28 52 31 2c 52 32 29 3b 0a 20 20 52 33 20 (R2);...R3.=.cross(R1,R2);...R3.
1760 3d 20 52 33 2f 6e 6f 72 6d 28 52 33 29 3b 0a 20 20 50 20 3d 20 5b 52 31 3b 20 52 32 3b 20 52 33 =.R3/norm(R3);...P.=.[R1;.R2;.R3
1780 5d 3b 0a 20 20 50 20 3d 20 50 27 3b 0a 0a 20 20 52 20 3d 20 52 2a 50 3b 0a 20 20 53 20 3d 20 69 ];...P.=.P';....R.=.R*P;...S.=.i
17a0 6e 76 28 50 29 2a 53 3b 0a 65 6e 64 0a 0a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nv(P)*S;.end....................
17c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1800 66 61 63 74 6f 72 5f 74 65 73 74 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 factor_test.m...................
1820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1860 00 00 00 00 30 31 30 30 36 34 34 00 30 30 32 31 33 36 31 00 30 30 30 30 33 33 31 00 30 30 30 30 ....0100644.0021361.0000331.0000
1880 30 30 30 31 36 36 30 00 30 35 36 35 37 32 37 37 37 31 30 00 30 31 31 33 36 35 00 20 30 00 00 00 0001660.05657277710.011365..0...
18a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1900 00 75 73 74 61 72 20 20 00 6a 73 68 69 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...jshi...................
1920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a00 25 0a 25 20 55 73 61 67 65 3a 0a 25 0a 25 20 20 20 20 5b 52 2c 74 2c 53 5d 20 3d 20 66 61 63 74 %.%.Usage:.%.%....[R,t,S].=.fact
1a20 6f 72 28 57 29 0a 25 0a 25 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 61 63 74 6f 72 20 61 20 6d or(W).%.%.Function.to.factor.a.m
1a40 61 74 72 69 78 20 6f 66 20 69 6e 70 75 74 20 64 61 74 61 20 28 57 29 20 69 6e 74 6f 20 74 68 65 atrix.of.input.data.(W).into.the
1a60 20 63 61 6d 65 72 61 0a 25 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 28 52 29 2c 20 74 .camera.%.rotation.matrix.(R),.t
1a80 72 61 6e 73 6c 61 74 69 6f 6e 20 28 74 29 2c 20 61 6e 64 20 74 68 65 20 73 68 61 70 65 20 6d 61 ranslation.(t),.and.the.shape.ma
1aa0 74 72 69 78 20 28 53 29 2e 0a 25 20 54 68 72 65 65 2d 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 76 65 trix.(S)..%.Three-dimensional.ve
1ac0 72 73 69 6f 6e 2e 20 46 61 69 6c 75 72 65 20 6f 66 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 20 rsion..Failure.of.normalization.
1ae0 72 65 73 75 6c 74 73 20 69 6e 0a 25 20 65 6d 70 74 79 20 52 20 61 6e 64 20 53 2e 0a 0a 66 75 6e results.in.%.empty.R.and.S...fun
1b00 63 74 69 6f 6e 20 5b 52 2c 74 2c 53 2c 43 2c 62 5d 20 3d 20 66 61 63 74 6f 72 28 57 29 0a 0a 70 ction.[R,t,S,C,b].=.factor(W)..p
1b20 74 73 20 3d 20 73 69 7a 65 28 57 2c 32 29 3b 0a 74 20 3d 20 57 2a 6f 6e 65 73 28 70 74 73 2c 31 ts.=.size(W,2);.t.=.W*ones(pts,1
1b40 29 2f 70 74 73 3b 0a 57 20 3d 20 57 20 2d 20 74 2a 6f 6e 65 73 28 31 2c 70 74 73 29 3b 0a 0a 25 )/pts;.W.=.W.-.t*ones(1,pts);..%
1b60 20 55 73 65 20 53 56 44 20 74 6f 20 66 61 63 74 6f 72 20 57 2e 20 0a 20 20 20 5b 61 2c 62 2c 63 .Use.SVD.to.factor.W......[a,b,c
1b80 5d 20 3d 20 73 76 64 28 57 2c 30 29 3b 0a 0a 66 69 67 75 72 65 28 33 29 3b 70 6c 6f 74 28 64 69 ].=.svd(W,0);..figure(3);plot(di
1ba0 61 67 28 62 29 29 0a 20 0a 73 6d 61 6c 6c 62 20 3d 20 62 28 31 3a 33 2c 31 3a 33 29 3b 09 25 20 ag(b))...smallb.=.b(1:3,1:3);.%.
1bc0 53 69 6e 63 65 20 57 20 69 73 20 72 61 6e 6b 20 33 2c 20 62 20 68 61 73 20 6f 6e 6c 79 20 74 68 Since.W.is.rank.3,.b.has.only.th
1be0 72 65 65 20 6d 65 61 6e 69 6e 67 66 75 6c 20 76 61 6c 75 65 73 0a 73 71 72 74 62 20 3d 20 73 71 ree.meaningful.values.sqrtb.=.sq
1c00 72 74 28 73 6d 61 6c 6c 62 29 3b 0a 52 68 61 74 20 3d 20 61 28 3a 2c 31 3a 33 29 20 2a 20 73 71 rt(smallb);.Rhat.=.a(:,1:3).*.sq
1c20 72 74 62 3b 0a 53 68 61 74 20 3d 20 73 71 72 74 62 20 2a 20 63 28 3a 2c 31 3a 33 29 27 3b 0a 0a rtb;.Shat.=.sqrtb.*.c(:,1:3)';..
1c40 5b 47 2c 43 5d 20 3d 20 66 69 6e 64 67 31 28 52 68 61 74 29 3b 0a 0a 69 66 20 73 69 7a 65 28 47 [G,C].=.findg1(Rhat);..if.size(G
1c60 2c 31 29 20 3d 3d 20 30 2c 0a 52 20 3d 20 5b 5d 3b 0a 53 20 3d 20 5b 5d 3b 0a 65 6c 73 65 0a 20 ,1).==.0,.R.=.[];.S.=.[];.else..
1c80 20 52 20 3d 20 52 68 61 74 2a 47 3b 0a 20 20 53 20 3d 20 69 6e 76 28 47 29 2a 53 68 61 74 3b 0a .R.=.Rhat*G;...S.=.inv(G)*Shat;.
1ca0 0a 20 20 25 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 74 68 61 74 20 61 6c 69 67 6e 73 ...%.rotation.matrix.that.aligns
1cc0 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 66 72 61 6d 65 20 77 69 74 68 20 74 68 65 20 66 69 .the.reference.frame.with.the.fi
1ce0 72 73 74 20 63 61 6d 65 72 61 0a 20 20 46 20 3d 20 73 69 7a 65 28 52 2c 31 29 2f 32 3b 0a 20 20 rst.camera...F.=.size(R,1)/2;...
1d00 52 31 20 3d 20 52 28 31 2c 3a 29 3b 0a 20 20 52 31 20 3d 20 52 31 2f 6e 6f 72 6d 28 52 31 29 3b R1.=.R(1,:);...R1.=.R1/norm(R1);
1d20 0a 20 20 52 32 20 3d 20 52 28 46 2b 31 2c 3a 29 3b 0a 20 20 52 32 20 3d 20 52 32 2f 6e 6f 72 6d ...R2.=.R(F+1,:);...R2.=.R2/norm
1d40 28 52 32 29 3b 0a 20 20 52 33 20 3d 20 63 72 6f 73 73 28 52 31 2c 52 32 29 3b 0a 20 20 52 33 20 (R2);...R3.=.cross(R1,R2);...R3.
1d60 3d 20 52 33 2f 6e 6f 72 6d 28 52 33 29 3b 0a 20 20 50 20 3d 20 5b 52 31 3b 20 52 32 3b 20 52 33 =.R3/norm(R3);...P.=.[R1;.R2;.R3
1d80 5d 3b 0a 20 20 50 20 3d 20 50 27 3b 0a 0a 20 20 52 20 3d 20 52 2a 50 3b 0a 20 20 53 20 3d 20 69 ];...P.=.P';....R.=.R*P;...S.=.i
1da0 6e 76 28 50 29 2a 53 3b 0a 65 6e 64 0a 0a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nv(P)*S;.end....................
1dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e00 66 69 6e 64 67 31 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 findg1.m........................
1e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e60 00 00 00 00 30 31 30 30 36 34 34 00 30 30 32 31 33 36 31 00 30 30 30 30 33 33 31 00 30 30 30 30 ....0100644.0021361.0000331.0000
1e80 30 30 30 31 36 35 32 00 30 35 36 37 34 31 36 36 30 30 33 00 30 31 30 32 31 30 00 20 30 00 00 00 0001652.05674166003.010210..0...
1ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 75 73 74 61 72 20 20 00 6a 73 68 69 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...jshi...................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 66 75 6e 63 74 69 6f 6e 20 5b 47 2c 43 5d 20 3d 20 66 69 6e 64 33 47 28 52 68 61 74 29 0a 0a 25 function.[G,C].=.find3G(Rhat)..%
2020 20 6e 75 6d 62 65 72 20 6f 66 20 66 72 61 6d 65 73 0a 46 20 3d 20 73 69 7a 65 28 52 68 61 74 2c .number.of.frames.F.=.size(Rhat,
2040 31 29 2f 32 3b 0a 0a 25 20 42 75 69 6c 64 20 6d 61 74 72 69 78 20 51 20 73 75 63 68 20 74 68 61 1)/2;..%.Build.matrix.Q.such.tha
2060 74 20 51 20 2a 20 76 20 3d 20 5b 31 2c 2e 2e 2e 2c 31 2c 30 2c 2e 2e 2e 2c 30 5d 20 77 68 65 72 t.Q.*.v.=.[1,...,1,0,...,0].wher
2080 65 20 76 20 69 73 20 61 20 73 69 78 0a 25 20 65 6c 65 6d 65 6e 74 20 76 65 63 74 6f 72 20 63 6f e.v.is.a.six.%.element.vector.co
20a0 6e 74 61 69 6e 67 20 61 6c 6c 20 73 69 78 20 64 69 73 74 69 6e 63 74 20 65 6c 65 6d 65 6e 74 73 ntaing.all.six.distinct.elements
20c0 20 6f 66 20 74 68 65 20 4d 61 74 72 69 78 20 43 0a 0a 63 6c 65 61 72 20 51 0a 66 6f 72 20 66 20 .of.the.Matrix.C..clear.Q.for.f.
20e0 3d 20 31 3a 46 2c 0a 20 20 67 20 3d 20 66 20 2b 20 46 3b 0a 20 20 68 20 3d 20 67 20 2b 20 46 3b =.1:F,...g.=.f.+.F;...h.=.g.+.F;
2100 0a 20 20 51 28 66 2c 3a 29 20 3d 20 7a 74 28 52 68 61 74 28 66 2c 3a 29 2c 20 52 68 61 74 28 66 ...Q(f,:).=.zt(Rhat(f,:),.Rhat(f
2120 2c 3a 29 29 3b 0a 20 20 51 28 67 2c 3a 29 20 3d 20 7a 74 28 52 68 61 74 28 67 2c 3a 29 2c 20 52 ,:));...Q(g,:).=.zt(Rhat(g,:),.R
2140 68 61 74 28 67 2c 3a 29 29 3b 0a 20 20 51 28 68 2c 3a 29 20 3d 20 7a 74 28 52 68 61 74 28 66 2c hat(g,:));...Q(h,:).=.zt(Rhat(f,
2160 3a 29 2c 20 52 68 61 74 28 67 2c 3a 29 29 3b 0a 65 6e 64 0a 0a 25 20 53 6f 6c 76 65 20 66 6f 72 :),.Rhat(g,:));.end..%.Solve.for
2180 20 76 0a 72 68 73 20 3d 20 5b 6f 6e 65 73 28 32 2a 46 2c 31 29 3b 20 7a 65 72 6f 73 28 46 2c 31 .v.rhs.=.[ones(2*F,1);.zeros(F,1
21a0 29 5d 3b 0a 76 20 3d 20 51 20 5c 20 72 68 73 3b 0a 0a 25 20 43 20 69 73 20 61 20 73 79 6d 6d 65 )];.v.=.Q.\.rhs;..%.C.is.a.symme
21c0 74 72 69 63 20 33 78 33 20 6d 61 74 72 69 78 20 73 75 63 68 20 74 68 61 74 20 43 20 3d 20 47 20 tric.3x3.matrix.such.that.C.=.G.
21e0 2a 20 74 72 61 6e 73 70 6f 73 65 28 47 29 0a 43 28 31 2c 31 29 20 3d 20 76 28 31 29 3b 20 20 20 *.transpose(G).C(1,1).=.v(1);...
2200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 43 28 31 2c 32 29 20 3d 20 76 28 32 29 3b 20 20 ................C(1,2).=.v(2);..
2220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 43 28 31 2c 33 29 20 3d 20 76 28 33 29 3b 20 .................C(1,3).=.v(3);.
2240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 43 28 32 2c 32 29 20 3d 20 76 28 34 29 3b ..................C(2,2).=.v(4);
2260 0a 43 28 32 2c 33 29 20 3d 20 76 28 35 29 3b 0a 43 28 33 2c 33 29 20 3d 20 76 28 36 29 3b 0a 43 .C(2,3).=.v(5);.C(3,3).=.v(6);.C
2280 28 32 2c 31 29 20 3d 20 43 28 31 2c 32 29 3b 0a 43 28 33 2c 31 29 20 3d 20 43 28 31 2c 33 29 3b (2,1).=.C(1,2);.C(3,1).=.C(1,3);
22a0 0a 43 28 33 2c 32 29 20 3d 20 43 28 32 2c 33 29 3b 0a 0a 65 20 3d 20 65 69 67 28 43 29 3b 0a 64 .C(3,2).=.C(2,3);..e.=.eig(C);.d
22c0 69 73 70 28 65 29 0a 0a 69 66 20 28 61 6e 79 28 65 3c 3d 20 30 29 29 2c 0a 20 20 43 20 3d 20 43 isp(e)..if.(any(e<=.0)),...C.=.C
22e0 20 2d 32 2a 6d 69 6e 28 65 29 2a 65 79 65 28 33 29 3b 0a 20 20 47 20 3d 20 73 71 72 74 6d 28 43 .-2*min(e)*eye(3);...G.=.sqrtm(C
2300 29 3b 0a 65 6c 73 65 0a 20 20 47 20 3d 20 73 71 72 74 6d 28 43 29 3b 0a 65 6e 64 0a 0a 25 6e 65 );.else...G.=.sqrtm(C);.end..%ne
2320 67 20 3d 20 30 3b 0a 25 69 66 20 65 28 31 29 20 3c 3d 20 30 2c 20 6e 65 67 20 3d 20 31 3b 20 65 g.=.0;.%if.e(1).<=.0,.neg.=.1;.e
2340 6e 64 0a 25 69 66 20 65 28 32 29 20 3c 3d 20 30 2c 20 6e 65 67 20 3d 20 31 3b 20 65 6e 64 0a 25 nd.%if.e(2).<=.0,.neg.=.1;.end.%
2360 69 66 20 65 28 33 29 20 3c 3d 20 30 2c 20 6e 65 67 20 3d 20 31 3b 20 65 6e 64 0a 25 69 66 20 6e if.e(3).<=.0,.neg.=.1;.end.%if.n
2380 65 67 20 3d 3d 20 31 2c 20 47 20 3d 20 5b 5d 3b 0a 25 65 6c 73 65 2