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

时间:2015-12-16 16:08:13

标签: python image python-imaging-library pixels

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

以下是我正在使用的代码:

from PIL import Image

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

print(pixels)

我创建了图像" 8Black.png"使用photoshop并将其全部涂成黑色。我使用的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())

但仍然没有得到我想要的结果。

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

1 个答案:

答案 0 :(得分:3)

您明确要求原始的2D图像被展平"通过getdata()进入一维序列。

您可以使用reshape将其恢复原状

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