尝试从PNG图片[Python PIL]

问题描述

我正在尝试使用Python创建一个简单的图像处理程序,并且该程序可以与.jpg文件一起正常工作。不幸的是,我似乎永远无法使它适用于.png文件,而且我真的不明白为什么。

这是我的代码,用于获取图像并提取每个像素的各个RGB值:

image1 = Image.open('fake4.png')
            
pixels1 = image1.load()
  
for i in range(image1.size[0]): #column
    for j in range(image1.size[1]): #row
        r,g,b = image1.getpixel((i,j))
        #perform some checks on individual RGB values

运行代码时,它对于jpeg图像运行良好,但是对于.png图像,我总是在r,j))行遇到两个错误之一。

这些错误是:

builtins.ValueError: too many values to unpack (expected 3)

builtins.TypeError: cannot unpack non-iterable int object

Python图像库是我的新手,图像处理也是如此。

任何想法都是为什么引起问题以及如何解决

解决方法

感谢Nicolas Gervais帮助我弄清楚了我要处理的图像实际上是灰度图像。因此,getpixel()函数将仅返回一个值。

这样,我通过将图像转换为RGBA格式来解决了这个问题,

这是解决方法的代码:

initialImage = Image.open('fake4.png')
image1 = Image.new("RGBA",initialImage.size)
image1.paste(initialImage) 

不确定这是最有效的方法,但是可以解决问题。