【发布时间】:2018-11-27 22:29:09
【问题描述】:
我有一个程序应该改变对比度,但我觉得它并没有真正改变对比度。它将某些区域变为红色,而我不希望它。如果您能告诉我如何删除它们,谢谢。 代码如下:
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')
这是图像及其结果:
如果这是实际的对比方法,请随时告诉我
【问题讨论】:
-
我无法重现这个。我试过你的代码,输出图像看起来不错。 i.stack.imgur.com/QhR3n.jpg
-
您的代码包含两种不同的加载输入图像的尝试。您的
test_image1.jpg将不会被使用,因为您在函数体中硬编码了obama.png。你确定你使用的是你认为你正在使用的输入文件吗?
标签: python python-3.x python-imaging-library