#缺啥包直接pip install 即可
import matplotlib.pyplot as plt
import numpy as np
import os
import nibabel as nib
import h5py
path_image = '你原图像的路径'
path_label = '你标签的路径'
path_h5 = '存放h5文件的路径'
# 读取原始图像文件
def read_image(path):
#print(path)
images = nib.load(path).get_fdata().T
return images
# 读取标签文件
def read_label(path):
#print(path)
labels = nib.load(path).get_fdata().T
return labels
if __name__ == '__main__':
#获取路径下的文件名
imagelist = os.listdir(path_image)
labellist = os.listdir(path_label)
h5list = os.listdir(path_h5)
#批量处理
for idx in range(1, 100):
images_name = '你原图像文件的名字{}.nii.gz'.format(idx)#.nii文件与.nii.gz语句相同
labels_name = '你标签文件的名字{}.nii.gz'.format(idx) patient{}_heart.nii.gz
hf_name = "你要的h5的文件名{}.h5".format(idx)
#
if images_name not in imagelist:
print(images_name+ " not exist! continue")
continue
if labels_name not in labellist:
print(labels_name+ " not exist! continue")
continue
#防覆盖,需要修改已有的注释掉即可
if hf_name in h5list:
print(hf_name+' exist!')
continue
images_path = os.path.join(path_image, images_name)
labels_path = os.path.join(path_label, labels_name)
h5_save_path = os.path.join(path_h5, hf_name)
images = read_image(images_path)
labels = read_label(labels_path)
# 写入h5文件
with h5py.File(h5_save_path, mode='w') as hf:
hf.create_dataset(name="images", dtype=float, data=images, compression="gzip")
hf.create_dataset(name="labels", dtype=float, data=labels, compression="gzip")
print("patient{} finished".format(idx))
nii转h5
于 2023-05-25 20:25:43 首次发布