将图像中每个像素的RGB值导入一维数组
如何将图像中每个像素的RGB值导入到一维数组中?
我正在使用以下方法:
from PIL import Image
im = Image.open("bride.jpg")
pix = im.load()
print pix[x,y]
这个方法把数据导入到了一个二维数组中,但这个数组不能被逐个遍历。我想要的是把数据导入到一个一维数组中。
2 个回答
1
如果你使用numpy的话,这个操作很简单,而且不需要加载图片。
from PIL import Image
import numpy as np
im = Image.open("bride.jpg")
pix_flatiter = np.asarray(im).flat # is an iterable
如果你想加载整个数组,可以这样做:
pix_flat = np.asarray(im).flatten() # is an array
1
你可以把像素压缩成一个一维数组,方法如下:
width, height = im.size
pixels = [pix[i, j] for i in range(width) for j in range(height)]