机场大巴 2024-05-06 13:26 采纳率: 66.7%
浏览 12
已结题

PIL显示mnist图片一闪而过


import sys, os
sys.path.append(os.pardir)  # 为了导入父目录的文件而进行的设定
import numpy as np
from dataset.mnist import load_mnist
from PIL import Image


def img_show(img):
    pil_img = Image.fromarray(np.uint8(img))
    pil_img.show()

(x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False)

img = x_train[0]
label = t_train[0]
print(label)  # 5

print(img.shape)  # (784,)
img = img.reshape(28, 28)  # 把图像的形状变为原来的尺寸
print(img.shape)  # (28, 28)

img_show(img)

一个很简单的函数,显示mnist数据集的第一张图片及其标签,然而不知道为什么,图片一闪而过,短暂的显示了不到一秒钟,就跳转到别的文件夹下的图片了。

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-05-06 13:26
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这个问题可能是因为标准的图像查看器不能持续显示图像造成的。可以尝试用其他图像查看器,例如matplotlib的imshow函数来显示图像。 修改代码如下:
    import sys, os
    sys.path.append(os.pardir)  # 为了导入父目录的文件而进行的设定
    import numpy as np
    from dataset.mnist import load_mnist
    import matplotlib.pyplot as plt
    def img_show(img):
        plt.imshow(img)
        plt.show()
    (x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False)
    img = x_train[0]
    label = t_train[0]
    print(label)  # 5
    print(img.shape)  # (784,)
    img = img.reshape(28, 28)  # 把图像的形状变为原来的尺寸
    print(img.shape)  # (28, 28)
    img_show(img)
    

    这样就可以通过matplotlib来显示图片了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 已采纳回答 5月7日
  • 创建了问题 5月6日