nii.gz转h5数据集

nii.gz转h5数据集


一个h5文件对应一个数据的image和label,可以通过train.txt、test.txt、val.txt划分训练集、测试集、验证集

import numpy as np
import h5py
import nibabel as nib
from tqdm import tqdm

""""
获取文件夹下全部文件名,后缀为str
"""


def get_files(dir, str):
    files = []
    for file in os.listdir(dir):
        if file.__contains__(str):
            print(file[:-len(str)])
            files.append(file)
    return files


"""
获取nii_file数据
"""


def get_nii(image_path):
    img = nib.load(image_path)
    image = img.get_fdata(dtype=np.float64)
    return image


"""
写入data.h5文件
"""


def save_h5(save_path, image_path, label_path):
    if os.path.exists(save_path):
        print(f'{save_path} has exist')
        return
    if os.path.exists(image_path) == False:
        print(f'{image_path} has not exist')
        return
    if os.path.exists(label_path) == False:
        print(f'{label_path} has not exist')
        return
    image = get_nii(image_path)
    label = get_nii(label_path)
    f = h5py.File(save_path, 'w')
    f.create_dataset('image', data=image)
    f.create_dataset('label', data=label)
    f.close()


def make_h5():
    img_parent = '/Users/menglian.gan/Documents/segment/dataset/aiteeth/img/'
    label_parent = '/Users/menglian.gan/Documents/segment/dataset/aiteeth/label1/'
    save_parent = '/Users/menglian.gan/Documents/projects/pythonProjects/SSL4MIS/data/Aiteeth/data/'
    img_list = get_files(img_parent)
    print(len(img_list))
    for case in tqdm(img_list):
        save_h5(save_parent + case[:-7] + '.h5', img_parent + case, label_parent + case)
    
    ################test
    # f = h5py.File(save_parent+'1001152328_20180910.h5', 'r')
    # image = f['image'][:]
    # # print(image)
    # image2 = nib.load(img_parent+'1001152328_20180910.nii.gz')
    # image2 = image2.get_fdata(dtype = np.float64)
    # print(type(image.shape))
    # print(type(image2.shape))
    # train_set_x_orig = np.array(train_dataset['X_train'][:])

def check():
    save_parent = '/Users/menglian.gan/Documents/projects/pythonProjects/SSL4MIS/data/Aiteeth/data/'
    get_files(save_parent, '.h5')

if __name__ == '__main__':
    make_h5()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值