imerode is just the local min. So set up a 2D nested for loop. At each location extract a subimage and find its min value. Then set the output image at that location to that value.
windowSize = 9; % Whatever.
for col = 1 : columns
for row = 1 : rows
subImage = grayImage(.....
minValue = min(subImage(:));
outputImage(row, col) = minValue;
end
end
See if you can finish the "missing line". I had to leave something for you to do, because it sounds a lot like homework.