1 | function [err, aff_err, stab] = compare_motion(fo,nframes,npoints,frot,sigma,s,n)
|
---|
2 | % fo = expected fraction of frames points are occluded. The actual number
|
---|
3 | % of frames a point appear in is generated randomly for each point.
|
---|
4 | % nframes = number frames
|
---|
5 | % npoints = number points
|
---|
6 | % frot = fraction of 2*pi for rotation in depth.
|
---|
7 | % sigma = magnitude of Gaussian error. Pt. coordinates typically range
|
---|
8 | % between -1 and 1, so a reasonable setting might be .01, or .005.
|
---|
9 | % s = number of samples to draw in my method.
|
---|
10 | % n = number times to repeat exp.
|
---|
11 |
|
---|
12 | % stab tells, for each iteration, whether the rankr result was stable.
|
---|
13 |
|
---|
14 | % there are a number of other parameters set in these experiments.
|
---|
15 | % In motion generation, there is amount of translation (0) and in-plane rotation.
|
---|
16 | % in shum there are the number of iterations to try.
|
---|
17 |
|
---|
18 | stab = [];
|
---|
19 | err = [];
|
---|
20 | aff_err = [];
|
---|
21 | num_random_starts = 5;
|
---|
22 |
|
---|
23 | for j = 1:n
|
---|
24 | [M,INC,pts] = occluded_motion(fo,nframes,npoints,frot,0);
|
---|
25 | ERR = randn(size(M)).*sigma;
|
---|
26 | if rem(j,1000)==0
|
---|
27 | [e, a, stable] = compare_affine(M,INC,3,ERR,pts,s,num_random_starts, j);
|
---|
28 | stab = [stab', stable']'
|
---|
29 | err = [err', e']'
|
---|
30 | aff_err = [aff_err', a']'
|
---|
31 | else
|
---|
32 | [e, a, stable] = compare_affine(M,INC,3,ERR,pts,s,num_random_starts, j);
|
---|
33 | stab = [stab', stable']';
|
---|
34 | err = [err', e']';
|
---|
35 | aff_err = [aff_err', a']';
|
---|
36 | end
|
---|
37 | end
|
---|
38 |
|
---|