如何使用 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
默认自动缩放到给定数据的范围,否则可以通过vmin
和vmax
参数控制。【参考方案2】:
这个问题有点老了,但是有一个很舒服的方法 显示图片:
tf.keras.preprocessing.image.array_to_img(image[0]).show()
你的图片必须有 3 个维度(如果它像往常一样在一个批次中,只需取所需的元素)。在 EagerTensors 或 numpy 数组上运行良好。
【讨论】:
以上是关于如何使用 keras 加载图像并显示图像?的主要内容,如果未能解决你的问题,请参考以下文章
深入学习Google Colab:加载大型图像数据集的时间很长,如何加速这个过程?