PIL 打开图像的 numpy 数组中的元素数量错误

Wrong number of elements in a numpy array of a PIL-opened image

下面是一段简单的代码,用于使用 PIL 访问图像,转换为 numpy 数组,然后打印数组中元素的数量。

有问题的图像在这里 - - 正好由 100 个像素 (10x10) 组成。但是,numpy 数组包含 300 个元素(我希望有 100 个元素)。我做错了什么?

import numpy as np
import PIL

impath = 'C:/Users/Ricky/Desktop/testim.tif'
im = PIL.Image.open(impath)
arr = np.array(im)
print arr.size #300

每个图像可以由 3 个波段组成(红-绿-蓝或 RGB 合成)。 由于您的图像是 black/white 图像,因此这三个波段是相同的。您可以使用彩色图像看到差异。

试试看我的意思:

import matplotlib.pyplot as pyplot
# this line above import a matplotlib library for plotting image

import numpy as np
import PIL
impath = 'C:/Users/Ricky/Desktop/testim.tif'
im = PIL.Image.open(impath)
arr = np.array(im)

print arr.shape # (10, 10, 3)
print arr[:, : ,0].size # 100

# next lines actually show the image
pyplot.imshow(arr[:, : ,0], cmap='gray')
pyplot.show()