mkAngularSine.m 845 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. % IM = mkAngularSine(SIZE, HARMONIC, AMPL, PHASE, ORIGIN)
  2. %
  3. % Make an angular sinusoidal image:
  4. % AMPL * sin( HARMONIC*theta + PHASE),
  5. % where theta is the angle about the origin.
  6. % SIZE specifies the matrix size, as for zeros().
  7. % AMPL (default = 1) and PHASE (default = 0) are optional.
  8. % Eero Simoncelli, 2/97.
  9. function [res] = mkAngularSine(sz, harmonic, ampl, ph, origin)
  10. sz = sz(:);
  11. if (size(sz,1) == 1)
  12. sz = [sz,sz];
  13. end
  14. mxsz = max(sz(1),sz(2));
  15. %------------------------------------------------------------
  16. %% OPTIONAL ARGS:
  17. if (exist('harmonic') ~= 1)
  18. harmonic = 1;
  19. end
  20. if (exist('ampl') ~= 1)
  21. ampl = 1;
  22. end
  23. if (exist('ph') ~= 1)
  24. ph = 0;
  25. end
  26. if (exist('origin') ~= 1)
  27. origin = (sz+1)/2;
  28. end
  29. %------------------------------------------------------------
  30. res = ampl * sin(harmonic*mkAngle(sz,ph,origin) + ph);