1

如何将图像中每个像素的 RGB 值导入一维数组?

我正在使用以下东西:

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

这会将其导入到不可迭代的二维数组中。我想要同样的东西,但在一维数组中。

4

2 回答 2

1

您可以将像素展平为一维数组,如下所示:

width, height = im.size
pixels = [pix[i, j] for i in range(width) for j in range(height)]
于 2013-03-06T04:30:23.470 回答
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
于 2013-03-06T04:50:56.333 回答