Вы можете инвертировать с помощью PIL / Pillow:
from PIL import Image, ImageChops
# Load image from disk and ensure RGB
im = Image.open('lena.png').convert('RGB')
# Invert image and save to disk
res = ImageChops.invert(im)
res.save('result.png')
Превращает Лену в отрицанную Лену:
Или, если вы хотите быть более математичным в этом вопросе:
from PIL import Image
import numpy as np
im = Image.open('lena.png').convert('RGB')
# Make Numpy array
imnp = np.array(im)
# Invert
imnp = 255 - imnp
# Save
Image.fromarray(imnp).save('result.png')
Если вы представите, что черное изображение представлено (0,0,0), а белое изображение (255,255,255), надеюсь, нетрудно понять, что инверсия цветов достигается вычитанием из 255, а не использованием дополнения до двух. .