我需要使用ax.imshow()
显示matplotlib图的背景。我将使用的背景图像是GIF图像。尽管安装了PIL,但以下代码导致错误,抱怨未安装Python映像库(PIL)(它是):
from pylab import imread
im_file = open("test.gif")
im_obj = imread(im_file)
使用PIL直接读取图像效果更好:
from PIL import Image
import numpy
img = Image.open("test.gif")
img_arr = asarray(img.getdata(), dtype=numpy.uint8)
但是,在重新整形数组时,以下代码不起作用:
img_arr = img_arr.reshape(img.size[0], img.size[1], 3) #Note the number 3
原因是实际的颜色信息包含在通过img.getcolors()
或img.getpalette()
访问的颜色表中。
将所有图像转换为PNG或使用imread()
或Image.open()
打开RGB图像时产生RGB图像的其他合适格式不是一种选择。我可以在需要时使用PIL转换图像,但我认为这个解决方案很难看。所以问题如下:是否有简单快速(图像为5000 x 5000像素)的方式将GIF图像转换为RGB(在RAM中),以便我可以使用imshow()
显示它们?
答案 0 :(得分:0)