From c4fe6c54c0b3269ba24a46f7d72967d5d132c976 Mon Sep 17 00:00:00 2001 From: Kyle Sunderland Date: Tue, 18 Aug 2020 14:57:38 -0400 Subject: [PATCH] BUG: Utilize reference geometry in BatchStructureSetConversion The reference geometry was not applied to the segmentation node when performing BatchStructureSetConversion. Reference volume is now correctly passed by to ConvertStructureSetToLabelmap, and SetReferenceImageGeometryParameterFromVolumeNode is called on the segmentation to ensure that the ClosedSurface->Binary Labelmap conversion is performed using the reference geometry. --- BatchProcessing/BatchStructureSetConversion.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BatchProcessing/BatchStructureSetConversion.py b/BatchProcessing/BatchStructureSetConversion.py index f70ff09f9..c26aadf60 100644 --- a/BatchProcessing/BatchStructureSetConversion.py +++ b/BatchProcessing/BatchStructureSetConversion.py @@ -98,6 +98,10 @@ def ConvertStructureSetToLabelmap(self, use_ref_image, ref_image_node_id=None): logging.error('No reference volume found for segmentation ' + segmentationNode.GetName()) continue + # Use reference image for closed surface to binary labelmap conversion + if use_ref_image: + segmentationNode.SetReferenceImageGeometryParameterFromVolumeNode(referenceVolume) + # Perform conversion if not segmentationNode.CreateBinaryLabelmapRepresentation(): logging.error('Failed to create binary labelmap representation for segmentation ' + segmentationNode.GetName()) @@ -310,7 +314,7 @@ def main(argv): def save_rtslices(output_dir, use_ref_image, ref_image_node_id=None): # package the saving code into a subfunction logging.info("Convert loaded structure set to labelmap volumes") - labelmaps = logic.ConvertStructureSetToLabelmap(use_ref_image, ref_image_node_id=None) + labelmaps = logic.ConvertStructureSetToLabelmap(use_ref_image, ref_image_node_id) logging.info("Save labelmaps to directory " + output_dir) logic.SaveLabelmaps(labelmaps, output_dir)