在HDF5文件中存储大量RGB图像的更有效方法

2024-09-29 21:58:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几百张大图像(超过100K x 200K像素)。我将这些图像分为256 x 256个补丁,并将它们全部存储在具有以下结构的HDF5文件中:
enter image description here

以下是我重新创建此HDF5结构的代码:

def save_to_hdf5(slide_name, patches, coords, labels, db_name , db_location):
    with h5py.File(db_location + f'training{db_name}.h5' ,'a') as hf:
        patient_index = "_".join(os.path.basename(slide_name).split('.')[0].split('_')[:2])
        slide_index = "_".join(os.path.basename(slide_name).split('.')[0].split('_')[3])
        slide_label = labels[os.path.basename(slide_name)]
    
        grp = hf.require_group(patient_index)
        subgrp = grp.require_group('wsi_{}'.format(slide_index))
        for i, patch in enumerate(patches):
        subsubgrp = subgrp.require_group('patch_{}'.format(i))
        subsubgrp.create_dataset('image', np.shape(patch), data=patch, compression="gzip", compression_opts=7)#, chunks=True)
        subsubgrp.create_dataset('label', np.shape(slide_label), data=slide_label)
        subsubgrp.attrs["patch_coords"] = (coords[i][0], coords[i][1])

现在,一些大型图像的HDF5文件的大小甚至比原始图像本身还要大。我想知道代码中的数据集创建步骤是否有问题


Tags: pathname图像dbindexosrequirecoords

热门问题