function [err, aff_err, stab] = compare_motion(fo,nframes,npoints,frot,sigma,s,n) % fo = expected fraction of frames points are occluded. The actual number % of frames a point appear in is generated randomly for each point. % nframes = number frames % npoints = number points % frot = fraction of 2*pi for rotation in depth. % sigma = magnitude of Gaussian error. Pt. coordinates typically range % between -1 and 1, so a reasonable setting might be .01, or .005. % s = number of samples to draw in my method. % n = number times to repeat exp. % stab tells, for each iteration, whether the rankr result was stable. % there are a number of other parameters set in these experiments. % In motion generation, there is amount of translation (0) and in-plane rotation. % in shum there are the number of iterations to try. stab = []; err = []; aff_err = []; num_random_starts = 5; for j = 1:n [M,INC,pts] = occluded_motion(fo,nframes,npoints,frot,0); ERR = randn(size(M)).*sigma; if rem(j,1000)==0 [e, a, stable] = compare_affine(M,INC,3,ERR,pts,s,num_random_starts, j); stab = [stab', stable']' err = [err', e']' aff_err = [aff_err', a']' else [e, a, stable] = compare_affine(M,INC,3,ERR,pts,s,num_random_starts, j); stab = [stab', stable']'; err = [err', e']'; aff_err = [aff_err', a']'; end end