-
Notifications
You must be signed in to change notification settings - Fork 68
/
mkRamp.m
executable file
·47 lines (34 loc) · 1.08 KB
/
mkRamp.m
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
43
44
45
46
% IM = mkRamp(SIZE, DIRECTION, SLOPE, INTERCEPT, ORIGIN)
%
% Compute a matrix of dimension SIZE (a [Y X] 2-vector, or a scalar)
% containing samples of a ramp function, with given gradient DIRECTION
% (radians, CW from X-axis, default = 0), SLOPE (per pixel, default =
% 1), and a value of INTERCEPT (default = 0) at the ORIGIN (default =
% (size+1)/2, [1 1] = upper left). All but the first argument are
% optional.
% Eero Simoncelli, 6/96. 2/97: adjusted coordinate system.
function [res] = mkRamp(sz, dir, slope, intercept, origin)
sz = sz(:);
if (size(sz,1) == 1)
sz = [sz,sz];
end
% -----------------------------------------------------------------
% OPTIONAL args:
if (exist('dir') ~= 1)
dir = 0;
end
if (exist('slope') ~= 1)
slope = 1;
end
if (exist('intercept') ~= 1)
intercept = 0;
end
if (exist('origin') ~= 1)
origin = (sz+1)/2;
end
% -----------------------------------------------------------------
xinc = slope*cos(dir);
yinc = slope*sin(dir);
[xramp,yramp] = meshgrid( xinc*([1:sz(2)]-origin(2)), ...
yinc*([1:sz(1)]-origin(1)) );
res = intercept + xramp + yramp;