From Slicer Wiki
Revision as of 20:27, 24 August 2016 by Pinter (talk | contribs)
Jump to: navigation, search
Home < Documentation < Nightly < Modules < Segmentations

For the stable Slicer documentation, visit the 4.10 page.

Introduction and Acknowledgements

This work is part of the SparKit project, funded by An Applied Cancer Research Unit of Cancer Care Ontario with funds provided by the Ministry of Health and Long-Term Care and the Ontario Consortium for Adaptive Interventions in Radiation Oncology (OCAIRO) to provide free, open-source toolset for radiotherapy and related image-guided interventions.
Author: Csaba Pinter (PerkLab, Queen's University)
Contact: Csaba Pinter, <email></email>

Cancer Care Ontario  
Software Platform and Adaptive Radiotherapy Kit  
Ontario Consortium for Adaptive Interventions in Radiation Oncology  

Module Description

The Segmentations module manages segmentations. Each segmentation can contain multiple segments, which correspond to one structure or ROI. Each segment can contain multiple data representations for the same structure, and the module supports automatic conversion between these representations (the default ones are: planar contour, binary labelmap, closed surface model), as well as advanced display settings and import/export features.

Motivation, features, and details of the infrastructure are explained in these slides.
Note: It is important to remember that segmentations are not labelmaps, i.e. they are not one 3D volume containing color indices in a color table. There is a legacy labelmap support that temporarilymerges the segments into an old-school labelmap, but that feature will be removed, and under the hood the segmentation node is structured as explained above.

Use Cases

  • 3D printing: Convert labelmaps to surface models and export them to STL
  • Contour analysis: Convert RT planar contours to labelmap for per-voxel analysis
  • Nice and flexible visualization: Show any structure as 3D surface, and line intersections in 2D views; Show surface and labelmap simultaneously
  • Organize segmented structures: Each segmentation contains multiple "segments"
Segmentation node containing and managing multiple structures (called segments - the columns in the figure) in multiple representations (rows)
Segmentations module UI


  • Coming soon...

How to

Create segmentation from scratch
Select 'Create new Segmentation' or 'Create new Segmentation as...' in the Current segmentation drop-down box at the top of the Segmentations module
Create segment from labelmap volume or model
Expand Copy/mode segment (import/export) section at the bottom of the Segmentations module (it is collapsed by default)
Select labelmap volume or model in the list on the right
Click on '<+' button to import the selected object as a segment to the currently selected segmentation (multiple segments in case of multi-label labelmap)
Export labelmap or surface model representation from a segment (for editing, saving to STL, etc).
Make sure the representation to export is present. If there is no green tick icon next to binary labelmap (if exporting to labelmap) or closed surface (if exporting to model), then click on the Create 'Default' button in the row of desired representation
Expand Copy/mode segment (import/export) section at the bottom of the Segmentations module (it is collapsed by default)
Select segment to export (multiple segments can be exported to labelmap, but note that if they overlap then the alphabetical order of the segments determine which one is exported)
Select representation node (labelmap or model) to export the segment to. New node can be conveniently created by the two small buttons next to the node selector box.
Export segment(s) by clicking '>' or '+>' buttons. Move button ('>') will remove the segment from the segmentation while the copy button ('+>') will not.
Edit an existing contour
See page via link above - TODO: Update after integrated to core with new Editor

Panels and their use

  • TODO

Similar Modules

This module and infrastructure is a successor of the Contours module and mechanism, which was the first implementation for this task, but its design was overgrewn by the new features and needs, and became inconvenient and unstable. Further information about the Segmentation effort on the related Assembla ticket and wiki page, and the links pointing from these pages.


  • wiki page
  • Past references
    • Issue for Segmentations (complete Contours overhaul, delivery June 2015) here
    • Issue for original Contours effort on SlicerRT Assembla ticketing system here

Information for Developers


The closed surface generated from the RTSS contour points is flawed
TODO (report issue, ribbon workaround)