我试图运行这个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]
非常感谢
答案 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]