frames.m
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:1k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. function f=frames(sys,mod,nbr,p,np,cpar)
  2. %FRAMES Interface between camera model and optimization routine. 
  3. %Allows multiple to be used.
  4. %
  5. %Usage:
  6. %   f = frames(sys,mod,nbr,p)         
  7. %
  8. %where
  9. %   sys  = system configuration information (see configc.m) 
  10. %   mod  = matrix for the 3-D coordinates of the control points (n x 3)
  11. %   nbr  = number of points per frame
  12. %   p    = parameter vector (8+N*6 x 1)
  13. %          p(1:8) contains the camera intrinsic parameters
  14. %          p(9...) contains the camera position and orientation for
  15. %          each N images. 
  16. %   f    = synthetic image coordinates
  17. %   Version 2.1b  25.08.1998
  18. %   Janne Heikkila, University of Oulu, Finland
  19. nr=size(mod,1);
  20. npos=(length(p)-np)/6;
  21. if npos~=length(nbr)
  22.   error('Conflict in the number of camera positions');
  23. end
  24. if size(mod,2)~=3
  25.   error('Data matrix should have three columns');
  26. end
  27. index=[1 cumsum(nbr)+1];
  28. if np>0
  29.   par=p(1:np);
  30. else
  31.   par=cpar;
  32. end
  33. f=[];
  34. for i=1:npos
  35.   si=(i-1)*6+np+1; ei=i*6+np;
  36.   pos=p(si:ei);
  37.   pnts=mod(index(i):index(i+1)-1,:);
  38.   cp=cmodel(sys,mod(index(i):index(i+1)-1,:),p(si:ei),par);
  39.   f=[f;cp];
  40. end
  41.