Difference between revisions of "Modules:Editor-Documentation-3.6"

From Slicer Wiki
Jump to: navigation, search
m (Text replacement - "https?:\/\/(?:www|wiki)\.slicer\.org\/slicerWiki\/index\.php\/([^ ]+) " to "https://www.slicer.org/wiki/$1 ")
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
http://www.slicer.org/slicerWiki/index.php/Modules:Editor-Documentation
+
https://www.slicer.org/wiki/Modules:Editor-Documentation [[Documentation-3.6|Return to Slicer 3.6 Documentation]]
 
 
[[Documentation-3.6|Return to Slicer 3.6 Documentation]]
 
  
 
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]
 
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]
Line 11: Line 9:
 
{|
 
{|
 
|[[Image:Editor3.6-interface.png|thumb|280px|User Interface]]
 
|[[Image:Editor3.6-interface.png|thumb|280px|User Interface]]
|[[Image:screenshotBlank.png|thumb|280px|Output]]
+
|[[Image:Slicer3.6-Editor-2010-05-06.png|thumb|500px|Output]]
|[[Image:screenshotBlank.png|thumb|280px|Caption]]
 
 
|}
 
|}
  
Line 29: Line 26:
  
 
===Module Description===
 
===Module Description===
This is a module for manual segmentation of volumes.  Some of the tools mimic a painting interface like photoshop or gimp, but work on 3D arrays of voxels rather than on 2D pixels.  The overall goal is to allow users to efficiently and precisely define structures within their volumes as label map volumes.  These label maps can be used for building models, or further processing (using, for example, the [[Modules:LabelStatistics-Documentation-3.6|Label Statistics]] module).
+
This is a module for manual segmentation of volumes.  Some of the tools mimic a painting interface like photoshop or gimp, but work on 3D arrays of voxels rather than on 2D pixels.   
  
 
== Usage ==
 
== Usage ==
  
 
===Use Cases, Examples===
 
===Use Cases, Examples===
 +
 +
The overall goal is to allow users to efficiently and precisely define structures within their volumes as label map volumes.  These label maps can be used for building models, or further processing (using, for example, the [[Modules:LabelStatistics-Documentation-3.6|Label Statistics]] module).
 +
 +
The label maps can either be defined from within the Editor module itself, or you can use the output of other modules and the basis for editing.
 +
 +
===Tutorials===
 +
Tutorials are in preparation for version 3.6.  For earlier versions, see the [[Training|Training page]].
 +
 +
===Quick Tour of Features and Use===
  
 
==== Single Label Map ====
 
==== Single Label Map ====
  
[[image:Slicer3.6-Editor-ColorTableSelect-2010-05-06.png|100px|right|Color Table Dialog]]
+
[[image:Slicer3.6-Editor-ColorTableSelect-2010-05-06.png|200px|right|Color Table Dialog]]
 
A typical straightforward Editor workflow for consists of the following steps:
 
A typical straightforward Editor workflow for consists of the following steps:
  
Line 43: Line 49:
 
