Я спешу, но у меня есть идея, которую вы можете использовать, даже если я не пишу и не тестирую весь код ...
grid=np.arange(1,26).reshape(5,5)
даст вам следующее:
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]])
Затем определите, что вы хотите:
wanted=[1,5,8,13,23]
и используйте numpy.isin()
, чтобы проверить, нужна ли каждая сетка:
mask=np.isin(grid,wanted)
, что дает вам:
array([[ True, False, False, False, True],
[False, False, True, False, False],
[False, False, True, False, False],
[False, False, False, False, False],
[False, False, True, False, False]])
Теперь вы можете умножить это на 255, что даст вам черно-белую маску.Вы можете превратить маску в изображение и увеличить его в 5 раз с помощью повторной выборки NEAREST_NEIGHBOUR, чтобы получить правильный размер.