from PIL import Image im = Image.open("BarredRock.jpg") series = [Image.new("RGB", im.size) for i in range(10)] series[0] = im width, height = im.size for spos in range(1, 10): pix = series[spos-1].load() def neighbor_check(place, default): i,j = place if(i < width and i > 0 and j < height and j > 0): return pix[i,j] return default def cavg(vals): res = [0, 0, 0] for v in vals: res[0] += v[0] res[1] += v[1] res[2] += v[2] return [c/len(vals) for c in res] npix = series[spos].load() for i in range(width): for j in range(height): r,g,b = pix[i,j] neighbors = [(i-1,j-1), (i+1, j-1), (i-1, j+1), (i+1, j+1)] n_values = [neighbor_check(n, pix[i,j]) for n in neighbors] new_color = cavg(n_values) npix[i,j] = tuple(new_color) series[spos].show()