如何将图像的像素打印为矩阵?

How to print pixels of an image as a matrix?

我想将图像的像素打印为矩阵。

这是我使用的代码:

from PIL import Image

im = Image.open("8Black.png")
pixels = list(im.getdata())

print(pixels)

我使用 photoshop 创建了图像“8Black.png”,并将其涂成全黑。我使用的 python 版本是 3.5.0。但是,当我 运行 上面的代码时,我得到:

[0,0,0,0,0,0,0,0,0,0,0,0,...,0]

我想改用这个:

[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[...],[...]]

我试着改变这个:

pixels = list(im.getdata())

对此:

pixels = np.matrix(im.getdata())

但还是没有得到我想要的结果。

如何获取矩阵形式的像素数据?我错过了什么吗?

您通过 getdata().

明确要求将原始 2D 图像 "flattened" 转换为 1D 序列

您可以使用 reshape 将其恢复为原始形式

matrix = np.array(im.getdata()).reshape(im.size)