Python中的奇怪色彩plt.imshow()图像

时间:2017-04-08 07:41:27

标签: python image matplotlib keras

我正在使用Keras ImageGenerator处理一些图像(jpegs)。为了调试,我在处理循环期间显示一些图像:

from keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt

datagen = ImageDataGenerator(**datagen_args)
X = np.zeros(4, 224, 224, 3))  # pralloc matrix for storing the images

for i in range(4):      
    img_path = repo + fnam[i]
    image = plt.imread(img_path)        

    plt.imshow(image)  # image looks correct
    plt.show()

    trans_img = datagen.random_transform(image)  # keras ImageGenerator

    plt.imshow(trans_img)  # image looks correct
    plt.show()

    X[i, :, :, :] = trans_img

请注意,ImageGenerator不会应用任何色偏。完成后,我从X中选择一个图像并显示它:

im1 = X[0, :, :, :]
print(im1.shape)  [224, 224, 3]

plt.imshow(im1) 
plt.show()

生成的图像有一个奇怪的蓝色偏色。我已经尝试了各种其他方法来加载和显示图像,但它们都有蓝色投射。

任何帮助表示赞赏。谢谢。

更新:这样可以使用正确的colourmap显示图像:

from scipy.misc import toimage
toimage(im1).show()

如果有人能解释原因,我将非常感激。谢谢。

1 个答案:

答案 0 :(得分:-1)

来自scipy.misc import toimage

toimage(IM1).show()