簡體   English   中英

Python Imaging Library使圖像變紅

[英]Python Imaging Library makes an image reddish

我已經使用Python Imaging Library打開了一個灰度圖像,將每個像素值復制到另一個相同大小的圖像變量中並保存了。 現在,當我使用圖像查看器打開新圖像時,它看起來偏紅。 我在使用Image.new()方法時,無論是否帶有“ white”和“ black”參數,都得到相同的帶紅色輸出。

我的代碼:

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):

在此處輸入圖片說明

我的代碼的Python輸出(縮小為500 x 500):

在此處輸入圖片說明

誰能告訴我我做錯了嗎?

您的問題是您要創建一個具有三個通道的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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM