【问题标题】:How to save CNN prediction as image with float32 data type?如何将 CNN 预测保存为 float32 数据类型的图像?
【发布时间】:2021-06-27 04:20:11
【问题描述】:

我正在尝试将 CNN 预测结果输出为 float32 格式。当我使用以下代码时,图像输出以 8 位格式在 0-255 之间缩放。如何保留 float32?

pred= model.predict(X_test)

-> dtype('float32')

for i, image in enumerate(pred, 1):
    tf.keras.preprocessing.image.save_img(f'output_test/{i}.tif', image,scale=False)

【问题讨论】:

    标签: python arrays image numpy tensorflow


    【解决方案1】:

    为了将预测保存到 float32 数据类型的图像,我们可以使用tifffile。修改后的代码是:

    import numpy as np
    from tifffile import imsave
    
    pred= model.predict(X_test)
    
    for i, image in enumerate(pred, 1):
        imsave(f'output_test/{i}.tif', image)
    

    【讨论】:

      【解决方案2】:

      试试这个:

      from keras.preprocessing.image import array_to_img
      from PIL import Image
      
      pred = model.predict(X_test)
      for i, im in enumerate(pred, 1):
          img = array_to_img(im, scale=False)
          img.save('saved_image_{}.png'.format(i), format="PNG")
      

      【讨论】:

      • @azal, pred 包含多个数组,我们如何在您的代码中添加 for 循环
      • @Sam 请看我的编辑。在 format=='PNG'' 中,您可以根据需要和可用的选择一种。如果答案适合您的需要,请采纳。谢谢。
      • @azal,这是您的代码的错误:“numpy.ndarray”对象没有属性“array_to_img”
      • @azal,这是新错误:ValueError: Expected image array to have rank 3 (single image)。得到形状数组:(2176, 16, 16, 1)
      • @Sam 再试一次,代码有错别字。
      猜你喜欢
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 2021-04-24
      • 2020-05-14
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多