提交 f22ba208 编写于 作者: 小吕同学吖's avatar 小吕同学吖 😲

Add new file

上级 da47a48c
import os
from monai.transforms import LoadImage, SaveImage, AddChannel
from skimage import measure
def connected_component(image):
# 标记输入的3D图像
label, num = measure.label(image, connectivity=1, return_num=True)
if num < 1:
return image
# 获取对应的region对象
region = measure.regionprops(label)
# 获取每一块区域面积并排序
num_list = [i for i in range(1, num + 1)]
area_list = [region[i - 1].area for i in num_list]
num_list_sorted = sorted(num_list, key=lambda x: area_list[x - 1])[::-1]
# 去除面积较小的连通域
if len(num_list_sorted) > 3:
# for i in range(3, len(num_list_sorted)):
for i in num_list_sorted[3:]:
# label[label==i] = 0
label[region[i - 1].slice][region[i - 1].image] = 0
num_list_sorted = num_list_sorted[:3]
return label
coronary_path = r"F:\data\cta-data\coronary-144\train\labels" # 冠脉label路径
aorta_path = r"F:\data\cta-data\Aorta_mask_15cases" # 带aorta的冠脉label路径
merge1_path = r"F:\data\cta-data\merge_coronary_CAC" # 合并冠脉和钙化的label路径
load = LoadImage()
files = [file for file in os.listdir(aorta_path)]
for aorta_file in files:
print(aorta_file)
aorta_name, nii_ext = aorta_file.split(".", 1)
aorta = aorta_name.split("_")
coronary_name = aorta[0] + "_" + aorta[1] + "_mask"
merge1_name = coronary_name + "_merge"
coronary_file = coronary_name + "." + nii_ext
merge1_file = merge1_name + "." + nii_ext
aorta_label, meta_aorta = load(os.path.join(aorta_path, aorta_file))
coronary_label, meta_coronary = load(os.path.join(coronary_path, coronary_file))
merge1_label, meta_merge1 = load(os.path.join(merge1_path, merge1_file))
label = aorta_label - coronary_label
label[label < 0] = 0
label = connected_component(label)
label[label > 1] = 0
merge_aorta_label = label * 3 + merge1_label
merge_aorta_label[merge_aorta_label > 3] = 0
# print(aorta)
save = SaveImage(output_dir=r"F:\data\cta-data\merge_labels", output_postfix='merge_aorta', output_ext='.nii.gz',
resample=True, mode='nearest', separate_folder=False)
save(img=AddChannel()(merge_aorta_label), meta_data=meta_coronary)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册