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()
下面是一段简单的代码,用于使用 PIL 访问图像,转换为 numpy 数组,然后打印数组中元素的数量。
有问题的图像在这里 -
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()