Если у вас есть доступ к matplotlib и вы хотите его использовать:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
# read the image pixels and saves them as a numpy array
image = mpimg.imread('<your image>')
# see original image (just for testing)
plt.imshow(image)
plt.show()
# loop through all pixels, and replace those that are not strict white or black with white
for x in range(image.shape[0]):
for y in range(image.shape[1]):
if (image[x,y]!=0).all() and (image[x,y]!=1).all():
image[x,y] = [1,1,1]
# see modified image (to make sure this is what you need)
plt.imshow(image)
plt.show()
# save image
mpimg.imsave('<new name>',image)
Возможно, вы можете векторизовать это, но я считаю, что это более читабельно, зависит от ваших требований к производительности.
Также убедитесь, что ввод в формате [0,1]. Если он находится в [0,255], измените вышеуказанные значения 1
с 255
с.
Изменить: это решение работает для RGB, без альфа. Если у вас есть альфа, вам может потребоваться изменить его в зависимости от ваших требований.
Надеюсь, это поможет.