【问题标题】:Storing values of numpy array in pixels of jpg image以jpg图像的像素存储numpy数组的值
【发布时间】:2019-07-01 06:34:47
【问题描述】:

我正在研究图像分割问题,并创建了用于训练的掩码。我将这些掩码存储在 numpy 数组中(值为 1.5、2、2.5、3、3.5、4、4.5、5)。我尝试以 .npy 格式导出它们,但大小非常大,当我使用 matplolib 将这些值存储在 jpg 中时,掩码会被破坏。如何直接将这些 numpy 数组值作为像素值放入图像中。例如,numpy 数组为 300X300,因此生成的 jpg 图像的分辨率为 300X300 像素。

【问题讨论】:

  • 不确定它是否是完成这项工作的最佳工具,但您可以使用 np.savez_compressed 保存压缩数组。您当然不想以 jpg 之类的有损格式保存您的蒙版,如果您需要它们是图像,也许 png 会更好
  • 我的主要问题是尺寸。使用 numpy 仅 1800 个掩码,.npy 文件的大小为 2GB。
  • 我建议的 npz 解决方案怎么样?试试看?
  • 是的,它显着减小了尺寸。我认为这很好。

标签: numpy matplotlib image-segmentation


【解决方案1】:

这里有两个想法......你可以节省一些空间将你的类转换为整数:

1.5 -> 1
2 -> 2
2.5 -> 3
...

当您使用.npy 格式(我会推荐)时,这也应该节省一些空间。 例如,当您需要 png 进行目视检查时,请使用:

import matplotlib as mpl
mpl.image.imsave('test.png',pixel_values)

并且您可以确保在图片属性中像素数与pixel_value here 矩阵之一匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    相关资源
    最近更新 更多