--- a +++ b/heart_segmentation.py @@ -0,0 +1,35 @@ +#!/usr/bin/python3 + +import os +import platipy # https://pyplati.github.io/platipy/index.html + +from matplotlib import pyplot as plt + +import SimpleITK as sitk + +from platipy.imaging.projects.cardiac.run import run_hybrid_segmentation +from platipy.imaging import ImageVisualiser +from platipy.imaging.label.utils import get_com + +### Change this ### +filename = f'volume_{1}' +### Change this ### + +os.makedirs(f"./output/{filename}", exist_ok=True) +test_image = sitk.ReadImage(f"./input/volumes/{filename}.nii.gz") +auto_structures, _ = run_hybrid_segmentation(test_image) + +output_directory = './output' + +for struct_name in list(auto_structures.keys()): + sitk.WriteImage(auto_structures[struct_name], str(f"{output_directory}/{filename}/{filename}_{struct_name}.nii.gz")) + +print(f"Segmentations saved to: {output_directory}") + +vis = ImageVisualiser(test_image, cut=get_com(auto_structures["Heart"])) +vis.add_contour({struct: auto_structures[struct] for struct in auto_structures.keys()}) +fig = vis.show() + +plt.savefig(f"{output_directory}/{filename}/{filename}_heart_visualization.png") +plt.close(fig) +print(f"Visualization saved to: {output_directory}/{filename}/{filename}_heart_visualization.png")