我发现一个奇怪的问题,目前互联网上还没有解决方案。如果我读取一个 .png 文件,然后尝试显示它,它可以完美地工作(在下面的示例中,文件是单个蓝色像素)。然而,如果我尝试手动创建这个图像数组,它只会显示一个空白画布。有什么想法吗?
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
im = Image.open('dot.png') # A single blue pixel
im1 = np.asarray(im)
print im1
# [[[ 0 162 232 255]]]
plt.imshow(im1, interpolation='nearest')
plt.show() # Works fine
npArray = np.array([[[0, 162, 232, 255]]])
plt.imshow(npArray, interpolation='nearest')
plt.show() # Blank canvas
npArray = np.array([np.array([np.array([0, 162, 232, 255])])])
plt.imshow(npArray, interpolation='nearest')
plt.show() # Blank canvas
另外我也尝试将所有的np.array()替换为np.asarray(),但结果仍然相同。