繁体   English   中英

如何将 PIL 图像转换为 numpy 数组?

[英]How to convert PIL image to numpy array?

当我执行 np.asarray(my_img) 或 array(my_img).shape 时,它​​会在 jpg 图像上返回 (2412L, 3600L, 3L),但我只想要一个 2D (2412L, 3600L) 数组,那么如何正确转换呢? 提前致谢。

my_image = "AI.jpg"

from matplotlib.pyplot import imread
from PIL import Image

fname = "images/" + my_image
image = Image.open(fname) 
print(image.size)    # output: (3600, 2412)
print(np.asarray(image).shape) # output: (2412L, 3600L, 3L)
print(np.array(image).shape) # output: (2412L, 3600L, 3L)

如果您的图像尺寸的最后一个轴为3 ,则通常意味着您有一个 3 通道 RGB 图像。

如果你想要一个单通道图像,你将失去 RGB 颜色,只有一个灰度图像。 你可以这样做:

grey = Image.open(fname).convert('L')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM