【问题标题】:How to load an image and show the image using keras?如何使用 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?

标签: python numpy matplotlib tensorflow keras


【解决方案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 数组上运行良好。

【讨论】:

    猜你喜欢
    • 2010-12-06
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多