Конвертировать hdf5 в raw, организованный в папки - PullRequest
0 голосов
/ 16 мая 2019

Я использую скрипт, чтобы изображения соответствовали атласу. Этот скрипт представляет собой .raw изображения, организованные в такие папки, как:

imageFolder
-- folder1
---- image1.raw
---- image2.raw
-- folder2
---- image1.raw
---- image2.raw

У меня есть изображение в hdf5, и я хотел бы преобразовать его в несколько файлов, как было показано ранее. Эта организация выглядит как hdf5, не так ли?

Я хотел бы знать, возможно ли это сделать в Python. И если это так, какой пакет я должен использовать? Я посмотрел на h5py, но не нашел функции для экспорта в raw и сохранения иерархии.

1 Ответ

0 голосов
/ 17 мая 2019

Feiten, вы можете использовать .visititems() для рекурсивного вызова функции (def) для экспорта данных.Вы можете запросить тип объекта и имя.Имена групп будут именами ваших папок, а имена наборов данных будут именами ваших файлов.В приложении приведен очень простой пример, который показывает, как использовать .visititems().Он содержит некоторые операторы печати (закомментированные), которые выводят больше информации, если вы не знакомы со структурой h5py и / или HDF5.Это должно начать вас.

import h5py

def print_grp_name(grp_name, object):

#  print ('object = ' , object)
#  print ('Group =', object.name)

  try:
    n_subgroups = len(object.keys())
    #print ('Object is a Group')
  except:
    n_subgroups = 0
    #print ('Object is a Dataset')
    dataset_list.append (object.name)

#  print ('# of subgroups = ', n_subgroups )

if __name__ ==  '__main__' :  
    with h5py.File(your-filename-here,'r') as h5f:

        print ('visting group = ', h5f)
        dataset_list = []
        h5f.visititems(print_grp_name)

    print (dataset_list)    
...