如何使用 keras 加载图像并显示图像?

Posted

技术标签:

【中文标题】如何使用 keras 加载图像并显示图像?【英文标题】:How to load an image and show the image using keras? 【发布时间】:2017-12-04 03:25:40 【问题描述】:
%matplotlib inline
from keras.preprocessing import image

import matplotlib.pyplot as plt
import numpy as np
img = np.random.rand(224,224,3)
plt.imshow(img)
plt.show()

img_path = "image.jpeg"
img = image.load_img(img_path, target_size=(224, 224))
print(type(img))

x = image.img_to_array(img)
print(type(x))
print(x.shape)
plt.imshow(x)

我有一些这样的代码应该打印图像。但它以错误的通道显示图像。我在这里错过了什么?

【问题讨论】:

“但它在错误的通道中显示图像”不是一个充分的问题描述。结果是什么,您希望如何获得它?尤其是target_size这里的作用是什么,要不要忽略colorchannels? 【参考方案1】:

这是一个图像缩放问题。 imshow() 的输入期望它在 0-1 范围内,而您正在向它传递 [0-255] 范围输入。尝试将其视为:

plt.imshow(x/255.)

【讨论】:

我会指出这仅适用于 RGB 图像。 plt.imshow 默认自动缩放到给定数据的范围,否则可以通过vminvmax 参数控制。【参考方案2】:

这个问题有点老了,但是有一个很舒服的方法 显示图片:

tf.keras.preprocessing.image.array_to_img(image[0]).show()

你的图片必须有 3 个维度(如果它像往常一样在一个批次中,只需取所需的元素)。在 EagerTensors 或 numpy 数组上运行良好。

【讨论】:

以上是关于如何使用 keras 加载图像并显示图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何对目录中的 keras 图像数据集使用交叉验证?

如何在 Keras 中使用张量板显示输入张量

深入学习Google Colab:加载大型图像数据集的时间很长,如何加速这个过程?

使用 readAsDataURL 加载后如何检索图像尺寸?

Keras - 如何在不改变纵横比的情况下使用 ImageDataGenerator

如何在Keras中使用中级微调?