function out = reduce(inp, magr, magc)
% REDUCE
%
% out = reduce(inp, magr, magc);
% generates a smaller version of the input image by averaging.
% The output is the average of magr rows and magc columns.
%
% Author: John S. Loomis (8 March 2000)
if (nargin<2)
magr = 2;
end
if (nargin<3)
magc = magr;
end
si = size(inp);
inp = im2double(inp);
outi = zeros(floor(si(1)/magr),si(2));
so = size(outi);
% loop over rows
for (k=1:magr)
outi = outi + inp(k:magr:so(1)*magr,:);
end
out = zeros(so(1),floor(si(2)/magc));
so = size(out);
% loop over columns
for (k=1:magc)
out = out + outi(:,k:magc:so(2)*magc);
end
out = out/(magr*magc);
Maintained by John
Loomis, last updated 8 March 2000