def new(im):
    rows, cols = im.shape
final = np.zeros((rows, cols, 3, 3))
for x in (0, 1, 2):
    for y in (0, 1, 2):
        im1 = np.vstack((im[x:], im[:x]))
im1 = np.column_stack((im1[:, y:], im1[:, :y]))
final[x::3, y::3] = np.swapaxes(im1.reshape(rows / 3, 3, cols / 3, -1), 1, 2)
return final
Найдите скользящее окно 3x3 над изображением