Difference between revisions of "Documentation/Nightly/Modules/Segmentations"
m |
|||
Line 50: | Line 50: | ||
; Create segment from labelmap volume or model | ; Create segment from labelmap volume or model | ||
− | : Expand Copy/ | + | : Expand Copy/move 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 | : 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) | : Click on '<+' button to import the selected object as a segment to the currently selected segmentation (multiple segments in case of multi-label labelmap) | ||
Line 56: | Line 56: | ||
; Export labelmap or surface model representation from a segment (for editing, saving to STL, etc). | ; 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 | : 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/ | + | : Expand Copy/move 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 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. | : 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. | : Export segment(s) by clicking '>' or '+>' buttons. Move button ('>') will remove the segment from the segmentation while the copy button ('+>') will not. | ||
− | ;[ | + | ; Create new representation in segmentation (conversion) |
− | + | : The supported representations are listed as rows in the Representations section. The already existing representations have a green tick, the master representation (that is the source of all conversions and the representation that can be edited) a gold star | |
+ | : To create a representation that is missing, click on the Create button in its row. If custom conversion path or parameters are to be used (reference grid for labelmaps, smoothing for surfaces, etc.), long-press the button and choose "Advanced create...". In the appearing window the available conversion paths are listed in a list, ordered by estimated time cost. After selecting the desired path, the involved parameters are listed in the bottom section of the window | ||
+ | : To re-convert an existing representation (to use different conversion path or parameters), click the Update buitton in their row | ||
+ | |||
+ | ; Change display mode of segments | ||
+ | : By long-pressing the eye icon in the segments table the display options are shown and the different display modes can be turned on or off | ||
+ | |||
+ | ; Managing segmentations in python | ||
+ | : See [https://www.slicer.org/slicerWiki/index.php?title=Documentation/Nightly/ScriptRepository&action=submit#Segmentations Segmentations section] in the script in repository | ||
<!-- ---------------------------- --> | <!-- ---------------------------- --> | ||
{{documentation/{{documentation/version}}/module-section|Panels and their use}} | {{documentation/{{documentation/version}}/module-section|Panels and their use}} | ||
− | * | + | * Segments table |
+ | ** Add/remove segments | ||
+ | ** Edit selected: takes user to Segment Editor module | ||
+ | ** Set visibility and per-segment display settings, opacity, color, segment name | ||
+ | * Display | ||
+ | ** Segmentations-wide display settings (not per-segment!): visibility, opacity (will be multiplied with per-segment opacity for display) | ||
+ | ** Views: Individual views to show the active segmentation in | ||
+ | ** Slice intersection thickness | ||
+ | ** Representation in 3D/2D views: The representation to be shown in the 3D and 2D views. Useful if there are multiple representations available, for example if we want to show the closed surface in the 3D view but the labelmap in the slice views | ||
+ | * Representations | ||
+ | ** List of supported representations and related operations | ||
+ | ** The already existing representations have a green tick, the master representation (that is the source of all conversions and the representation that can be edited) a gold star | ||
+ | ** The buttons in each row can be used to create, remove, update a representation | ||
+ | *** Advanced conversion is possible (to use the non-default path or conversion parameters) by long-pressing the Create or Update button | ||
+ | *** Existing representations can be made master by clicking Make master. The master representation is used as source for conversions, it is the one that can be edited, and saved to disk | ||
+ | * Copy/move (import/export) | ||
+ | ** Left panel lists the segments in the active segmentation | ||
+ | ** Right panel shows the external data container | ||
+ | ** The arrow buttons van be used to copy (with plus sign) or move (no plus sign) segments between the segmentation and the external node | ||
+ | ** New labelmap or model can be created by clicking the appropriate button on the top of the right panel | ||
+ | ** Multiple segments can be exported into a labelmap. In case of overlapping segments, the subsequent segments will overwrite the previous ones! | ||
<!-- | <!-- | ||
Line 89: | Line 117: | ||
<!-- ---------------------------- --> | <!-- ---------------------------- --> | ||
=FAQ= | =FAQ= | ||
− | ; The closed surface generated from the | + | ; The closed surface generated from the RT Structure Set contour points is flawed |
− | : | + | : Please [[Documentation/SlicerRT/HowToReportAnError|report]] the issue first so that we can fix the conversion. |
+ | : Use advanced conversion and choose a path through Ribbon model representation. SlicerRT extension needs to be installed for this. | ||
Revision as of 21:03, 24 August 2016
Home < Documentation < Nightly < Modules < Segmentations
For the latest Slicer documentation, visit the read-the-docs. |
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. | |||||||
|
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"
Tutorials
- 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/move 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/move 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.
- Create new representation in segmentation (conversion)
- The supported representations are listed as rows in the Representations section. The already existing representations have a green tick, the master representation (that is the source of all conversions and the representation that can be edited) a gold star
- To create a representation that is missing, click on the Create button in its row. If custom conversion path or parameters are to be used (reference grid for labelmaps, smoothing for surfaces, etc.), long-press the button and choose "Advanced create...". In the appearing window the available conversion paths are listed in a list, ordered by estimated time cost. After selecting the desired path, the involved parameters are listed in the bottom section of the window
- To re-convert an existing representation (to use different conversion path or parameters), click the Update buitton in their row
- Change display mode of segments
- By long-pressing the eye icon in the segments table the display options are shown and the different display modes can be turned on or off
- Managing segmentations in python
- See Segmentations section in the script in repository
Panels and their use
- Segments table
- Add/remove segments
- Edit selected: takes user to Segment Editor module
- Set visibility and per-segment display settings, opacity, color, segment name
- Display
- Segmentations-wide display settings (not per-segment!): visibility, opacity (will be multiplied with per-segment opacity for display)
- Views: Individual views to show the active segmentation in
- Slice intersection thickness
- Representation in 3D/2D views: The representation to be shown in the 3D and 2D views. Useful if there are multiple representations available, for example if we want to show the closed surface in the 3D view but the labelmap in the slice views
- Representations
- List of supported representations and related operations
- The already existing representations have a green tick, the master representation (that is the source of all conversions and the representation that can be edited) a gold star
- The buttons in each row can be used to create, remove, update a representation
- Advanced conversion is possible (to use the non-default path or conversion parameters) by long-pressing the Create or Update button
- Existing representations can be made master by clicking Make master. The master representation is used as source for conversions, it is the one that can be edited, and saved to disk
- Copy/move (import/export)
- Left panel lists the segments in the active segmentation
- Right panel shows the external data container
- The arrow buttons van be used to copy (with plus sign) or move (no plus sign) segments between the segmentation and the external node
- New labelmap or model can be created by clicking the appropriate button on the top of the right panel
- Multiple segments can be exported into a labelmap. In case of overlapping segments, the subsequent segments will overwrite the previous ones!
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.
References
- wiki page
- Past references
Information for Developers
FAQ
- The closed surface generated from the RT Structure Set contour points is flawed
- Please report the issue first so that we can fix the conversion.
- Use advanced conversion and choose a path through Ribbon model representation. SlicerRT extension needs to be installed for this.