Проблема возникает из-за инициализации вашего mask
:
mask = np.zeros(shape=(100, 100), dtype=np.int8)
Диапазон значений типа данных int8
равен -128 ... 127
, поэтому любое значение выше 127
будет «усечено» до 127
.
Попробуйте свой код с color=100
, вы получите ожидаемый результат:
[[100 100 100 ... 0 0 0]
[100 100 100 ... 0 0 0]
[100 100 100 ... 0 0 0]
...
[ 0 0 0 ... 0 0 0]
[ 0 0 0 ... 0 0 0]
[ 0 0 0 ... 0 0 0]]
Полагаю, вы хотели использовать uint8
вместо int8
, так что, возможно, это просто опечатка!?
Изменение вашего кода соответственно на
mask = np.zeros(shape=(100, 100), dtype=np.uint8)
затем дает ожидаемый результат, также для color=255
:
[[255 255 255 ... 0 0 0]
[255 255 255 ... 0 0 0]
[255 255 255 ... 0 0 0]
...
[ 0 0 0 ... 0 0 0]
[ 0 0 0 ... 0 0 0]
[ 0 0 0 ... 0 0 0]]