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;
|