错误:解压缩的值太多

时间:2015-02-26 03:28:25

标签: python

我试图运行这个python代码来读取图像并将其转换为数据矩阵,但是我遇到了上面的错误,我希望你能帮我弄清楚它是什么

from PIL import Image
from numpy import array
import numpy as np



img = Image.open('felix.png')
arr = array(img)

im = Image.open("felix.png")
col,row =  im.size
data = np.zeros((row*col, 5))
pixels = im.load()
for i in range(row):
    for j in range(col):
        r,g,b =  pixels[i,j]
        data[i*col + j,:] = r,g,b,i,j




print (data)

错误,值错误:解压缩的值太多了:r,g,b = pixels [i,j]

非常感谢

2 个答案:

答案 0 :(得分:4)

此错误表示每个像素包含的变量超过了您为变量提供的3个值。假设这些实际上是RGBA像素是合理的。

r,g,b,a = pixels[i,j]

您打开的每个PNG文件都不会出现这种情况,因此您需要能够动态处理这种情况。

答案 1 :(得分:0)

如果你有多个不同波段的图像(RGB / RGBA)并且你不想过滤它们,那么就这样做:

band = pixels[i,j]
r = band[0]
g = band[1]
b = band[2]