Modifier le contraste de l'image dans l'PIL

J'ai un programme qui est censé modifier le contraste, mais je sens que c'est pas vraiment changer le contraste.Il modifie certaines zones de rouge alors que je ne veux pas que ça. Si vous pouviez me dire comment faire pour les supprimer, merci.
Voici le code:

from PIL import Image


def change_contrast(img, level):

    img = Image.open("C:\\Users\\omar\\Desktop\\Site\\Images\\obama.png")
    img.load()

    factor = (259 * (level+255)) / (255 * (259-level))
    for x in range(img.size[0]):
        for y in range(img.size[1]):
            color = img.getpixel((x, y))
            new_color = tuple(int(factor * (c-128) + 128) for c in color)
            img.putpixel((x, y), new_color)

    return img

result = change_contrast('C:\\Users\\omar\\Desktop\\Site\\Images\\test_image1.jpg', 100)
result.save('C:\\Users\\omar\\Desktop\\Site\\Images\\test_image1_output.jpg')
print('done')

Et voici l'image et son résultat:

Modifier le contraste de l'image dans l'PIL
Modifier le contraste de l'image dans l'PIL

Si c'est la méthode de contraste, n'hésitez pas à me dire

  • Je ne peux pas reproduire ce. J'ai essayé votre code et de l'image de sortie est semble ok. i.stack.imgur.com/QhR3n.jpg
  • Votre code contient deux tentatives de chargement d'une image d'entrée, cependant. Vous test_image1.jpg ne sera pas utilisé, puisque vous avez obama.png codées en dur dans le corps de la fonction. Êtes-vous sûr que vous utilisez le fichier d'entrée-vous que vous utilisez?