summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/texture_synthesis/src/matlab/mkAngularSine.m
blob: f5238cc81a9f4c5c8fa8f14b0f482375d5d14b64 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
% IM = mkAngularSine(SIZE, HARMONIC, AMPL, PHASE, ORIGIN)
%
% Make an angular sinusoidal image:
%     AMPL * sin( HARMONIC*theta + PHASE),
% where theta is the angle about the origin.
% SIZE specifies the matrix size, as for zeros().  
% AMPL (default = 1) and PHASE (default = 0) are optional.

% Eero Simoncelli, 2/97.

function [res] = mkAngularSine(sz, harmonic, ampl, ph, origin)

sz = sz(:);
if (size(sz,1) == 1)
  sz = [sz,sz];
end

mxsz = max(sz(1),sz(2));

%------------------------------------------------------------
%% OPTIONAL ARGS:

if (exist('harmonic') ~= 1)
  harmonic = 1;
end

if (exist('ampl') ~= 1)
  ampl = 1;
end

if (exist('ph') ~= 1)
  ph = 0;
end

if (exist('origin') ~= 1)
  origin = (sz+1)/2;
end

%------------------------------------------------------------

res = ampl * sin(harmonic*mkAngle(sz,ph,origin) + ph);