2016-11-02 10 views
0

Что я хочу сделать, это сохранить тысячи изображений.

Каждый набор изображений имеет переменное количество изображений. Я видел, что формат hdf5 не выделяет диск, пока не будут записаны фактические данные.частично записывает массив в HDF5 с h5py

Я решил написать (номер набора, максимальный размер набора, imgX, imgY) форма массив.

Этот массив действительно огромный. Поэтому, если я пишу каждую ячейку массива, я не могу сразу написать массив. Итак, я сделал код для записи каждого изображения за раз. Но, похоже, что писать по одному, не пишет вообще никаких комментариев.

Ниже приводится мой код и их вывод. Это показывает мне, что я пишу фактическое изображение, но как только я прочитал от 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

ответ

0

Во-первых, то, что является причиной не писать отдельные наборы данных в группах? Одной из достоинств HDF5 является возможность хранения множества массивов в структуре названных групп и наборов данных в одном файле.

Во-вторых, каковы именно данные в pack_image_list?

Если вам нужна дополнительная помощь, предоставьте копию ваших входных данных :-)