将RGB图像变成灰度会导致白色发光

时间:2019-01-31 15:06:21

标签: python python-imaging-library

我试图通过操纵像素将RGB图像变成灰度:

from PIL import Image

img = Image.open("image.jpg")
pixels = img.load()

for i in range(img.size[0]):
    for j in range(img.size[1]):
        avg = int(pixels[i,j][0] + pixels[i,j][1] + pixels[i,j][2] / 3)
        pixels[i,j] = (avg,avg,avg)

img.show()

大多数情况下为灰色,但是图像的白色部分变得更加明显。我该如何解决?

3 个答案:

答案 0 :(得分:2)

尝试使用加权平均值:

binding.setLifecycleOwner(lifecycleOwner)

根据this article,这些权重应该是“说明眼睛对不同颜色的敏感性”。

答案 1 :(得分:2)

您缺少括号。 尝试以下行:

avg = int((pixels[i,j][0] + pixels[i,j][1] + pixels[i,j][2]) / 3)

答案 2 :(得分:1)

您缺少括号,但是图像对象实际上具有转换为黑白的功能。试试这个:

img = Image.open("image.jpg").convert("L")

您可以找到有关其完整文档here