从PIL图像转换时numpy数组的形状

时间:2017-05-30 18:06:58

标签: python arrays numpy python-imaging-library

使用

将PIL图像转换为numpy数组时
image = Image.open(file_path)
image_array = numpy.array(image)

有时我会得到一个尺寸等于图像尺寸的二维数组。其他时候我得到一个3D数组,每个条目都是一个像素数组(即[RRR,GGG,BBB])。有时我得到一个3D数组,每个条目都是一个有4个值的数组(即[RRR,GGG,BBB,XXX])。是什么决定了numpy阵列的形状?如果它是2D数组,那么条目代表什么?

1 个答案:

答案 0 :(得分:0)

回答了我自己的问题:

numpy数组的形状由PIL图像的模式决定。可以找到完整的模式列表here。当图像的模式为1,L或P时,将创建一个2D数组。否则将创建一个3D数组,其值与模式所代表的值类似。