Synapse数据集,将腹部多器官的标签单独提取出来,自成一个nii.gz格式文件,在这里一个原始标签文件可以提出13个器官子文件

该代码段使用SimpleITK库从一个多器官标签的nii.gz文件中,将每个器官的标签提取出来,生成13个单独的二值化图像文件。它遍历指定目录中的所有文件,对每个文件进行处理,通过设置阈值将对应标签的像素设为1,其余设为0,然后保存为新的nii.gz文件。
摘要由CSDN通过智能技术生成
"""
function:将腹部多器官的标签单独提取出来,自成一个nii.gz格式文件,在这里一个原始标签文件可以提出13个器官子文件
author:是人间一只财
time:2023-3-10
"""

import SimpleITK as sitk
import os
def multi_to_single(seg_path,new_save_seg_path):
    if not os.path.exists(new_save_seg_path):    # 创建保存目录
        os.makedirs(new_save_seg_path)
    segmentations=glob.glob(os.path.join(seg_path,'*'))
    print(segmentations)
    label_values = [1, 2, 3,4,5,6,7,8,9,10,11,12,13] # 根据实际情况进行修改
    for segmentation_path in segmentations:
        print(segmentation_path) 
        name=segmentation_path.split('/')[-1].split('.')[0]
        seg = sitk.ReadImage(segmentation_path, sitk.sitkInt8)
        seg_label = sitk.GetArrayFromImage(seg)
        # print(f'标签中有几种值: {np.unique(seg_label)}')

        # 循环遍历每个标签值
        for label_value in label_values:
            # 创建二值化图像
            binary_image = sitk.BinaryThreshold(seg, lowerThreshold=label_value, upperThreshold=label_value, insideValue=1, outsideValue=0)
            # 创建输出文件名
            output_filename = os.path.join(new_save_seg_path,name+'_{}'.format(label_value)+'.nii.gz')
            # 保存输出文件
            sitk.WriteImage(binary_image, output_filename)
            print("Saved label {} to {}".format(label_value, output_filename))

multi_to_single(seg_path=seg_path,new_save_seg_path='/home/su/github_models/Local_prototype_network/data/RawData/new_segmentation')
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值