Python Imaging Library使图像偏红

时间:2016-05-29 04:16:19

标签: python image python-2.7 image-processing graphics

我使用Python Imaging Library打开了灰度图像,将每个像素值复制到另一个相同大小的图像变量并保存。现在,当我用图像查看器打开新图像时,它看起来偏红。我使用了带有和没有" white"的Image.new()方法。和"黑"参数得到了相同的红色输出。

我的代码:

from PIL import Image
import math

def run():
    im = Image.open("hrabowski.jpg")
    pix = im.load()
    print im.size
    # print pix[0, 1]

    im2 = Image.new("RGB", (2400, 2400))

    for i in range(im.size[0]):
        for j in range(im.size[0]):
            im2.putpixel((i, j), pix[i, j])

    im2.save("hrabowski-2400-2400.jpg")

原始图片(缩小至500 x 500):

enter image description here

我的代码的Python输出(缩小到500 x 500):

enter image description here

有谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:2)

您的问题是您想要创建一个有三个通道的RGB图像。因此,一个像素值由三个值组成,而不仅仅是一个(在您的情况下,使用每个通道的原始图像的灰度值)。

我已相应地修改了代码。

侧面评论:我几乎可以肯定,有更好的方法可以实现您想要实现的目标,通常无需循环使用单个像素,但我不确定您的目标是什么。

from PIL import Image
import math

def run():
    im = Image.open("ZHiG0.jpg")
    pix = im.load()
    print im.size
    # print pix[0, 1]

    im2 = Image.new("RGB", (2400, 2400))

    for i in range(im.size[0]):
        for j in range(im.size[0]):
            im2.putpixel((i, j), (pix[i, j],pix[i, j],pix[i, j]))

    im2.save("ZHiG0-2400-2400.jpg")
run()