如何将图像的像素打印为矩阵?
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)
我想将图像的像素打印为矩阵。
这是我使用的代码:
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()
.
您可以使用 reshape
将其恢复为原始形式
matrix = np.array(im.getdata()).reshape(im.size)