NumPy использует арифметику по модулю при переполнении, а не при отсечении.Это поведение сложения uint8 целых чисел в C. Итак, 175 + 100% 256 = 19, что является результатом, который вы получаете.
Чтобы получить такое поведение отсечения, вам нужно будет поработать:
Вот несколько идей:
1) Используйте более высокую точность:
im1 = im.astype('u2')
im2 = im.astype('u2')
tmp = im1 + im2
result = tmp.clip(0,255).astype('u1')
2) Убедитесь, что результат> = оба входных значения:
tmp = im1 + im2
mask = (tmp < im1) | (tmp < im2)
tmp[mask] = 255