【问题标题】:How to store .npy file as a folder containing images如何将 .npy 文件存储为包含图像的文件夹
【发布时间】:2021-07-19 12:20:37
【问题描述】:

我正在使用 GRAD-CAM 模块,该模块首先将文件夹中的图像转换为数组 X,然后在对 .npy 文件执行操作之后。但我想将这个数组恢复为图像格式并存储在一个文件夹中。我该如何继续?

dir_path = '/content/drive/MyDrive/Datasets/ircad/raw/Original_sliced_train/'
files = os.listdir(dir_path)
N = len(files)

X = np.empty((N, H, W, 3))
for i, file in enumerate(files):
     x = image.load_img(dir_path + file, target_size=(H, W))
     X[i] = image.img_to_array(x)
X = preprocess_input(X)

top = np.argmax(model.predict(X), 1)

gradcam = np.empty((X.shape[:-1]))
batch_size = 32
for i in range((N + batch_size - 1) // batch_size):
    start = i * batch_size
    end = min((i+1) * batch_size, N)
    gradcam[start:end] = grad_cam_batch(model, X[start:end], top[start:end], 'block5_conv3')

gradcam.tofile('gradcam.npy')

【问题讨论】:

    标签: python image-preprocessing medical-imaging


    【解决方案1】:

    如果我理解正确,您想将 gradcam 的输出保存为图像而不是 .npy,对吗? 在这种情况下,您可以将最后一行代码替换为cv2.imwrite("gradcam.png",gradcam),但您必须使用import cv2

    【讨论】:

    • 但是我该如何处理这个长数组 X 中的所有图像呢?
    • for i in range(len(gradcam)): cv2.imwrite(F"{i}.png",gradcam[i])??
    • 谢谢!我试过了, cv2.write 但它保存了一个黑色图像。相反,我使用了for _ in range(len(gradcam)): matplotlib.image.imsave(F"/content/drive/MyDrive/Datasets/ircad/raw/grad-cam/{_}.png",gradcam[i])
    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2017-11-09
    • 2021-07-23
    • 2012-11-17
    相关资源
    最近更新 更多