* Enter the Editor module using either the [[Modules:MainApplicationGUI-Documentation-3.6#Application_Toolbar|toolbar]] or the Modules menu button.
 
* Enter the Editor module using either the [[Modules:MainApplicationGUI-Documentation-3.6#Application_Toolbar|toolbar]] or the Modules menu button.
 
* You will be prompted to select a color table to use for editing (see Color Table Dialog image).
 
* You will be prompted to select a color table to use for editing (see Color Table Dialog image).
 +
** Pick a color node that contains the structures you wish to create.  If there are no appropriate tables available, you can create custom nodes in the [[Modules:Colors-Documentation-3.6|Colors Module]].
 +
** Clicking apply in the Color Table Dialog will create a new label map volume based on the background volume in the Red slice view at the time you entered the Editor.  It will be the same dimensions, orientation, and spacing as the background volume.  But it will be initialize to all zeros and it will have the 'Label Map' property set.  (You can look at these in the "Info" tab of the [[Modules:Volumes-Documentation-3.6|Volumes Module]].
 +
** If your background was named 't1' the label will be called 't1-label'.
 +
** Note that if you already have a label map volume as the result of a previous editing step it will be automatically selected when you enter the Editor (i.e. after using the [[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching]] or other [[Documentation-3.6#Segmentation|Segmentation Modules]] you will be set up to perform manual edits of the selected label map).  You can use the Set option to pick this label map instead of the default.
 +
** Note that the background and label map settings in the Red slice viewer are used to determine the volumes to edit.  In the Editor Module the background grayscale volume is known as the "Master Volume" because it is used as input to tools such as Threshold Paint.  The map is known as the "Merge Volume" because it contains multiple structures (see below for information about splitting and re-merging the Merge Volume to edit individual structures).
 +
* When label map volume is selected, the edit tools frame will automatically expand and you can use the Editor Effects to define your structures.
  
 +
==== Per-Structure Volumes ====
 +
(Please familiarize yourself with the Single Label Map approach before attempting to use the Multiple Label Map tools.)
  
 +
This approach can be used to independently work with a single structure using tools like the Threshold effect that operate on the entire volume.  To access this functionality, open the Per-Structure Volumes interface by clicking on the downward pointing triangle on the right side of the box.
  
==== Multiple Structures in Multiple Label Maps ====
+
* Start with a Merge Volume that will contain all the structures of interest.
 
+
** If you have already started defining the individual structures with different label values in the editor, or if you used something like [[Modules:OtsuThresholdSegmentation-Documentation-3.6|Otsu Segmentation]] to generate a label map, then you can use the Split Merge Volume button to create a new volume for each unique label value in the Merge Volume.
===Tutorials===
+
** If you are starting from scratch, you can use the Add Structure button to define new label volumes. 
 
+
*** Add Structure will prompt you for a label value based on the Color Table selected when the Merge Volume was created.
Links to tutorials explaining how to use this module:
+
*** The new Structure Volume will be selected for editing.
 +
* You can click in the Per-Structure Volumes list box to select the current label map for editing (so that you can easily toggle between the Structure Volumes).
 +
* After defining the individual structures, you can use the Merge All button to put the volumes back into the Merge Volume.
 +
* Use Merge And Build to create a set of modules from the merged volume.
 +
** This uses the Joint Smoothing option of the [[Modules:ModelMaker-Documentation-3.6|Model Maker Module]] to create watertight models.
 +
** ''Hint: you can use the Model Maker module to manipulate other building parameters.''
 +
* The Delete Structures button will remove the Per-Structure Volumes from your scene.  If you want to delete a single volume, use the [[Modules:Data-Documentation-3.6|Data Module]].
  
* Tutorial 1
+
== Using the Editor Effects ==
** Data Set 1
 
  
===Quick Tour of Features and Use===
+
The individual tools in the editor are described on their own [[Modules:Editor-Documentation|Editor Documentation]] page.
 
 
A list panels in the interface, their features, what they mean, and how to use them. For instance:
 
 
 
{|
 
|
 
* '''Input panel:'''
 
** '''First input'''
 
** '''Second input'''
 
* '''Parameters panel:'''
 
** '''First parameter'''
 
** '''Second parameter'''
 
* '''Output panel:'''
 
** '''First output'''
 
** '''Second output'''
 
* '''Viewing panel:'''
 
|[[Image:screenshotBlankNotOptional.png|thumb|280px|User Interface]]
 
|}
 
  
 
== Development ==
 
== Development ==
Line 78: Line 81:
 
===Notes from the Developer(s)===
 
===Notes from the Developer(s)===
  
Algorithms used, library classes depended upon, use cases, etc.
+
The code makes extensive use of object oriented scripting (based on the [http://en.wikipedia.org/wiki/Incr_Tcl incrTcl] language) calling algorithms implemented in C++ using either VTK or ITK.  The developer found this to be an extremely powerful and effective implementation approach, although many people may find it unfamiliar.
  
 
===Dependencies===
 
===Dependencies===
  
Other modules or packages that are required for this module's use.
+
None
  
 
===Tests===
 
===Tests===
Line 88: Line 91:
 
On the [http://www.cdash.org/CDash/index.php?project=Slicer3 Dashboard], these tests verify that the module is working on various platforms:
 
On the [http://www.cdash.org/CDash/index.php?project=Slicer3 Dashboard], these tests verify that the module is working on various platforms:
  
* MyModuleTest1 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest1.cxx]
+
http://viewvc.slicer.org/viewcvs.cgi/branches/Slicer-3-6/Modules/Editor/Testing/
* MyModuleTest2 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest2.cxx]
 
  
 
===Known bugs===
 
===Known bugs===
  
Links to known bugs in the Slicer3 bug tracker
+
Search for Editor in the [http://www.na-mic.org/Bug/view.php|Slicer3 bug tracker].  No major bugs known at the time of this writing.
 
 
* [http://www.na-mic.org/Bug/view.php?id=000 Bug 000: description]  
 
 
 
  
 
===Usability issues===
 
===Usability issues===
Line 107: Line 106:
  
 
Source code:
 
Source code:
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.cxx ]
+
* http://viewvc.slicer.org/viewcvs.cgi/branches/Slicer-3-6/Modules/Editor/?rev=13274#dirlist
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.h ]
 
 
   
 
   
 
Doxygen documentation:
 
Doxygen documentation:
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classes.html class1]
+
* Not available for incrTcl classes. Refer to documentation in the source code linked above.
  
 
== More Information ==  
 
== More Information ==  
  
 
===Acknowledgment===
 
===Acknowledgment===
Include funding and other support here.
+
 
 +
This work is supported by NA-MIC, NAC, BIRN, NCIGT, and the Slicer Community. See http://www.slicer.org for details.  Module implemented by Steve Pieper.
  
 
===References===
 
===References===
Publications related to this module go here. Links to pdfs would be useful.
+
None.

Latest revision as of 13:18, 27 November 2019

Home < Modules:Editor-Documentation-3.6

https://www.slicer.org/wiki/Modules:Editor-Documentation Return to Slicer 3.6 Documentation

Gallery of New Features


Module Name

MyModule

User Interface
Output

General Information

Module Type & Category

Type: Interactive Scripted

Category: Base

Authors, Collaborators & Contact

  • Developer: Steve Pieper: Isomics, Inc.
  • Patron: Ron Kikinis: BWH
  • Designer: Wendy Plesniak
  • Contact: Steve Pieper, pieper at bwh dot harvard dot edu

Module Description

This is a module for manual segmentation of volumes. Some of the tools mimic a painting interface like photoshop or gimp, but work on 3D arrays of voxels rather than on 2D pixels.

Usage

Use Cases, Examples

The overall goal is to allow users to efficiently and precisely define structures within their volumes as label map volumes. These label maps can be used for building models, or further processing (using, for example, the Label Statistics module).

The label maps can either be defined from within the Editor module itself, or you can use the output of other modules and the basis for editing.

Tutorials

Tutorials are in preparation for version 3.6. For earlier versions, see the Training page.

Quick Tour of Features and Use

Single Label Map

Color Table Dialog

A typical straightforward Editor workflow for consists of the following steps:

  • Load a volume using File->Add Volume interface.
  • Enter the Editor module using either the toolbar or the Modules menu button.
  • You will be prompted to select a color table to use for editing (see Color Table Dialog image).
    • Pick a color node that contains the structures you wish to create. If there are no appropriate tables available, you can create custom nodes in the Colors Module.
    • Clicking apply in the Color Table Dialog will create a new label map volume based on the background volume in the Red slice view at the time you entered the Editor. It will be the same dimensions, orientation, and spacing as the background volume. But it will be initialize to all zeros and it will have the 'Label Map' property set. (You can look at these in the "Info" tab of the Volumes Module.
    • If your background was named 't1' the label will be called 't1-label'.
    • Note that if you already have a label map volume as the result of a previous editing step it will be automatically selected when you enter the Editor (i.e. after using the Fast Marching or other Segmentation Modules you will be set up to perform manual edits of the selected label map). You can use the Set option to pick this label map instead of the default.
    • Note that the background and label map settings in the Red slice viewer are used to determine the volumes to edit. In the Editor Module the background grayscale volume is known as the "Master Volume" because it is used as input to tools such as Threshold Paint. The map is known as the "Merge Volume" because it contains multiple structures (see below for information about splitting and re-merging the Merge Volume to edit individual structures).
  • When label map volume is selected, the edit tools frame will automatically expand and you can use the Editor Effects to define your structures.

Per-Structure Volumes

(Please familiarize yourself with the Single Label Map approach before attempting to use the Multiple Label Map tools.)

This approach can be used to independently work with a single structure using tools like the Threshold effect that operate on the entire volume. To access this functionality, open the Per-Structure Volumes interface by clicking on the downward pointing triangle on the right side of the box.

  • Start with a Merge Volume that will contain all the structures of interest.
    • If you have already started defining the individual structures with different label values in the editor, or if you used something like Otsu Segmentation to generate a label map, then you can use the Split Merge Volume button to create a new volume for each unique label value in the Merge Volume.
    • If you are starting from scratch, you can use the Add Structure button to define new label volumes.
      • Add Structure will prompt you for a label value based on the Color Table selected when the Merge Volume was created.
      • The new Structure Volume will be selected for editing.
  • You can click in the Per-Structure Volumes list box to select the current label map for editing (so that you can easily toggle between the Structure Volumes).
  • After defining the individual structures, you can use the Merge All button to put the volumes back into the Merge Volume.
  • Use Merge And Build to create a set of modules from the merged volume.
    • This uses the Joint Smoothing option of the Model Maker Module to create watertight models.
    • Hint: you can use the Model Maker module to manipulate other building parameters.
  • The Delete Structures button will remove the Per-Structure Volumes from your scene. If you want to delete a single volume, use the Data Module.

Using the Editor Effects

The individual tools in the editor are described on their own Editor Documentation page.

Development

Notes from the Developer(s)

The code makes extensive use of object oriented scripting (based on the incrTcl language) calling algorithms implemented in C++ using either VTK or ITK. The developer found this to be an extremely powerful and effective implementation approach, although many people may find it unfamiliar.

Dependencies

None

Tests

On the Dashboard, these tests verify that the module is working on various platforms:

http://viewvc.slicer.org/viewcvs.cgi/branches/Slicer-3-6/Modules/Editor/Testing/

Known bugs

Search for Editor in the bug tracker. No major bugs known at the time of this writing.

Usability issues

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Links to the module's source code:

Source code:

Doxygen documentation:

  • Not available for incrTcl classes. Refer to documentation in the source code linked above.

More Information

Acknowledgment

This work is supported by NA-MIC, NAC, BIRN, NCIGT, and the Slicer Community. See http://www.slicer.org for details. Module implemented by Steve Pieper.

References

None.