3D Slicer将单个、多个stl文件导出为nii


import os
import slicer 

stl_file_name = "D://input.stl"
output_file_name = "D://output.nii.gz"
reference_original_path = "D://originalInput.nii.gz"

referenceVolumeNode = slicer.util.loadVolume(reference_original_path )
segmentationNode = slicer.util.loadSegmentation(stl_file_name)
outputLabelmapVolumeNode = slicer.mrmlScene.AddNewNodeByClass('vtkMRMLLabelMapVolumeNode')
slicer.modules.segmentations.logic().ExportVisibleSegmentsToLabelmapNode(segmentationNode, outputLabelmapVolumeNode, referenceVolumeNode)
slicer.util.saveNode(outputLabelmapVolumeNode, output_file_name)
import os
import slicer # type: ignore
stl_path = r"D:\Tagging\696\stl"
image_path = r"D:\Tagging\696"
out_path = r"D:\Tagging\696\nii"
patients = os.listdir(stl_path)
reference_volume_path = os.path.join(image_path, "test.nii.gz")
num = 1
for patient in patients:
    patient_path = os.path.join(stl_path, patient)
    stl_file_name = os.path.join(stl_path, patient)
    output_file_name = os.path.join(out_path, str(num) + ".nii.gz")
    segmentationNode = slicer.util.loadSegmentation(stl_file_name)
    referenceVolumeNode = slicer.util.loadVolume(reference_volume_path)
    outputLabelmapVolumeNode = slicer.mrmlScene.AddNewNodeByClass('vtkMRMLLabelMapVolumeNode')
    slicer.modules.segmentations.logic().ExportVisibleSegmentsToLabelmapNode(segmentationNode, outputLabelmapVolumeNode,
                                                                                referenceVolumeNode)
    slicer.util.saveNode(outputLabelmapVolumeNode, output_file_name)
    slicer.mrmlScene.Clear(0)
    num+=1
posted on 2024-08-30 15:36  大海z16  阅读(386)  评论(0)    收藏  举报