将图像中每个像素的RGB值导入1-D阵列

时间:2013-03-06 04:19:56

标签: python

如何将图像中每个像素的RGB值导入1-D数组?

我正在使用以下内容:

from PIL import Image
im = Image.open("bride.jpg")
pix = im.load()
print pix[x,y]

这将它导入到不可迭代的二维数组中。 我希望同样的东西,但在一维数组。

2 个答案:

答案 0 :(得分:1)

您可以按如下方式将像素展平为一维数组:

width, height = im.size
pixels = [pix[i, j] for i in range(width) for j in range(height)]

答案 1 :(得分: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