如何设置Image的色彩映射?

时间:2014-05-27 21:26:38

标签: matplotlib ipython ipython-notebook

我在Chrome上使用IPython Notebook。我一直试图在一个循环中显示几个图像,以便它们一个接一个地显示。在imshow()或set_data()没有运气之后(奇怪的JSON non_serialisable错误,即使在uint8数据上 - 当我在Numpy数组上使用Image()时也会发生这种情况)我编写了以下辅助函数:

def fshow(im):
    imsave('/test.png',im)
    display(Image(filename='/test.png'))

将图像保存到临时文件,然后使用Image()显示它。它工作得很漂亮 - 图像在输出单元格中实时弹出,如果我愿意的话,我可以将它们与Print语句一起散布。

但是对于单色图像,它们会出现在Jet colormap中!所以我使用以下hack将单色图像保存为具有相同颜色通道的RGB图像......

def fshow(im):
    sh=im.shape
    sh=(im.shape[0],im.shape[1],3)
    im2=zeros(sh)
    im2[:,:,0]=im
    im2[:,:,1]=im
    im2[:,:,2]=im
    imsave('/test.png',im2)
    display(Image(filename='/test.png'))
然而,这是一个黑客攻击。那么,如何更改Image用于显示单色图像的色彩图?

正如我们在这里,我如何让Image()显示Numpy数组而不抱怨它不能被JSON序列化?

0 个答案:

没有答案