У меня есть программа, которая должна изменить контрастность, но я чувствую, что она не меняет контраст. Она меняет некоторые области на красный, тогда как я не хочу этого. Если бы вы могли сказать мне, как их удалить, спасибо. Вот код:Изменение контраста изображения в PIL
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')
А вот образ и его результат:
Если это фактический метод контраста, не стесняйтесь сказать мне
Я не могу воспроизвести это. Я пробовал ваш код, и выходное изображение выглядит нормально. https://i.stack.imgur.com/QhR3n.jpg –
Ваш код содержит две разные попытки загрузки входного изображения. Вы 'test_image1.jpg' не будут использоваться, поскольку у вас есть' obama.png', жестко закодированный в теле функции. Вы уверены, что используете входной файл, который, как вы думаете, используете? –