【问题标题】:To convert a grayscale image to RGB image using PIL使用 PIL 将灰度图像转换为 RGB 图像
【发布时间】:2018-08-15 02:56:57
【问题描述】:

我正在尝试在 python 中将灰度图像转换为 RGB 图像格式的代码,但是每次尝试执行时都会引发 TypeError。

我的代码如下:

from PIL import Image
path = "bw.jpg"

img = Image.open(path)
rgb = img.convert("RGB")
width,height = rgb.size

for x in range(width):
    for y in range(height):
        r, g, b = img.getpixel((x, y))
        value  = r* 299.0/1000 + g* 299.0/1000 + b * 299.0/1000
        value = int(value)
        rgb.putpixel ((x, y), value)
rgb.save("abc.png")

我得到的错误是:

r, g, b = img.getpixel((x, y))

TypeError: 'int' object is not iterable

任何帮助都会非常感激。

【问题讨论】:

    标签: python-imaging-library rgb gray-code


    【解决方案1】:

    您混淆了图像和值。使用img 可以获得灰度,所以你应该使用这个:

    grey = img.getpixel((x, y))
    

    或者,因为您将 img 转换为 rgb(带有 RGB 值),您也可以这样写:

    r, g, b = rgb.getpixel((x, y))
    

    但是,您似乎正在执行不需要的计算(好吧,这可能只是完整代码的损坏部分)。

    错误:img.getpixel() 将返回一个数字(在 BW 图像上),并且 int 不可迭代拆分为 rgb,因此出现错误。但是rgb.getpixel()返回一个列表(长度为3),它是可迭代的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-26
      • 2014-12-22
      • 2015-07-11
      • 2019-11-14
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      相关资源
      最近更新 更多