import numpy as np
from skimage.util import view_as_windows # Библиотека scikit-image
tsize = 256
image = np.random.randint(0, 256, (8192, 8192, 3), np.uint8)
# Значения яркости - это канал L из пространства LAB
lab_l_channel = cv2.cvtColor(image, cv2.COLOR_BGR2LAB)[..., 0]
# Плитки 256x256
tiles = view_as_windows(lab_l_channel, (tsize, tsize), (tsize, tsize))
# Примечательно, что
assert np.shares_memory(lab_l_channel, tiles) == True
# Средняя яркость в виде матрицы 32х32
lightness = tiles.reshape(-1, tsize ** 2).mean(axis=-1).reshape(np.array(image.shape[:2]) // tsize)
P.S. Вместо
skimage.util.view_as_windows можно использовать
numpy.lib.stride_tricks.as_strided, но это весьма сложная в настройке правильных параметров функция; view_as_windows - её гуманный вариант)