"""
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')
Synapse数据集,将腹部多器官的标签单独提取出来,自成一个nii.gz格式文件,在这里一个原始标签文件可以提出13个器官子文件
于 2023-03-10 20:58:22 首次发布
该代码段使用SimpleITK库从一个多器官标签的nii.gz文件中,将每个器官的标签提取出来,生成13个单独的二值化图像文件。它遍历指定目录中的所有文件,对每个文件进行处理,通过设置阈值将对应标签的像素设为1,其余设为0,然后保存为新的nii.gz文件。
摘要由CSDN通过智能技术生成