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

Lin*_*ing 5 python image pixels python-imaging-library

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

这是我正在使用的代码:

from PIL import Image

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

print(pixels)
Run Code Online (Sandbox Code Playgroud)

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

[0,0,0,0,0,0,0,0,0,0,0,0,...,0]
Run Code Online (Sandbox Code Playgroud)

我想得到这个:

[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[...],[...]]
Run Code Online (Sandbox Code Playgroud)

我试着改变这个:

pixels = list(im.getdata())
Run Code Online (Sandbox Code Playgroud)

对此:

pixels = np.matrix(im.getdata())
Run Code Online (Sandbox Code Playgroud)

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

如何将像素数据作为矩阵获取?我错过了什么?

Mar*_*ler 4

您明确要求通过执行以下操作将原始 2D 图像“展平”为 1D 序列getdata()

你可以用reshape它来恢复原来的形式

matrix = np.array(im.getdata()).reshape(im.size)
Run Code Online (Sandbox Code Playgroud)