问题描述
我正在尝试使用Python创建一个简单的图像处理程序,并且该程序可以与.jpg文件一起正常工作。不幸的是,我似乎永远无法使它适用于.png文件,而且我真的不明白为什么。
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)
不确定这是最有效的方法,但是可以解决问题。