Difference between revisions of "2016 Winter Project Week/Projects/SegmentationEditorWidget"

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(7 intermediate revisions by one other user not shown)
Line 3: Line 3:
 
Image:PW-MIT2016.png|link=2016_Winter_Project_Week#Projects|[[2016_Winter_Project_Week#Projects|Projects List]]
 
Image:PW-MIT2016.png|link=2016_Winter_Project_Week#Projects|[[2016_Winter_Project_Week#Projects|Projects List]]
 
<!-- Use the "Upload file" link on the left and then add a line to this list like "File:MyAlgorithmScreenshot.png" -->
 
<!-- Use the "Upload file" link on the left and then add a line to this list like "File:MyAlgorithmScreenshot.png" -->
 +
Image:SegmentationsModuleUI_v01.png
 +
Image:ContourRepresentations_201507.png
 +
Image:20160105_SegmentationEditor_Terminology.png
 +
Image:20160108_SegmentEditor.png
 
</gallery>
 
</gallery>
  
 
==Key Investigators==
 
==Key Investigators==
 
<!-- Add a bulleted list of investigators and their institutions here -->
 
<!-- Add a bulleted list of investigators and their institutions here -->
 +
* Csaba Pinter, Queen's
 +
* Andras Lasso, Queen's
 +
* Andrey Fedorov, BWH
 +
* Steve Pieper, Isomics
  
 
==Project Description==
 
==Project Description==
Line 16: Line 24:
 
|
 
|
 
<!-- Objective bullet points -->
 
<!-- Objective bullet points -->
*
+
* Create reusable widget that provides Editor functionality to create segments in [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Segmentations Segmentation] nodes
 
|
 
|
 
<!-- Approach and Plan bullet points -->
 
<!-- Approach and Plan bullet points -->
*  
+
* Use existing [https://github.com/SlicerRt/SlicerRT/blob/master/Segmentations/Widgets/qMRMLSegmentSelectorWidget.h segment selector widget] instead of per-structure box to select segment in a segmentation
 +
* Provide adaptor to use existing python Editor effects
 +
* Drawn shapes are stored in binary labelmap representation ("C" in representations image above) in the selected segment.<br>It can be then converted manually or automatically to other representations.
 
|
 
|
 
<!-- Progress and Next steps bullet points (fill out at the end of project week -->
 
<!-- Progress and Next steps bullet points (fill out at the end of project week -->
*
+
* C++ Qt widget using SegmentTable created
 +
** New mode for editor with single selection and only name and color shown
 +
* Decision made to re-implement Editor effects
 +
** Conceptual differences
 +
*** Master volume is not absolutely necessary for segmentations (only a volume geometry)
 +
*** Preferably create one effect object for each effect, not one for each slice view
 +
*** PaintOver function is a big conceptual difference that would necessitate using tricks
 +
** Python adaptor is not less complex than re-implementation
 +
** Possibility of a nicer user interface
 +
** Redundant effects (MakeModelEffect)
 +
** Redundant effect parameters (color for morphology)
 +
* Progress made with implementing paint effect, but no working prototype yet
 
|}
 
|}
  
 
==Background and References==
 
==Background and References==
 
<!-- Use this space for information that may help people better understand your project, like links to papers, source code, or data -->
 
<!-- Use this space for information that may help people better understand your project, like links to papers, source code, or data -->
 +
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Segmentations Segmentations module page]
 +
* [https://www.slicer.org/wiki/Documentation/Labs/Segmentations Segmentations Labs page] containing information about design and implementation
 +
* Code
 +
** [https://github.com/SlicerRt/SlicerRT/tree/master/SegmentationCore SegmentationCore] containing pure VTK storage and algorithmic classes
 +
** [https://github.com/SlicerRt/SlicerRT/tree/master/Segmentations Segmentations module] containing module widget, logic, MRML nodes, displayable manager, widgets, etc.

Latest revision as of 17:44, 10 July 2017

Home < 2016 Winter Project Week < Projects < SegmentationEditorWidget

Key Investigators

  • Csaba Pinter, Queen's
  • Andras Lasso, Queen's
  • Andrey Fedorov, BWH
  • Steve Pieper, Isomics

Project Description

Objective Approach and Plan Progress and Next Steps
  • Create reusable widget that provides Editor functionality to create segments in Segmentation nodes
  • Use existing segment selector widget instead of per-structure box to select segment in a segmentation
  • Provide adaptor to use existing python Editor effects
  • Drawn shapes are stored in binary labelmap representation ("C" in representations image above) in the selected segment.
    It can be then converted manually or automatically to other representations.
  • C++ Qt widget using SegmentTable created
    • New mode for editor with single selection and only name and color shown
  • Decision made to re-implement Editor effects
    • Conceptual differences
      • Master volume is not absolutely necessary for segmentations (only a volume geometry)
      • Preferably create one effect object for each effect, not one for each slice view
      • PaintOver function is a big conceptual difference that would necessitate using tricks
    • Python adaptor is not less complex than re-implementation
    • Possibility of a nicer user interface
    • Redundant effects (MakeModelEffect)
    • Redundant effect parameters (color for morphology)
  • Progress made with implementing paint effect, but no working prototype yet

Background and References