使用h5py在HDF5中部分写入数组

时间:2016-11-02 15:02:36

标签: python hdf5 h5py

我想要做的是保存数千套图像。

每个图像集都有可变数量的图像。我已经看到hdf5格式在写入实际数据之前不会分配磁盘。

我决定写(设置数量,最大设置大小,imgX,imgY )形状数组。

这个阵列非常庞大。因此,如果我写入数组中的每个单元格,我就不能立即写入数组。所以,我制作了一次编写每个图像的代码。但是,似乎一次写一个,根本不写任何东西。

Belows是我的代码和输出。它告诉我,我写的是实际图像,但是一旦我从hdf5读取,它就会给出空白图像。

with h5py.File("D:\\data_icon\\flaticon\\test.hdf5",'w') as hf:
    flt = hf.create_dataset("flaticon", (2,500,128,128))
    for idx, icon_image in enumerate(pack_image_list[0][:5]):
        flt[0][idx]=icon_image
        plt.subplot(1,10,idx+1)
        plt.imshow(icon_image, cmap=plt.get_cmap('gray'))
        plt.axis('off')
    plt.show()

    for idx, icon_image in enumerate(pack_image_list[0][5:15]):
        flt[0][idx]=icon_image
        plt.subplot(1,10,idx+1)
        plt.imshow(icon_image, cmap=plt.get_cmap('gray'))
        plt.axis('off')
    plt.show()

    for i in range(1,11):
        plt.subplot(1,10,i)
        plt.imshow(flt[0][i], cmap=plt.get_cmap('gray'))
        plt.axis('off')
    plt.show()

输出 enter image description here

1 个答案:

答案 0 :(得分:0)

首先,不在组中编写单独数据集的原因是什么? HDF5的优势之一是能够在一个文件中将多个数组存储在命名组和数据集的结构中。

其次,pack_image_list中的数据究竟是什么?

如果您需要进一步的帮助,请提供输入数据的副本: - )