我想将图像的像素打印为矩阵。
以下是我正在使用的代码:
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())
但仍然没有得到我想要的结果。
如何将像素数据作为矩阵?我错过了什么吗?
答案 0 :(得分:3)
您明确要求原始的2D图像被展平"通过getdata()
进入一维序列。
您可以使用reshape
将其恢复原状
matrix = np.array(im.getdata()).reshape(im.size)