File: MakeSineImage.m

package info (click to toggle)
psychtoolbox-3 3.0.19.14.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 86,796 kB
  • sloc: ansic: 176,245; cpp: 20,103; objc: 5,393; sh: 2,753; python: 1,397; php: 384; makefile: 193; java: 113
file content (52 lines) | stat: -rw-r--r-- 1,498 bytes parent folder | download
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
47
48
49
50
51
52
function [image] = MakeSineImage(freqi,freqj,nRowPixels,nColPixels,centerRowPixel,centerColPixel)
% [image] = MakeSineImage(freqi,freqj,nRowPixels,[nColPixels],[centerRowPixel],[centerColPixel])
%
% Computes a two-dimensional sine function image.
%
% The image has dimensions nRowPixels by nColPixels.
% If nColPixels is omitted, a square image is returned.
%
% If you want to pass centerRowPixel, you must pass nColPixels.
% centerRowPixel and centerColPixel each default to zero if not passed.
%
% 8/15/94		dhb		Both row and column dimensions used if passed.
%				dhb		Changed zero frequency convention.
% 6/20/98       dhb, mw Fixed error in zero handling case.
% 9/07/23       dhb     Allow passing of center row and column pixels,
%                       leaving previous behavior unaffected

% Set column pixels for square image if it wasn't passed.
if (nargin <= 3)
	nColPixels = nRowPixels;
end

if (nargin <= 4)
	centerRowPixel = 0;
    centerColPixel = 0;
end

if (nargin <= 5)
    centerColPixel = 0;
end

x = 1:nColPixels;
y = 1:nRowPixels;
usefreqi = 2*pi*freqi/nRowPixels;
usefreqj = 2*pi*freqj/nColPixels;

% Handle zero frequency case
if (usefreqj == 0 && usefreqi ~= 0)
	sinx = ones(size(x));
else
	sinx = sin(usefreqj*(x-centerColPixel));
end

% Handle zero frequency case
if (usefreqi == 0 && usefreqj ~= 0)
	siny = ones(size(y));
else
	siny = sin(usefreqi*(y-centerRowPixel));
end

% Build composite image
image = siny'*sinx;