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

1 投票
2 回答
1316 浏览
提问于 2025-04-17 18:05

如何将图像中每个像素的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)]

撰写回答