如何解决尝试从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)
不确定这是最有效的方法,但是可以解决问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。