function out = minfilt(in, repeat)
% MINFILT
%   out = minfilt(in);
% returns minimum value in a 3 x 3 neighborhood
%
%   out = minfilt(in,n) repeats the operation n times

% Author: John S. Loomis (17 March 2000)

if nargin<2
    repeat=1;
end
sp = size(in);
sm = sp-1;
out = in;
for k=1:repeat
   out(1:sm(1),:) = min(out(1:sm(1),:),out(2:sp(1),:));
   out(2:sp(1),:) = min(out(1:sm(1),:),out(2:sp(1),:));
   out(:,1:sm(2)) = min(out(:,1:sm(2)),out(:,2:sp(2)));
   out(:,2:sp(2)) = min(out(:,1:sm(2)),out(:,2:sp(2)));
end


Maintained by John Loomis, last updated 17 March 2000