https://www.slicer.org/w/api.php?action=feedcontributions&user=Hillarylia&feedformat=atomSlicer Wiki - User contributions [en]2024-03-29T13:09:06ZUser contributionsMediaWiki 1.33.0https://www.slicer.org/w/index.php?title=Documentation/Nightly/2016-User-Manual-Discussion&diff=46560Documentation/Nightly/2016-User-Manual-Discussion2016-07-19T17:22:26Z<p>Hillarylia: Updated some missing links. More changes coming.</p>
<hr />
<div>__NOTOC__<br />
{| border="0" align="center" width="100%" valign="top" cellspacing="7" cellpadding="2"<br />
|-<br />
! width="50%"|<br />
! |<br />
! width="50%"|<br />
|- <br />
|valign="top"|<br />
----<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">3D Slicer</span><br />
----<br />
* Analysis and visualization of medical images<br />
* Image guided therapy research, device interfaces.<br />
* Extensible, free, open source. See [[Link to License|here]] for the license<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
----<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">Highlights</span><br />
----<br />
* Designed for biomedical research<br />
* Multi organ capability: from head to toe.<br />
* Multi-modality imaging: MRI, CT, US, nuclear medicine, and microscopy.<br />
|}<br />
<br />
{| border="0" align="center" width="100%" valign="top" cellspacing="7" cellpadding="2"<br />
|-<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
|- <br />
|valign="top"|<br />
----<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">Where to start ?</span><br />
----<br />
* [[ New_users|Getting started]]<br />
* [[ Documentation/4.5/Training|Self-training]]<br />
* [[FAQ|Frequently asked questions]]<br />
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-users Mailing list for users of 3D Slicer] / [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-users Sign-up] <br> [http://slicer-users.65878.n3.nabble.com/ Search the mailing list archives]<br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.5/Report_a_problem Report a problem or request a feature (edit that page accordingly, aimed at end users, not developers)]<br />
----<br />
----<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">The Basics</span><br />
----<br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.5/SlicerApplication/Installation Installation]<br />
* A [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.5/SlicerApplication/MainApplicationGUI tour through the main window of 3D Slicer]<br />
* [[Link to the proper page| Layouts and viewers]]<br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.5/SlicerApplication/MouseandKeyboardShortcuts Mouse Buttons, "Hot-keys" and Keyboard Shortcuts]<br />
* Where to modify [[settings]] and where they are [[stored]] (refers to the Edit/Appplication Settings pop up panel)<br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.5/SlicerApplication/HardwareConfiguration Hardware requirements]<br />
* [[Link to portal page about loading data|Loading]], [[Saving data]] and [[listing of supported data formats]].<br />
<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
----<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">Core Functions</span><br />
----<br />
<br />
{| class="wikitable"<br />
| <br />
| Data IO and Organization<br />
|-<br />
| [[Image:2016-07-03-Interactive-Editor-Icon.png|60 px| link=Link to Editor module |Interactive segmentation]] <br />
| Interactive and Automated Segmentation<br />
|-<br />
| [[Image:2016-07-03-Transforms-Module-Icon.png|60 px| Link= Link to Transforms module |Interactive]]<br />
| Interactive and Automated Registration<br />
|-<br />
| [[Image:SlicerRegistrationLibrary_Ad.png|80px|link=[[Documentation/{{documentation/version}}/Registration/RegistrationLibrary]]]]<br />
| Registration library<br />
|-<br />
| [[Image:2016-07-03-Volume-Rendering-Icon.png|60 px| Link= Link to Volume rendering module | Volume rendering]] <br />
| Volume rendering<br />
|-<br />
| [[Link to the fiducials page | Fiducials]] and [[link to the linear measurements page| Linear Measurements]]<br />
| Measurements and Quantification<br />
|}<br />
<br />
----<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">Advanced Topics</span><br />
----<br />
* [[Link to the proper page | Interactive tractography of diffusion MRI data]] <br />
* [[Link to the proper page | Slicer IGT]] <br />
* [[Link to the proper page | Slicer RT]] <br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
----<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">Miscellaneous</span><br />
----<br />
* [[Documentation/Nightly/Developers | Information for Software Developers]]<br />
* [[Slicer4:VisualBlog|Visual blog: A set of screenshots showing Slicer in action.]]<br />
* [[Documentation/{{documentation/version}}/ReleaseNotes|Release Notes: Platform specific issues and considerations]]<br />
* [[Documentation/{{documentation/version}}/Announcements|Announcements]] & [http://www.slicer.org/pages/Acknowledgments#Acknowledgments_Slicer_4 Acknowledgments]<br />
* Slicer Lookup Tables<br />
* Setting up and using stereoscopic viewing<br />
* QtTesting - Easy way to record and play macros<br />
<br />
<br />
<br />
----<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">Documentation in other languages </span><br />
----<br />
* [[Link to the appropriate language page | Español]]<br />
<br />
|}<br />
* [[search box right here|Search for a module in this version of Slicer (including extensions)]]<br />
* Listing in two columns:<br />
** Alphabetic list of modules<br />
** Alphabetic list of extensions</div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Volumes&diff=46414Documentation/Nightly/Modules/Volumes2016-07-05T19:26:34Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}} }}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-acknowledgements}}<br />
: '''Contact:''' Steve Pieper, <email>pieper@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
*Lookup tables/Colour palettes<br />
**Information about the color nodes associated to volumes<br />
*Thresholds<br />
*View volume properties such as orientation and scalar type<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|How to Use}}<br />
*[[Documentation/{{documentation/version}}/FAQ#How_to_overlay_2_volumes.3F|How to overlay two volumes]]<br />
*[[Documentation/{{documentation/version}}/FAQ#How_to_load_data_from_a_sequence_of_jpg_files.3F|How to load data from a sequence of JPG files]] <br />
*When loading a 2D image(jpg, png, tiff ...), the window level(colors) might be skewed. To see the original colors switch the ''Window Level'' combobox to '''Manual Min/Max''', then set ''Min'' to '''0''' and ''Max'' to '''255'''.<br />
**Also use the Spacing field to enter the volumetric pixel sizes of the image data.<br />
**While you can display color volumes as slices, most slicer modules do not work natively with RGB or RGBA data, the new [http://slicer.org/doc/html/VectorToScalarVolume_8py_source.html VectorToScalarVolume] converter can be used to create a volume for use, for example, with the Editor. (added post-4.1).<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
* Tutorial about [https://www.slicer.org/slicerWiki/images/5/51/3DDataLoadingandVisualization_Slicer4.5_SoniaPujol.pdf loading and viewing data]. <br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
{|<br />
| rowspan=2 | {{documentation/{{documentation/version}}/module-parametersdescription}}<br />
| [[Image:VolumesModule-2011-11-25.png|400px]] Greyscale volume<br />
|-<br />
| [[image:VolumesModule-LabelMapDisplay-2015-05-05.png|400px]] Label map volume display<br />
|}<br />
<br />
<br />
{|<br />
|[[Image:VolumesModuleWindowLevelSliderPopup.gif|frame|On mouse over, a second popup appears under the window level double slider. Large dynamic range can be controlled using the slider. Moving the handles of the popup double slider changes the whole range of the window level double slider.]]<br />
|}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|How to}}<br />
<br />
* '''Convert scalar volume to labelmap'''<br />
:# Load it as labelmap in the first place: In the 'Add data into the scene' dialog check 'Show Options' and enable the option named 'LabelMap'. When OK is clicked, the volume is loaded as a labelmap.<br />
:# Convert to labelmap using Cast Scalar Volume module. Select scalar volume as input, and create output by selecting 'Create new LabelMapVolume [as...]'. Output type is typically UnsignedChar.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* Each displayable type has a similar visualization control interface (for example, the Models, Tractography, Annotations...):<br />
** [[Documentation/{{documentation/version}}/Modules/Models|Models]]: control the models/surfaces<br />
** [[Documentation/{{documentation/version}}/Modules/Annotations|Annotations]]: control the annotations<br />
* [[Documentation/{{documentation/version}}/Modules/VolumeRendering|Volume Rendering]]: volume render in the 3D view(s).<br />
* Extensions<br />
** [[Documentation/{{documentation/version}}/Modules/ImageMaker|Image Maker]]: create a volume from scratch.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
===How to create a volume node from scratch? ===<br />
You need to create a vtkImageData, a vtkMRMLScalarVolumeNode and a vtkMRMLScalarVolumeDisplayNode.<br />
<br />
In C++:<br />
<pre><br />
vtkNew<vtkImageData> imageData;<br />
imageData->SetDimensions(10,10,10); // image size<br />
imageData->AllocateScalars(VTK_UNSIGNED_CHAR, 1); // image type and number of components<br />
// initialize the pixels here<br />
<br />
vtkNew<vtkMRMLScalarVolumeNode> volumeNode;<br />
volumeNode->SetAndObserveImageData(imageData);<br />
volumeNode->SetOrigin( -10., -10., -10.);<br />
volumeNode->SetSpacing( 2., 2., 2. );<br />
mrmlScene->AddNode( volumeNode.GetPointer() );<br />
<br />
volumeNode->CreateDefaultDisplayNodes()<br />
</pre><br />
<br />
In Python:<br />
<pre><br />
imageData = vtk.vtkImageData()<br />
imageData.SetDimensions(10,10,10) # image size<br />
imageData.AllocateScalars(vtk.VTK_UNSIGNED_CHAR, 1) # image type and number of components<br />
# initialize the pixels here<br />
volumeNode = slicer.vtkMRMLScalarVolumeNode()<br />
volumeNode.SetAndObserveImageData(imageData)<br />
volumeNode = slicer.mrmlScene.AddNode(volumeNode)<br />
volumeNode.CreateDefaultDisplayNodes()<br />
</pre><br />
<br />
Note that the origin and spacing must be set on the volume node instead of the image data.<br />
The [[Documentation/{{documentation/version}}/Modules/ImageMaker|Image Maker]] extension module creates a volume from scratch.<br />
<br />
===IO===<br />
[[Documentation/{{documentation/version}}/SlicerApplication/SupportedDataFormat|Here]] is the list of supported file formats.<br />
<br />
Important classes:<br />
[http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/qSlicerVolumesIO.h?view=markup qSlicerVolumesIO].[h/cxx]]<br />
[http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.h?view=markup vtkSlicerVolumesLogic].[h/cxx]<br />
[http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Libs/MRML/Core/vtkMRMLVolumeArchetypeStorageNode.h?view=markup vtkMRMLVolumeArchetypeStorageNode].[h/cxx]<br />
<br />
The following options can be passed to load volumes programmatically:<br />
{|<br />
|-<br />
! Option<br />
! Type<br />
! Default<br />
! Description<br />
|-<br />
| labelmap<br />
| bool<br />
| false<br />
| Mark the volume a label map<br />
|-<br />
| center<br />
| bool<br />
| false<br />
| Discard file origin information and move the center of the volume in 0,0,0<br />
|-<br />
| singleFile<br />
| bool<br />
| false<br />
| Load the file as part of a series of 2D files that represent a 3D volume<br />
|-<br />
| autoWindowLevel<br />
| bool<br />
| true<br />
| Automatically compute the window level based on the volume pixel intensities<br />
|-<br />
| discardOrientation<br />
| bool<br />
| false<br />
| Discard file orientation information<br />
|}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SlicerWelcome&diff=46409Documentation/Nightly/Modules/SlicerWelcome2016-07-04T13:21:32Z<p>Hillarylia: /* Load Panel */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BHW), Jean-Christophe Fillion-Robin (Kitware), Steve Pieper (Isomics Inc.), Sonia Pujol (SPL, BHW)<br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Wendy Plesniak, <email>wjp@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
Slicer's '''Welcome Module''' is provided to introduce new users to Slicer's basic functionality, and to provide pointers to additional useful resources.<br />
<br />
[[image:Slicer4WelcomeModule.jpg | center]]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
Please visit the [http://www.slicer.org/slicerWiki/index.php/Slicer_4.0:Training Slicer4 training page] for more detailed training using Slicer4.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
== Load Panel ==<br />
[[image:Slicer4WelcomeLoadPanel.png | right]]<br />
This panel, which is always open, contains quick access to interfaces to:<br />
* Load DICOM datasets<br />
* Load datasets of other types (such as polygonal models)<br />
*Open the Extension Manager<br />
* Download sample datasets from the internet<br />
*Open Slicer settings<br />
<br />
== About Panel==<br />
<br />
This panel contains information about 3D Slicer, including license information.<br />
<br />
== The Main Window Panel ==<br />
<br />
In this panel, a broad overview of Slicer's Application Interface is provided. Below, an image of part of this panel's information is provided.<br />
<br />
[[image:Slicer4WelcomeMainWindow.png | centre]]<br />
<br />
== Loading and Saving Panel ==<br />
<br />
The Load & Save panel describes the MRML format, and various options for loading and saving scenes and individual datasets. Below is a vignette of the Load & Save panel.<br />
<br />
[[image:Slicer4WelcomeLoadSave.png | centre]]<br />
<br />
== Display Panel ==<br />
<br />
This panel contains information about the adjusting display of scenes and data, configuring application layout, and saving screen snapshots and scene configurations of interest. Below is a vignette of the Display panel.<br />
<br />
[[image:Slicer4WelcomeDisplay.png | centre ]]<br />
<br />
== Mouse & Keyboard Panel ==<br />
<br />
The Mouse & Keyboard panel describes the use of mouse and keyboard to perform basic interactive operations in Slicer including adjusting the display of data and manipulating the 3D scene on Windows, Mac and Linux using a one- two- and three-button mouse.<br />
<br />
[[image:Slicer4WelcomeMouse.png | center ]]<br />
<br />
== Documentation & Tutorials Panel ==<br />
<br />
This panel provides links to additional information of interest.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:Slicer4WelcomeLoadPanel.png&diff=46408File:Slicer4WelcomeLoadPanel.png2016-07-04T13:15:44Z<p>Hillarylia: Hillarylia uploaded a new version of File:Slicer4WelcomeLoadPanel.png</p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:Slicer4WelcomeModule.jpg&diff=46407File:Slicer4WelcomeModule.jpg2016-07-04T13:13:43Z<p>Hillarylia: Hillarylia uploaded a new version of File:Slicer4WelcomeModule.jpg</p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/ViewControllers&diff=46334Documentation/Nightly/Modules/ViewControllers2016-06-29T20:27:54Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
:'''Author(s)/Contributor(s):''' Jim Miller (GE), Jean-Christophe Fillion-Robin (Kitware), Wendy Plesniak (BWH), Steve Pieper (Isomics), Ron Kikinis (BWH)<br><br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/ National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Jim Miller, <email>millerjv@ge.com</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|ge}}|{{collaborator|longname|ge}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
[[Image:ViewControllers-2011-11-25.png|thumb|right|280px|View Controllers]] <br />
The View Controllers module provides access to nodes controlling multiple views within a single panel. A view is a display of data packed within layout. Slice Views and 3D Views are two types of views that can appear in a layout and whose controls can also be accessed from the View Controllers module. Each type of view has a separate section of the View Controllers panel. For example, the Slice Controllers are grouped together, followed by the 3D Controllers. An extra panel allows an alternative control over a Slice View. Note that by clicking on the pin in the upper right corner of each Slice Viewer, the same options are displayed.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Most frequently used for these scenarios:<br />
<br />
* Controlling Slice Views while maximizing the screen real estate for images with the view.<br />
* Controlling 3D Views without having to expand the controller within the view.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
[[Image:ViewControllers.png|thumb|right|280px|View Controllers]]<br />
* '''Slice Controllers:''' Slice Controllers for each of the Slice Views visible in the current layout. This is the same controller that is accessible from the bar at the top of a Slice View. It provides access to select the content (foreground, background, label) as well as control reformation, linking, visibility in the 3D view, lightbox, etc.<br />
* '''3D Controllers:''' Controllers for each 3D View. This is the same controller that is accessible from the bar at the top of a 3D View. It provides access to the view direction, zooming, spinning, rocking, etc.<br />
* '''Slice Information:''' An alternative panel to control geometric parameters of a Slice View (field of view, lightbox, slice spacing).<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* Slice Controller on the Slice View<br />
* 3D Controller on the 3D View<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Transforms&diff=46331Documentation/Nightly/Modules/Transforms2016-06-29T20:23:03Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
:'''Author(s)/Contributor(s):''' Alex Yarmarkovich (Isomics, SPL), Jean-Christophe Fillion-Robin (Kitware), Julien Finet (Kitware), Andras Lasso (PerkLab, Queen's), Franklin King (PerkLab, Queen's)<br><br />
:'''Acknowledgements:''' This work is part of the [http://www.na-mic.org/ National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
:'''Contact:''' Alex Yarmarkovich, <email>alexy@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
Features: <br />
<br />
* '''Short video demonstrating the main features:''' http://screencast.com/t/Z6dQVjK3m<br />
* Support non-linear transforms in the Transforms module: allow Apply, Harden, Invert transform<br />
* Transform information displayed in the Transforms module (type of transform, basic properties)<br />
* Transform visualization:<br />
** Built into the Transforms module<br />
** Three main modes: Glyphs (show an array of arrows, cones, spheres), Grid (show a deformed grid), or Contour (show isolines/isosurfaces for specified displacement magnitude values)<br />
** All transform types are supported (chains of transforms as well)<br />
** Visualization in the slice viewers<br />
** Visualization in the 3D viewers, in the specified region (region can be a slice viewer, a volume, or a ROI widget)<br />
** Real-time update: if the transform (or any visualization parameter) is changed then the visualization is updated immediately (interactive visualization while editing the transform)<br />
** Built-in colormap editor<br />
* MetaImage (mha), NIFTI (nii) vector volumes can be loaded as displacement field (grid) transform <br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Most frequently Transform module is used for these scenarios:<br />
<br />
* Manual Registration: You can insert a transformation node into your scene, and in the Data module drag a volume or a model under it, making them children of the transformation node. After that any changes to the transformation matrix of this node will be applied to the display of children volumes and models.<br />
<br />
* Visualize the displacement that transforms specify: Transforms can be visualized in both 2D and 3D views, as glyphs representing the displacement vectors as arrows, cones, or spheres; regular grids that are deformed by the transform; or contours that represent lines or surfaces where the displacement magnitude has a specific value.<br />
<br />
* Apply transforms: You can dynamically transform a node by selecting them in the ''Transformable'' list and clicking the ''right arrow'' button. Whenever the transform changes, the transformed nodes are updated accordingly. The ''Harden Transform'' (its button is below the ''left arrow'' button) can be used for applying the transform to nodes permanently. Transforms themselves can be transformed, therefore chain of transforms can be constructed. Non-linear transforms can be concatenated too, but to to the lack of standard file format for storing concatenated inverted transforms, such composite non-linear transforms cannot be saved to file.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
* Please use tutorial about [http://www.slicer.org/slicerWiki/index.php/Documentation/4.0/Training loading and viewing data]. <br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
===Transform editing and application===<br />
{|<br />
|-<br />
| [[Image:TransformsModule-43.png|thumb|280px|Transforms module panel]]<br />
| [[Image:QSlicerTransformsModule.png|thumb|660px|''LinearTransform'' applied to ''Meningioma2''<br>Rotation along IS 44º<br>Translations: LR -65mm, PA -14mm, IS 56mm]]<br />
|}<br />
<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
<br />
===Transform display options===<br />
{|<br />
|-<br />
| [[Image:GlyphArrow2d.png|thumb|280px|Glyph visualization (arrow, 2D): the arrow shows the displacement vector at the arrow starting point, projected to the slice]]<br />
| [[Image:GlyphCone2d.png|thumb|280px|Glyph visualization (cone, 2D): the cone shows the displacement vector at the cone centerpoint, projected to the slice]]<br />
| [[Image:GlyphSphere2d.png|thumb|280px|Glyph visualization (sphere, 2D): the circle diameter shows the displacement vector magnitude at the circle centerpoint]]<br />
|-<br />
| [[Image:GlyphArrow3dSlice.png|thumb|280px|Glyph visualization (arrow, 3D, slice region): the arrow shows the displacement vector at the arrow starting point]]<br />
| [[Image:GlyphCone3dVolumeRoi.png|thumb|280px|Glyph visualization (cone, 3D, annotation ROI region): the cone shows the displacement vector at the cone centerpoint]]<br />
| [[Image:GlyphSphere3dVolume.png|thumb|280px|Glyph visualization (sphere, 3D, volume region, with glyph magnitude filtering): the sphere diameter shows the displacement vector magnitude at the circle centerpoint]]<br />
|-<br />
| [[Image:Grid2d.png|thumb|280px|Grid visualization (2D): shows a regular grid, deformed by the displacement vector projected to the slice]]<br />
| [[Image:Grid3dSlice.png|thumb|280px|Grid visualization (3D, slice region): shows a regular grid, deformed by the displacement vector]]<br />
| [[Image:Grid3dVolume.png|thumb|280px|Grid visualization (3D, annotation ROI region): shows a regular grid, deformed by the displacement vector]]<br />
|-<br />
| [[Image:Contour2d.png|thumb|280px|Contour visualization (2D): iso-lines corresponding to selected displacement magnitude values]]<br />
| [[Image:Contour3dVolume.png|thumb|280px|Grid visualization (3D, volume region): iso-surfaces corresponding to selected displacement magnitude values]]<br />
|}<br />
<br />
==== Coloring ====<br />
<br />
Open Transforms module / Display section / Colors section.<br />
If you click on a small circle then above the color bar you can see the small color swatch. On its left side is the points index (an integer that tells which point is being edited and that can be used to jump to the previous/next point), and on its right side is the mm value corresponding to that color.<br />
<br />
The default colormap is:<br />
* 1mm (or below) = gray<br />
* 2mm = green<br />
* 5mm = yellow<br />
* 10mm (or above) = red<br />
<br />
You can drag-and-drop any of the small circles or modify the mm value in the editbox. You can also add more color values by clicking on the color bar. Then, you can assign a color and/or adjust the mm value. If you click on a circle and press the DEL key then the color value is deleted.<br />
<br />
If you need to know accurate displacement values at specific positions then switch to contour mode and in the “Levels” list enter all the mm values that you are interested in. For example, if you enter only a single value “3” in the Levels field you will see a curve going through the points where the displacement is exactly 3 mm; on one side of the curve the displacements are smaller, on the other side the displacements are larger.<br />
<br />
You can show both contours and grid or glyph representations by loading the same transform twice and choosing a different representation for each.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* Related modules: [[Documentation/{{documentation/version}}/Modules/Data|Data module]], [[:Category:Documentation/{{documentation/version}}/Modules/Registration|Registration modules]].<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
<br />
===Key [[Documentation/{{documentation/version}}/Developers/MRML|MRML]] nodes===<br />
* [http://slicer.org/doc/html/classvtkMRMLTransformableNode.html vtkMRMLTransformableNode]: any node that can be transformed<br />
* [http://slicer.org/doc/html/classvtkMRMLTransformNode.html vtkMRMLTransformNode]: it can store any linear or deformable transform or composite of multiple transforms<br />
** [http://slicer.org/doc/html/classvtkMRMLLinearTransformNode.html vtkMRMLLinearTransformNode]: Deprecated. The transform does exactly the same as vtkMRMLTransformNode but has a different class name, which are still used for showing only certain transform types in node selectors. In the future this class will be removed. A vtkMRMLLinearTransformNode may contain non-linear components after a non-linear transform is hardened on it. Therefore, to check linearity of a transform the vtkMRMLTransformNode::IsLinear() and vtkMRMLTransformNode::IsTransformToWorldLinear() and vtkMRMLTransformNode::IsTransformToNodeLinear() methods must be used instead of using vtkMRMLLinearTransformNode::SafeDownCast(transform)!=NULL. <br />
** [http://slicer.org/doc/html/classvtkMRMLBSplineTransformNode.html vtkMRMLBSplineTransformNode]: Deprecated. The transform does exactly the same as vtkMRMLTransformNode but has a different class name, which are still used for showing only certain transform types in node selectors. In the future this class will be removed.<br />
** [http://slicer.org/doc/html/classvtkMRMLGridTransformNode.html vtkMRMLGridTransformNode]: Deprecated. The transform does exactly the same as vtkMRMLTransformNode but has a different class name, which are still used for showing only certain transform types in node selectors. In the future this class will be removed.<br />
<br />
===Examples===<br />
<br />
How to programmatically apply a transform to a transformable node:<br />
vtkNew<[http://slicer.org/doc/html/classvtkMRMLTransformNode.html vtkMRMLTransformNode]> transformNode;<br />
scene->AddNode(transformNode.GetPointer());<br />
...<br />
vtkNew<vtkMatrix4x4> matrix;<br />
...<br />
transform->SetMatrixTransformToParent( matrix.GetPointer() );<br />
...<br />
vtkMRMLVolumeNode* transformableNode = ...; // or vtkMRMLModelNode*...<br />
transformableNode->SetAndObserveTransformNodeID( transformNode->GetID() );<br />
<br />
Example of moving a volume along a trajectory using a transform<br />
<br />
<pre><br />
# Load sample volume<br />
import SampleData<br />
sampleDataLogic = SampleData.SampleDataLogic()<br />
mrHead = sampleDataLogic.downloadMRHead()<br />
<br />
# Create transform and apply to sample volume<br />
transformNode = slicer.vtkMRMLTransformNode()<br />
slicer.mrmlScene.AddNode(transformNode)<br />
mrHead.SetAndObserveTransformNodeID(transformNode.GetID())<br />
<br />
# How to move a volume along a trajectory using a transform:<br />
import time<br />
import math<br />
transformMatrix = vtk.vtkMatrix4x4()<br />
for xPos in range(-30,30):<br />
transformMatrix.SetElement(0,3, xPos)<br />
transformMatrix.SetElement(1,3, math.sin(xPos)*10)<br />
transformNode.SetMatrixTransformToParent(transformMatrix)<br />
slicer.app.processEvents()<br />
time.sleep(0.02)<br />
# Note: for longer animations use qt.QTimer.singleShot(100, callbackFunction)<br />
# instead of a for loop.<br />
</pre><br />
<br />
Because a ''transform'' node is also a ''transformable'' node, it is possible to concatenate transforms with each others:<br />
[http://slicer.org/doc/html/classvtkMRMLTransformNode.html vtkMRMLTransformNode*] transformNode = ...;<br />
[http://slicer.org/doc/html/classvtkMRMLTransformNode.html vtkMRMLTransformNode*] transformNode2 = ...;<br />
transformNode2->SetAndObserveTransformNodeID( transformNode->GetID() );<br />
...<br />
transformable->SetAndObserveTransformNodeID( transformNode2->GetID() );<br />
<br />
How to convert the transform to a grid transform (also known as displacement field transform)?<br />
<br />
transformNode=slicer.util.getNode('LinearTransform_3')<br />
referenceVolumeNode=slicer.util.getNode('MRHead')<br />
slicer.modules.transforms.logic().ConvertToGridTransform(transformNode, referenceVolumeNode)<br />
<br />
* Conversion to grid transform is useful because some software cannot use inverse transforms or can only use grid transforms.<br />
* Displacement field transforms are saved to file differently than displacement field volumes: displacement vectors in transforms are converted to LPS coordinate system on saving, displacement vectors in volumes are saved to file unchanged.<br />
<br />
How to export the displacement magnitude of the transform as a volume?<br />
<br />
transformNode=slicer.util.getNode('LinearTransform_3')<br />
referenceVolumeNode=slicer.util.getNode('MRHead')<br />
slicer.modules.transforms.logic().CreateDisplacementVolumeFromTransform(transformNode, referenceVolumeNode, False)<br />
<br />
How to visualize the displacement magnitude as a color volume?<br />
<br />
transformNode=slicer.util.getNode('LinearTransform_3')<br />
referenceVolumeNode=slicer.util.getNode('MRHead')<br />
slicer.modules.transforms.logic().CreateDisplacementVolumeFromTransform(transformNode, referenceVolumeNode, True)<br />
<br />
===Transform files===<br />
* Slicer stores tansform in VTK classes in memory but uses ITK transform IO classes to read/write transforms to files. ITK's convention is to use LPS coordinate system as opposed to RAS coordinate system in Slicer (see [[Coordinate systems]] page for details). Conversion between VTK and ITK transform classes are implemented in [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Core/vtkITKTransformConverter.h vtkITKTransformConverter].<br />
* ITK stores the transform in resampling (a.k.a., image processing) convention, i.e., that transforms points from fixed to moving coordinate system. This transform is usable as is for resampling a moving image in the coordinate system of a fixed image. For transforming points and surface models to the fixed coordinate system, one needs the transform in the modeling (a.k.a. computer graphics) convention, i.e., transform from moving to fixed coordinate system (which is the inverse of the "image processing" convention).<br />
* Transform nodes in Slicer can store transforms in both modeling (when ToParent transform is set) and resampling way (when FromParent transform is set). When writing transform to ITK files, linear transforms are inverted as needed and written as an AffineTransform. Non-linear transforms cannot be inverted without losing information (in general), therefore if a non-linear transform is defined in resampling convention in Slicer then it is written to ITK file using special "Inverse" transform types (e.g., InverseDisplacementFieldTransform instead of DisplacementFieldTransform). Definition of the inverse classes are available in [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Core/vtkITKTransformInverse.h vtkITKTransformInverse]. The inverse classes are only usable for file IO, because currently ITK does not provide a generic inverse transform computation method. Options to manage inverse transforms in applications:<br />
** Create VTK transforms from ITK transforms: VTK transforms can compute their inverse, transform can be changed dynamically, the inverse will be always updated automatically in real-time (this approach is used by Slicer)<br />
** Invert transform in ITK statically: by converting to displacement field and inverting the displacement field; whenever the forward transform changes, the complete inverse transform has to be computed again (which is typically very time consuming)<br />
** Avoid inverse non-linear transforms: make sure that non-linear transforms are only set as FromParent<br />
* Transforms module in Slicer shows linear transform matrix values in RAS coordinate system, according to resampling convention. Therefore to retrieve the same values from an ITK transforms as shown in Slicer GUI, one has switch between RAS/LPS and modeling/resampling:<br />
<br />
<pre><br />
// Convert from LPS (ITK) to RAS (Slicer)<br />
// input: transformVtk_LPS matrix in vtkMatrix4x4 in resampling convention in LPS<br />
// output: transformVtk_RAS matrix in vtkMatri4x4 in modeling convention in RAS<br />
<br />
// Tras = lps2ras * Tlps * ras2lps<br />
vtkSmartPointer<vtkMatrix4x4> lps2ras = vtkSmartPointer<vtkMatrix4x4>::New();<br />
lps2ras->SetElement(0,0,-1);<br />
lps2ras->SetElement(1,1,-1);<br />
vtkMatrix4x4* ras2lps = lps2ras; // lps2ras is diagonal therefore the inverse is identical<br />
vtkMatrix4x4::Multiply4x4(lps2ras, transformVtk_LPS, transformVtk_LPS);<br />
vtkMatrix4x4::Multiply4x4(transformVtk_LPS, ras2lps, transformVtk_RAS); <br />
<br />
// Convert the sense of the transform (from ITK resampling to Slicer modeling transform)<br />
vtkMatrix4x4::Invert(transformVtk_RAS);<br />
</pre><br />
<br />
===Events===<br />
When a transform node is observed by a transformable node, [http://slicer.org/doc/html/classvtkMRMLTransformableNode.html#ace1c30fc9df552543f00d51a20c038a6a4993bf6e23a6dfc138cb2efc1b9ce43b vtkMRMLTransformableNode::TransformModifiedEvent] is fired on the transformable node at observation time.<br />
Anytime a transform is modified, vtkCommand::ModifiedEvent is fired on the transform node and [http://slicer.org/doc/html/classvtkMRMLTransformableNode.html#ace1c30fc9df552543f00d51a20c038a6a4993bf6e23a6dfc138cb2efc1b9ce43b vtkMRMLTransformableNode::TransformModifiedEvent] is fired on the transformable node.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SceneViews&diff=46329Documentation/Nightly/Modules/SceneViews2016-06-29T20:21:00Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}} }}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-acknowledgements}}<br><br />
: '''Contact:''' Nicole Aucoin, <email>nicole@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
|{{collaborator|logo|upenn}}|{{collaborator|longname|upenn}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
'''WARNING''': The scene views are designed to be different views of the same set of data. Adding or removing data (volumes, models etc) so that different scene views have different sets of data (MRML nodes) in them will result in unexpected behaviour. The recommended way of working with scene views is to load all of your data first, then to create scene views by hiding or showing the different elements. You can easily toggle the visibility of all of the models in the scene using the Models module, so you can use that to turn them all off and then selectively show the ones relevant to your scene view.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Most frequently used to:<br />
<br />
*Set up a series of predefined starting points for looking at portions of your data in detail. <br />
**For example, you may have one overview scene which shows an external view of the body along with interior views with the skin surface turned off and slice planes visible to highlight a tumor location. <br />
* Compare the output of algorithms.<br />
*There is [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/SubjectHierarchy Subject Hierarchy] support that can be accessed from the context menu<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|How to Use}}<br />
<br />
<gallery widths=300px heights=250px class="center"><br />
File:Slicer44-SceneViews-2014-11-17.jpeg<br />
File:Slicer44-ScreenSnapshot.jpeg |Click on the camera to create a new scene view. It pops up a screen capture window that allows you to associate an image with the scene view. You can choose to save an image of the full layout, just the 3D view or just one of the slice views. You can also add a description and change the name.<br />
File:Slicer44-SceneViewGUI.jpeg| As scene views are saved, they appear in the Create and Edit box and the count is incremented next to the camera. Click on the image thumbnail or the description to edit the image, name, description. You can delete a scene view by pressing the garbage can button. <br />
File:Slicer4CaptureToolbar.png | You can also save and restore scene views and screen snapshots from the Capture toolbar.<br />
</gallery><br />
<br />
The scene views are saved in the MRML file, via the File->Save menu.<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
A list of all the panels in the interface, their features, what they mean, and how to use them. <br />
<br />
<!--<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
--><br />
<br />
[[File:Slicer44-SceneViewGUI.jpeg|thumb|200px|right|Scene views module]]<br />
'''Create and Edit Panel'''<br />
*Create a 3D Slicer Scene View<br />
**Click on the camera to create a new scene view<br />
*Delete selected view<br />
**Click on the garbage can button to delete the scene view<br />
*Edit view<br />
**Click on the thumbnail of the scene view to edit it (change the name, description)<br />
**Restore<br />
***Click on the green arrow button to restore this scene view, making it the currently active scene<br />
**Name<br />
***The short name given to this scene view.<br />
**Description<br />
***Some descriptive text about this scene view. Double click to edit it.<br />
<br />
<br />
<br />
[[File:Slicer5-SceneViews-PETCT-New.jpeg|thumb|200px|right|New scene view]]<br />
'''3D Slicer SceneView New Dialog'''<br />
*Name<br />
**Edit the name of the scene view here<br />
* Thumbnail and layout type: click on a radio button to update the screen shot image<br />
**Full Layout: captures the 3D window and all slice views<br />
**3D View: captures just the 3D view<br />
**Red Slice View: captures just the red 2D slice<br />
**Yellow Slice View: captures just the yellow 2D slice<br />
**Green Slice View: captures just the green 2D slice<br />
* Description<br />
**Edit the description of the scene view<br />
<br />
<br />
<br />
[[File:Slicer4-SceneViews-PETCT.jpeg|right|thumb|200px|Edit scene view]]<br />
'''3D Slicer SceneView Edit Dialog'''<br />
*Name<br />
**Edit the name of the scene view here<br />
* Description<br />
**Edit the description of the scene view<br />
* Thumbnail and layout type are not editable<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* The Capture tool bar has similar functionality.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Markups&diff=46324Documentation/Nightly/Modules/Markups2016-06-29T20:10:32Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the [http://www.na-mic.org/ NA-MIC website].<br><br />
Author: Nicole Aucoin, SPL, BWH<br><br />
Contact: Nicole Aucoin, <email>nicole@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This module is used to manage markups in Slicer. <br />
<br />
It is based on the functionality in the Slicer 3.6 Fiducials module, with elements from the Slicer 4.2 Annotations module. <br />
<br />
Currently, only fiducials are supported.<br />
<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
Development history can be found in the [[documentation/{{documentation/version}}/Modules/{{documentation/modulename}}#References|references]].<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
<br />
This module allows you to add new markups, edit markups in a list, delete markups and modify display properties of markups.<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|How To Use}}<br />
<br />
<gallery widths=300px heights=250px class="center"><br />
File:Markups-ModifyList.png | 1. Select the active list, set visibility and lock flags, set uniform scale.<br />
File:Markups-JumpSlices-44.png | 2. Jump the 2D slice view windows to the coordinates of the highlighted markup.<br />
File:Markups-ModifyMarkupsInList.png | 3. Modify Markups in list: toggle visibility, selected, and lock flags, delete.<br />
File:Markups-Table.png | 4. Table showing the fiducials in the active Markups list<br />
File:Markups-Advanced.png | 5. Advanced panel: move markups up or down, add a markup, name format, convert annotation fiducials, display properties for the list of markups<br />
File:Markups-DisplayProperties.png | 6. Display properties, inside the Advanced panel, there are 2D projection settings.<br />
File:Markups-MouseToolbar.png | 7. Place Markup fiducials by setting the Mouse mode in the tool bar<br />
</gallery><br />
<br />
'''Note:''' Markups can be passed to command line modules (CLIs) using the <pre>--point</pre> or <pre>--pointfile</pre> argument. <br />
<br />
'''Note: '''The Mouse mode tool bar can be used to place new markups by positioning the mouse and left clicking in the viewers. Once you are in Place mode and placing Markups fiducials, you can use the 'p' key to place a new fiducial while the Markups GUI is open. You can also use a right button click to stop placing fiducials when in persistent mode.<br />
<br />
'''Note: '''You can place fiducials and use the GUI to jump slices or the 3D view to those locations. If you select fiducials in the table, you can right click to get the summed linear distance between their locations.<br />
<br />
'''Note: '''The Markups module can convert Annotation fiducials into Markups fiducials, and will offer the user the option of doing it automatically when the Markups GUI is entered. There is also a manual button under the Advanced tab.<br />
<br />
<br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
<br />
*[[Documentation/Nightly/Modules/Annotations | Annotations]] module is similar, and will be deprecated as the functionality is moved to the Markups module.<br />
*[https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L303 Endoscopy module] uses fiducials<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Summer_Project_Week:MarkupsModuleSummer2013 Summer 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Project_Week:MarkupsModule Winter 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2012_Summer_Project_Week:AnnotationModule Summer 2012 Project Week project page]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
The Simple Markups Widget can be integrated into slicelets. It is lightweight and can access the Markups features. An example of this use is in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry.] To use this, access it at [https://github.com/Slicer/Slicer/blob/master/Modules/Loadable/Markups/Widgets/qSlicerSimpleMarkupsWidget.h GitHub.]<br />
<br />
== Python ==<br />
<br />
=== Open the Markups Module ===<br />
<br />
You can set the Markups module gui to be the current module gui using this command:<br />
<br />
slicer.util.mainWindow().moduleSelector().selectModule('Markups')<br />
<br />
=== Load From File ===<br />
<br />
Markups fiducials can be loaded from file:<br />
<br />
slicer.util.loadMarkupsFiducialList('/path/to/list/F.fcsv')<br />
<br />
=== Adding Fiducials Programatically ===<br />
<br />
Markups fiducials can be added to the currently active list from the python console by using the following module logic command:<br />
<br />
slicer.modules.markups.logic().AddFiducial()<br />
<br />
The command with no arguments will place a new fiducial at the origin. You can also pass it an initial location:<br />
<br />
slicer.modules.markups.logic().AddFiducial(1.0, -2.0, 3.3)<br />
<br />
=== Adding Fiducials via Mouse Clicks ===<br />
<br />
You can also set the mouse mode into Markups fiducial placement by calling:<br />
<br />
placeModePersistence = 1<br />
slicer.modules.markups.logic().StartPlaceMode(placeModePersistence)<br />
<br />
A lower level way to do this is via the selection and interaction nodes:<br />
selectionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLSelectionNodeSingleton")<br />
selectionNode.SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode")<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
placeModePersistence = 1<br />
interactionNode.SetPlaceModePersistence(placeModePersistence)<br />
# mode 1 is Place, can also be accessed via slicer.vtkMRMLInteractionNode().Place<br />
interactionNode.SetCurrentInteractionMode(1)<br />
<br />
To switch back to view transform once you're done placing fiducials:<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
interactionNode.SwitchToViewTransformMode()<br />
# also turn off place mode persistence if required<br />
interactionNode.SetPlaceModePersistence(0)<br />
<br />
=== Access to Fiducial Properties ===<br />
<br />
Each vtkMRMLMarkupsFiducialNode has a vector of points in it which can be accessed from python:<br />
<br />
fidNode = getNode("vtkMRMLMarkupsFiducialNode1")<br />
n = fidNode.AddFiducial(4.0, 5.5, -6.0)<br />
fidNode.SetNthFiducialLabel(n, "new label")<br />
# each markup is given a unique id which can be accessed from the superclass level<br />
id1 = fidNode.GetNthMarkupID(n)<br />
# manually set the position<br />
fidNode.SetNthFiducialPosition(n, 6.0, 7.0, 8.0)<br />
# set the label<br />
fidNode.SetNthFiducialLabel(n, "New label")<br />
# set the selected flag, only selected = 1 fiducials will be passed to CLIs<br />
fidNode.SetNthFiducialSelected(n, 1)<br />
# set the visibility flag<br />
fidNode.SetNthFiducialVisibility(n, 0) <br />
<br />
You can loop over the fiducials in a list and get the coordinates:<br />
<br />
fidList = slicer.util.getNode('F')<br />
numFids = fidList.GetNumberOfFiducials()<br />
for i in range(numFids):<br />
ras = [0,0,0]<br />
fidList.GetNthFiducialPosition(i,ras)<br />
# the world position is the RAS position with any transform matrices applied<br />
world = [0,0,0,0]<br />
fidList.GetNthFiducialWorldCoordinates(0,world)<br />
print i,": RAS =",ras,", world =",world<br />
<br />
You can also look at the sample code in the [https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L287 Endoscopy module] to see how python is used to access fiducials from a scripted module.<br />
<br />
=== VTK Widget access ===<br />
<br />
The Markups 3D fiducial displayable manager can be accessed from python allowing debugging of the vtkSeedWidget:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
td = lm.threeDWidget(0)<br />
ms = vtk.vtkCollection()<br />
td.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()): <br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager3D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep2 = seedRepresentation.GetHandleRepresentation(2)<br />
print handleRep2.GetDisplayPosition()<br />
print handleRep2.GetWorldPosition()<br />
<br />
<br />
The Markups 2D fiducial displayable manager can be accessed from python as well to debug the seed widget in 2D. For the Red slice viewer:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
redWidget = lm.sliceWidget("Red")<br />
redView = redWidget.sliceView()<br />
ms = vtk.vtkCollection()<br />
redView.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()):<br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager2D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep = seedRepresentation.GetHandleRepresentation(0)<br />
print handleRep.GetDisplayPosition()<br />
<br />
== C++ ==<br />
<br />
===Selection and Interaction===<br />
<br />
For the selection and interaction nodes, make sure that you access the singleton nodes already in the scene (rather than making your own) via (caveat: this call works on displayable managers, you may have to go a different route to get at the application logic):<br />
vtkMRMLApplicationLogic *mrmlAppLogic = this->GetMRMLApplicationLogic();<br />
vtkMRMLInteractionNode *inode = mrmlAppLogic->GetInteractionNode();<br />
vtkMRMLSelectionNode *snode = mrmlAppLogic->GetSelectionNode();<br />
If you can't get at the mrml application logic, you can get the nodes from the scene:<br />
vtkMRMLInteractionNode *interactionNode = vtkMRMLInteractionNode::SafeDownCast(this->GetMRMLScene()->GetNodeByID("vtkMRMLInteractionNodeSingleton"));<br />
<br />
You can then call methods on the nodes or add your own event observers as in<br />
vtkSlicerMarkupsModuleLogic::ObserveMRMLScene<br />
You can see vtkSlicerMarkupsModuleLogic::ProcessMRMLNodesEvents to see how to respond to interaction node changes.<br />
<br />
Slicer4/Base/QTGUI/qSlicerMouseModeToolBar.cxx has a lot of the code you'll need as well, with a slightly different way of getting at the mrml app logic to access the nodes.<br />
<br />
The calls you need to make to switch into placing fiducials with the mouse are:<br />
selectionNode->SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode");<br />
interactionNode->SetCurrentInteractionMode(vtkMRMLInteractionNode::Place);<br />
If you don't set PlaceModePersistence on the interaction node to 1, the mouse mode/current interaction mode will automatically go back to view transform after one fiducial has been placed, and you just need to reset the current interaction mode for future placing (the active place node class name and ID are persistent).<br />
<br />
=== Programmatic Access to Fiducials ===<br />
<br />
This section explains how to access fiducial nodes added into the scene by the user.<br />
<br />
In your module's Logic class, overwrite SetMRMLSceneInternal to observe the NodeAddedEvent of the scene:<br />
void vtkSlicerMYMODULEModuleLogic::SetMRMLSceneInternal(vtkMRMLScene * newScene)<br />
{<br />
vtkNew<vtkIntArray> events;<br />
events->InsertNextValue(vtkMRMLScene::NodeAddedEvent);<br />
// Optionally you can add more events here, <br />
// such as vtkMRMLScene::NodeRemovedEvent<br />
this->SetAndObserveMRMLSceneEventsInternal(newScene, events.GetPointer());<br />
}<br />
Via the set and observe mrml scene macro, anytime a node is added into the scene, it will trigger the base Logic class method<br />
[http://slicer.org/doc/html/classvtkMRMLAbstractLogic.html#a51fdf00ecfc18c1a1465d4bccb789ef1 vtkMRMLAbstractLogic::ProcessMRMLNodesEvents] which calls the virtual method <code>vtkMRMLAbstractLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* node)</code><br />
Reimplement that method in your logic class:<br />
void vtkSlicerMYMODULEModuleLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* addedNode)<br />
{<br />
vtkMRMLMarkupsFiducialNode* fidNode =<br />
vtkMRMLMarkupsFiducialNode::SafeDownCast(addedNode);<br />
if (fidNode)<br />
{<br />
// here you write what you need to do when a <br />
// fiducial node is added into the scene<br />
}<br />
}<br />
<br />
=== File Format===<br />
<br />
The Markups Fiducial storage node uses a comma separated value file to store the fiducials on disk. The format is:<br />
<br />
A leading comment line giving the Slicer version number:<br />
# Markups fiducial file version = 4.5<br />
A comment line giving the coordinate system, RAS = 0, LPS = 1, IJK = 2 (IJK is currently not supported, RAS is printed instead)<br />
# CoordinateSystem = 0<br />
A comment line explaining the fields in the csv<br />
# columns = id,x,y,z,ow,ox,oy,oz,vis,sel,lock,label,desc,associatedNodeID<br />
Then comes the fiducials, one per line, for example:<br />
vtkMRMLMarkupsFiducialNode_0,1.29,-40.18,60.15,0,0,0,1,1,1,0,F-1,,<br />
*id = a string giving a unique id for this fiducial, usually based on the class name<br />
*x,y,z = the floating point coordinate of the fiducial point<br />
*ow,ox,oy,oz = the orientation quaternion of this fiducial, angle and axis, default 0,0,0,1 (or 0,0,0,0,0,0,1.0)<br />
*vis = the visibility flag for this fiducial, 0 or 1, default 1<br />
*sel = the selected flag for this fiducial, 0 or 1, default 1<br />
*lock = the locked flag for this fiducial, 0 or 1, default 0<br />
*label = the name for this fiducial, displayed beside the glyph, with quotes around it if there is a comma in the field<br />
*desc = a string description for this fiducial, optional<br />
*associatedNodeID = an id of a node in the scene with which the fiducial is associated, for example the volume or model on which the fiducial was placed, optional<br />
<br />
The file can be parsed using stringstream and getline:<br />
<br />
std::fstream fstr;<br />
fstr.open(fileName.c_str(), std::fstream::in);<br />
char line[1024];<br />
while (fstr.good())<br />
{<br />
fstr.getline(line, 1024);<br />
std::stringstream ss(line);<br />
std::string component;<br />
getline(ss, component, ',');<br />
[...]<br />
}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/DICOM&diff=46319Documentation/Nightly/Modules/DICOM2016-06-29T19:59:00Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
:'''Author(s)/Contributor(s):''' Steve Pieper (Isomics Inc.), Michael Onken (Offis), Marco Nolden (DFKZ), Julien Finet (Kitware), Stephen Aylward (Kitware), Nicholas Herlambang (AZE), Alireza Mehrtash (BWH), Csaba Pinter (PerkLab, Queen's)<br><br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/ National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149, and by Quantitative Image Informatics for Cancer Research (QIICR) (U24 CA180918) <br><br />
: '''Contact:''' Steve Pieper, <email>pieper@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
|{{collaborator|logo|ctk}}|{{collaborator|longname|ctk}}<br />
|{{collaborator|logo|qiicr}}|{{collaborator|longname|qiicr}}<br />
|Image:DICOM-OFFIS-logo.png|DICOM-OFFIS<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
*A new DICOM infrastructure was put in place beginning with Slicer 4.0. <br />
*DICOM data is stored in a local data base, which is based on SQLite.<br />
*DICOM data can be imported from disk into this data base.<br />
*DICOM data can be created from the scene contents and exported to DICOM files.<br />
*DICOM data can be retrieved from a PACS system after proper configuration of Slicer.<br />
*DICOM data can be loaded into Slicer from the local database. A graphical user interface with display of thumbnails is available for data selection.<br />
*Plans for the near future include support for storing data from slicer into the data base and uploading data from the data base into a PACS system.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
This module is used for DICOM import and export.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Screenshots}}<br />
<br />
{|<br />
|[[image:DICOM Screenshot-1 1204-11-17-10-36.png|thumb|380px|DICOM module in use]]<br />
|[[Image:Form_224.png|thumb|380px|DICOM Query dialog]]<br />
|[[Image:DICOM Horizontal View 2014-11-17-09-35.png|thumb|380px|Horizontal table view]]<br />
|}<br />
{|<br />
|[[Image:DICOM-3 2014-11-17-10-42.png|thumb|380px|DICOM Browser in Advanced Mode (Control plugins and access to load options)]]<br />
|[[Image:DICOM4 2014-11-17-09-38.png|thumb|380px|DICOM Meta Data Browser (DICOM header viewer)]]<br />
|[[Image:DICOM-5 2014-11-17-10-46.png|thumb|380px|More options (change local database directory and table display density)]]<br />
|}<br />
{|<br />
|[[Image:20141103_DICOM_Export_Dialog.png|thumb|380px|DICOM Export Dialog]]<br />
|}<br />
<br />
=DICOM Concepts=<br />
<br />
DICOM is a widely used and sophisticated set of standards for digital radiology (see the [[#References|References]] section for more information). Slicer provides support for a subset of DICOM functionality, with the particular features driven by the needs of clinical research.<br />
<br />
<br />
=DICOM Organization=<br />
<br />
To organize the data and avoid redundant calculations, Slicer keeps a DICOM Database of information about the DICOM data. You can have multiple databases on your computer at a time, and switch between them if, for example, they include data from different research projects. Each database is simply a directory on your local disk that has a few [http://sqlite.org/ SQLite] files and subdirectories to store image data. Don't manually modify the contents of these directories. DICOM data can enter the database either through manual import or via a DICOM network transfer. Modules may also populate the DICOM database with the results of computation.<br />
<br />
By right clicking on a Patient, Study, or Series, you can delete the entry from the DICOM database. Note that to avoid accidental data loss, Slicer does not delete the corresponding image data files.<br />
<br />
By selecting a Study and right clicking to get a context menu, you can choose to Export data from Slicer into DICOM. The metadata from the select study will be automatically filled in to the Export dialog and you can select a Slicer volume to export. ''Note that you should exercise extreme caution when working with these files in clinical situations, since non-standard or incorrect DICOM files can interfere with clinical operations.'' You can also choose to encapsulate the current MRML scene (via an MRB file) inside a DICOM dataset, which will be treated as a DICOM Secondary Capture document (note that the export feature has not been widely tested and should be considered experimental). <br />
<br />
<br />
=DICOM Data on the File System=<br />
<br />
The basic steps are as follows:<br />
<br />
*Click the Import button in the DICOM Browser<br />
*Select the folder which contains the data<br />
** Optionally select the Copy option so that the files are copied into the database directory. Otherwise they will only be referenced in their original locaion.<br />
<br />
Note that the DICOM standard does not specify how files will be organized on disk, so if you have DICOM data from a CDROM or otherwise transferred from a scanner, you cannot in general tell anything about the contents from the file or directory names. However once the data is imported to the database, it will be organized according the the DICOM standard Patient/Study/Series hierarchy.<br />
<br />
=Data in the scene=<br />
<br />
Data in the scene can be exported to the DICOM database:<br />
* Select data to be exported in Subject Hierarchy module or initiate export from DICOM browser<br />
* Edit tags for exportables<br />
* Exported files are added to the DICOM database<br />
<br />
=DICOM Networking=<br />
<br />
DICOM is also a network communication standard. Slicer supports a DICOM Listener, DICOM Query/Retrieve interface, and a DICOM Send option. Note that in order to use these features, you must coordinate with the operators of the other DICOM nodes with which you wish to communicate. For example, you must work out agreement on such topics as network ports and application entity titles (AE Titles). Be aware that not all equipment supports all networking options, so configuration may be challenging and is often difficult to troubleshoot.<br />
<br />
== Connection Ports ==<br />
Port 104 is the standard DICOM port. All ports below 1024 require root access on unix-like systems (Linux and Mac). So you can run Slicer with the sudo command to be able to open the port for the DICOM Listener. Or you can use a different port, like 11112. You need to configure that on both sides of the connection. You can only have one process at a time listening on a port so if you have a listener running the second one won't start up. Also if something adverse happens (a crash) the port may be kept open an you need to either kill the storescp helper process (or just reboot the computer) to free the port. Consult the [[documentation/{{documentation/version}}/SlicerApplication/ErrorLog|Error Log]] for diagnostic information.<br />
<br />
<br />
=DICOM Loading/Saving and Plugins=<br />
<br />
A main function of the DICOM module is to map from ''acquisition'' data organization into ''volume'' representation. That is, DICOM files typically describe attributes of the image capture, like the sequence of locations of the table during CT acquisition, while Slicer operates on image volumes of regularly spaced pixels. If, for example, the speed of the table motion is not consistent during an acquisition (which can be the case for some contrast 'bolus chasing' scans, Slicer's DICOM module will warn the user that the acquisition geometry is not consistent and the user should use caution when interpreting analysis results such as measurements. <br />
<br />
From a developer perspective, the DICOM module exposes a plug-in architecture that allows acquisition-specific and modality-specific interpretation of DICOM data. From a user perspective this means that often Slicer will be able to suggest multiple ways of interpreting the data (such as reading DICOM files as a [[Documentation/{{documentation/version}}#Diffusion|Diffusion]] dataset or as a scalar volume. When it is computable by examining the files, the DICOM module will select the most likely interpretation option by default. As of this release, standard plugins include scalar volumes and diffusion volumes, while extensions are available for segmentation objects, RT data, and PET/CT data. More plugins are expected for future versions. It is a long-term objective to be able to represent most, if not all, of Slicer's data in the corresponding DICOM data objects as the standard evolves to support them.<br />
<br />
<!-- Tutorials ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
* See [http://www.na-mic.org/Wiki/index.php/RSNA_2012#3D_Interactive_Visualization_of_DICOM_images the RSNA 2012 Training on Visualization] for description and sample data (Direct link to [http://www.na-mic.org/Wiki/images/6/66/3DVisualizationDICOM_RadiologyApplications_SoniaPujol_RSNA2012.pdf slides as pdf]).<br />
<br />
<br />
<br />
<br />
<!-- Panels ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels}}<br />
<br />
==DICOM import==<br />
<br />
Referring to the "DICOM in use" image in the top left of this page, the most important controls for day-to-day use are highlighted with gray callouts. The are described here in the order you are likely to use them.<br />
<br />
*'''Database Directory''' allows you to select a location on disk for a local database of DICOM files. You may have several directories to organize your data, and the currently selected on will be displayed in the DICOM Browser.<br />
*'''Import Button''' allows you to select a directory to be parsed for DICOM data. The results are stored in the currently selected DICOM Database.<br />
*'''Patient Selection''' shows patients in the database. You can multi-select patients.<br />
*'''Study Selection''' shows studies for the currently selected patients. You can mult-select studies.<br />
*'''Series Selection''' shows series for the currently selected patient studies. You can multi-select series.<br />
*'''Search Box''' Each patient/study/series can be filtered by typing in these fields.<br />
*'''Examine Button''' Runs each of the DICOM Plugins on the currently selected series and offers the result in the Load Options table.<br />
*'''Plugin Options''' You can choose which plugins will be checked when examining the selected series.<br />
*'''Load Options''' displays the possible interpretations of the data based on the current plugins. The most likely plugin results are selected by default. You can override the defaults if you want to load the data in a different way. There will not always be a one-to-one mapping of selected series to load options.<br />
*'''Load Button''' loads the currently selected load options into slicer.<br />
*'''Header Button''' displays a text dump of the DICOM objects in the current series selection.<br />
<br />
==DICOM export==<br />
<br />
* DICOM export dialog can be opened from<br />
** Subject Hierarchy: action named "Export to DICOM..." appears in right-click context menu for series and studies, the selected node is automatically selected in the export tree<br />
** DICOM browser: via the Export button in the toolbar (has been there but was be disabled), no selection is made in the export tree<br />
* The user can export one or more series, or the entire scene. This selection is made by the radio button on the top.<br />
** 1. Select node: Modified subject hierarchy tree in which the user selects the series or study to export.<br />
** 2. Select export type: Once the user selected a node, the DICOM plugins generate exportables for the series they can export. The list of the results appear in this section, grouped by plugin. The confidence number will be the average of the confidence numbers for the individual series for that plugin.<br />
** 3. Edit DICOM tags:<br />
*** Pseudo-tags: the "tags" are not real DICOM tags with (XXXX,YYYY) identifiers, they are just concepts ("pseudo-tags"), that the DICOM plugins prompt to the user to fill out. It has been decided to go this way, as (1) It would be extremely hard to program the whole DICOM tag structure into Slicer, (2) It would not be particularly useful, as most tags will be auto-populated by the DICOM plugin, and just some need to be edited by the user, and (3) The plugins can expose other export options in this list (e.g. compression, naming convention)<br />
*** The DICOM tag editor consists of a list of tables. Tables for the common tags for the patient and study on the top, and the tags for the individual series below them (see image about tag editor below).<br />
* Save tags on export: Checkbox to allow saving the tags back to the MRML nodes as attributes. Off by default because it is expected that in most cases these values are temporary for the export session.<br />
* Output folder: Choose output folder. By default it is the current DICOM database. If not changed (or changed to a Slicer DICOM database folder), then the data is saved in a temporary folder (just like with the old exporter), and added to the database with copy function on. If changed to a non-database folder, then the data is saved into that folder, but it is added to the DICOM database anyway, with copy feature off (link to data only).<br />
* Export button: Export starts. In case of error, the message is displayed in red on the left side of the dialog in the line of the "Save tags on export" checkbox. The error message stays there until something is changed.<br />
<br />
<!-- Similar modules ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar modules}}<br />
* [[Documentation/{{documentation/version}}/SlicerApplication/LoadingData|Loading Data]] Can read scalar volume DICOM data, bypassing the database.<br />
* [[Documentation/{{documentation/version}}/Extensions/Reporting|Reporting Extension]] reads and writes DICOM Segmentation Objects (label maps).<br />
* [[Documentation/{{documentation/version}}/Extensions/Reporting|SlicerRT]] reads and write DICOM Radiation Therapy Objects and provides tools for processing them.<br />
* [[Documentation/{{documentation/version}}/Extensions/Reporting|LongitudinalPETCT]] reads all PET/CT studies for a selected patient and provides tools for tracking metabolic activity detected by PET tracers.<br />
<br />
<br />
<!-- References ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
See the [http://commontk.org CTK web site] for more information on the internals of the DICOM implementation. This tool uses the [http://dicom.offis.de DCMTK DICOM library].<br />
<br />
=== Useful links ===<br />
* See the [[Documentation/{{documentation/version}}/FAQ/DICOM|Slicer DICOM FAQ]]<br />
* The DICOM Homepage: http://dicom.nema.org/<br />
* DICOM on wikipedia: http://en.wikipedia.org/wiki/DICOM<br />
* A useful tag lookup site: http://dicomlookup.com/<br />
* A hyperlinked version of the standard: http://dabsoft.ch/dicom/<br />
* A handy book about DICOM: http://www.amazon.com/Digital-Imaging-Communications-Medicine-DICOM/dp/3642108490/ref=dp_ob_title_bk<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
<br />
<br />
[[Image:DICOM-architecture.png|thumb|580px|DICOM module architecture.]]<br />
<br />
The overall DICOM Implementation in 3D Slicer consists of two main bodies of code embedded within the application. [http://commontk.org CTK] code is responsible for the implementation of the DICOM database and networking layer. The CTK code is implemented C++ and follows the Qt style. The DICOM Module exposes this functionality to slicer users, and provides hooks through which other module can register DICOM Plugins to handle the conversion of specific DICOM data objects into the corresponding MRML representation. Once the data is in slicer, it can be operated on via the standard slicer mechanisms.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/DataStore&diff=46316Documentation/Nightly/Modules/DataStore2016-06-29T19:56:24Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
'''Author:''' Charles Marion, Jean-Baptiste Berger and Jean-Christophe Fillion-Robin (Kitware)<br><br />
'''Contact:''' Charles Marion, <email>charles.marion@kitware.com</email><br><br />
'''Project website:''' http://slicer.kitware.com/midas3/slicerdatastore<br><br />
'''License:''' [http://www.slicer.org/pages/LicenseText Slicer license]<br />
<br />
The Slicer Data Store is hosted by Kitware using Midas Platform. <br />
<br />
This work was supported by NIH Grant 3P41RR013218-12S1, NA-MIC, NAC, and the Slicer community.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/extension-section|Extension Description}}<br />
The Data Store extension allows an user to easily upload and download dataset files.<br />
<br />
Highlights:<br />
* Browse and search datasets in a remote databae <br />
* Download, Review and comment the datasets<br />
* Upload new datasets<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/extension-section|How To Use}}<br />
==Download a dataset==<br />
<gallery widths="250px" heights="250px" perrow="4"><br />
Image:DownloadFile 1.jpg|The Data Store module appears under the Utilities category. The module has three tabs: Local Datasets, Download Datasets and Upload Datasets<br />
Image:DownloadFile_2.jpg|The Download Dataset tab: This page allows a user to browse the .mrb files in the database. To see more information about the dataset, click on the dataset's thumbnail.<br />
Image:DownloadFile_3.jpg|This page allows a user to review the Sceneviews that are inside the .mrb file. A viewer can rate, comment and download the dataset. Once downloaded, the dataset will automatically be opened in 3D Slicer's main view.<br />
</gallery><br />
<br />
==Delete or load a cached file==<br />
When you download a dataset from the remote database, the module will keep of a copy of the Sceneviews.<br />
<gallery widths="250px" heights="250px" perrow="4"><br />
Image:UploadFile_1.jpg|First of all, start the module<br />
Image:DeleteFile_2.jpg|Select the "Local datasets" tab.<br />
Image:DeleteFile_3.jpg|This page lists all the Sceneviews your previously downloaded. You can load them or delete the local copy.<br />
</gallery><br />
<br />
==Upload a dataset==<br />
In order to upload a dataset, you need a Slicer Midas account. (http://slicer.kitware.com/midas3).<br />
You can create a new one directly from the module.<br />
<br />
<gallery widths="250px" heights="250px" perrow="4"><br />
Image:UploadFile_1.jpg|The module allows an user to upload the current opened Sceneviews. To upload it, click on "Display Datastore"<br />
Image:UploadFile_2.jpg|Select the Upload tab and log in. You can create a new account by clicking on "Register Here"<br />
Image:UploadFile_3.jpg|Define the Name and the Category of the Sceneviews and click on "Start the Upload". <br />
Image:UploadFile_4.jpg|The upload is complete.<br />
</gallery><br />
<br />
==Delete an uploaded dataset on the remote database==<br />
<gallery widths="250px" heights="250px" perrow="4"><br />
File:DeleteRemote_1.jpg|Go to the Sceneviews' page (see Download a dataset use case)".<br />
File:DeleteRemote_2.jpg|Authenticate using one of the "login" link<br />
File:DeleteRemote_3.jpg|If you are the owner of the Sceneviews, you will be able to click on "Delete the dataset".<br />
</gallery><br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Annotations&diff=46314Documentation/Nightly/Modules/Annotations2016-06-29T19:54:57Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
:'''Author(s)/Contributor(s):''' Nicole Aucoin (SPL, BWH), Kilian Pohl (UPenn), Daniel Haehn (UPenn), Yong Zhang (BWH), Alex Yarmarkovich (Isomics)<br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/ National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Nicole Aucoin, <email>nicole@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Most frequently used for these scenarios:<br />
*Using rulers to measure tumor diameters<br />
* Using ROIs to crop volume rendering<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
To delete multiple annotations from a list press down the Control key and left click to select annotations in the Annotations GUI, then click on the trash can to delete them.<br />
<br />
To move multiple annotations from one list to another, hold down the Shift key and left click to select a group of annotations, then while still holding down the shift key, left click on the selection to drag and drop it.<br />
<br />
To access Annotation Properties or Hierarchy Properties, click on the logo under Edit in the annotation table.<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
A list of all the panels in the interface, their features, what they mean, and how to use them. <br />
<br />
{|<br />
|[[Image:Slicer4-1-Annotations-GUI.jpeg|thumb|200px|Annotations]]<br />
|[[Image:Slicer4-Annotations-ModifyPropeties.jpeg|thumb|200px|Modify Annotation Properties]]<br />
|[[Image:Slicer4-Annotations-ModifyHierarchy.jpeg|thumb|200px|Modify Hierarchy Properties]]<br />
|[[Image:Slicer4-Annotations-Toolbar.jpeg|thumb|200px|Annotation tool bar]]<br />
|}<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* The Annotations tool bar at the top of the main Slicer window is used to add new annotations to the scene.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
=== Use the Markups module for fiducials ===<br />
<br />
'''Fiducials have been moved to the [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Markups Markups module].'''<br />
<br />
=== Add a Ruler via Python ===<br />
<br />
Use this code to programatically add a ruler to the scene:<br />
<br />
rulerNode = slicer.vtkMRMLAnnotationRulerNode()<br />
rulerNode.SetPosition1(-10,-10,-10)<br />
rulerNode.SetPosition2(10,10,10)<br />
rulerNode.Initialize(slicer.mrmlScene)<br />
<br />
=== Access to Ruler Locations from Python ===<br />
<br />
Starting from the ID of an Annotation hierarchy node that collects a group of rulers, you can get a ruler location using the following Python code:<br />
# get the first list of annotations<br />
listNodeID = "vtkMRMLAnnotationHierarchyNode2"<br />
annotationHierarchyNode = slicer.mrmlScene.GetNodeByID(listNodeID)<br />
# get the first in the list<br />
listIndex = 0<br />
annotation = annotationHierarchyNode.GetNthChildNode(listIndex).GetAssociatedNode()<br />
coords1 = [0,0,0]<br />
coords2 = [0,0,0]<br />
annotation.GetPosition1(coords1)<br />
annotation.GetPosition2(coords2)<br />
print coords1, coords2<br />
<br />
If you have the id of the ruler node, it's more direct:<br />
rulerID = "vtkMRMLAnnotationRulerNode1"<br />
ruler = slicer.mrmlScene.GetNodeByID(rulerID)<br />
coords1 = [0,0,0]<br />
coords2 = [0,0,0]<br />
ruler.GetPosition1(coords1)<br />
ruler.GetPosition2(coords2)<br />
print coords1, coords2<br />
<br />
=== Placing the GUI into Ruler or ROI Place Mode via Python ===<br />
<br />
To programatically set the mouse mode to placing rulers or ROIs use this code from Python:<br />
<br />
selectionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLSelectionNodeSingleton")<br />
# place rulers<br />
selectionNode.SetReferenceActivePlaceNodeClassName("vtkMRMLAnnotationRulerNode")<br />
# to place ROIs use the class name vtkMRMLAnnotationROINode<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
placeModePersistence = 1<br />
interactionNode.SetPlaceModePersistence(placeModePersistence)<br />
# mode 1 is Place, can also be accessed via slicer.vtkMRMLInteractionNode().Place<br />
interactionNode.SetCurrentInteractionMode(1)<br />
<br />
=== Transforms ===<br />
Individual annotations are transformable (able to be placed under a transform node), but lists are not. In order to apply a transform to a set of annotations, open the Python console (View -> Python Interactor) and use the following code. First you'll need to get the transform node MRML id from the Data module (click on Display MRML IDs), and save it to a variable:<br />
transformNodeID = "vtkMRMLLinearTransformNode5"<br />
Then get the id of the annotation hierarchy list node that holds the annotations that you wish to transform:<br />
listNodeID = "vtkMRMLAnnotationHierarchyNode3"<br />
Then use this code snippet to apply the transform to all the annotations under the hierarchy node:<br />
annotationHierarchyNode = slicer.mrmlScene.GetNodeByID(listNodeID)<br />
numNodes = annotationHierarchyNode.GetNumberOfChildrenNodes()<br />
for i in range(numNodes):<br />
annotation = annotationHierarchyNode.GetNthChildNode(i).GetAssociatedNode()<br />
annotation.SetAndObserveTransformNodeID(transformNodeID)<br />
* [[Documentation/{{documentation/version}}/Modules/Transforms#Information_for_Developers|Read more]] about transforming MRML nodes<br />
<br />
===Selection and interaction===<br />
This section indicates how to change in the GUI the mouse placing mode to start placing nodes.<br />
<br />
For the selection and interaction nodes, make sure that you access the singleton nodes already in the scene (rather than making your own) via (caveat: this call works on displayable managers, you may have to go a different route to get at the application logic):<br />
vtkMRMLApplicationLogic *mrmlAppLogic = this->GetMRMLApplicationLogic();<br />
vtkMRMLInteractionNode *inode = mrmlAppLogic->GetInteractionNode();<br />
vtkMRMLSelectionNode *snode = mrmlAppLogic->GetSelectionNode();<br />
If you can't get at the mrml application logic, you can get the nodes from the scene:<br />
vtkMRMLInteractionNode *interactionNode = vtkMRMLInteractionNode::SafeDownCast(this->GetMRMLScene()->GetNodeByID("vtkMRMLInteractionNodeSingleton"));<br />
<br />
You can then call methods on the nodes or add your own event observers as in<br />
vtkSlicerAnnotationModuleLogic::ObserveMRMLScene<br />
You can see vtkSlicerAnnotationModuleLogic::ProcessMRMLNodesEvents to see how to respond to interaction node changes, but I don't think you'll need to do that.<br />
<br />
Slicer4/Base/QTGUI/qSlicerMouseModeToolBar.cxx has a lot of the code you'll need as well, with a slightly different way of getting at the mrml app logic to access the nodes.<br />
<br />
The calls you need to make to switch into placing rulers with the mouse are:<br />
selectionNode->SetReferenceActivePlaceNodeClassName("vtkMRMLAnnotationRulerNode");<br />
interactionNode->SetCurrentInteractionMode(vtkMRMLInteractionNode::Place);<br />
If you don't set PlaceModePersistence on the interaction node, the mouse mode/current interaction mode will automatically go back to view transform after one ruler has been placed, and you just need to reset the current interaction mode for future placing (the active place node class name is persistent).<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Data&diff=46312Documentation/Nightly/Modules/Data2016-06-29T19:52:51Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}} }}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-acknowledgements}}<br />
: '''End-user advocate:''' Ron Kikinis (SPL, NA-MIC)<br />
: '''Contact:''' Julien Finet (Kitware), <email>julien.finet@kitware.com</email><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
This module is mainly for developers as a tool for debugging problems in the scene. Its main use is managing transform hierarchies.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
* Tutorial about [https://www.slicer.org/slicerWiki/index.php/Documentation/4.5/Training loading and viewing data]. <br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
{|<br />
|valign="top"|{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
|valign="top"|[[Image:DataModule-4.3.png|550px|thumb|Data module]]<br />
|}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Volumes&diff=46273Documentation/Nightly/Modules/Volumes2016-06-29T15:05:48Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}} }}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-acknowledgements}}<br />
: '''Contact:''' Steve Pieper, <email>pieper@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
*Use the SampleData module to load the MR Head volume. You can control the scalar display options using this module.<br />
*Use the SampleData module to download the DTI Head volume. A tensor-specific display interface will allow you to display a variety of scalar modes and display glyphs.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|How to Use}}<br />
*[[Documentation/{{documentation/version}}/FAQ#How_to_overlay_2_volumes.3F|How to overlay two volumes]]<br />
*[[Documentation/{{documentation/version}}/FAQ#How_to_load_data_from_a_sequence_of_jpg_files.3F|How to load data from a sequence of JPG files]] <br />
*When loading a 2D image(jpg, png, tiff ...), the window level(colors) might be skewed. To see the original colors switch the ''Window Level'' combobox to '''Manual Min/Max''', then set ''Min'' to '''0''' and ''Max'' to '''255'''.<br />
**Also use the Spacing field to enter the volumetric pixel sizes of the image data.<br />
**While you can display color volumes as slices, most slicer modules do not work natively with RGB or RGBA data, the new [http://slicer.org/doc/html/VectorToScalarVolume_8py_source.html VectorToScalarVolume] converter can be used to create a volume for use, for example, with the Editor. (added post-4.1).<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
* Tutorial about [https://www.slicer.org/slicerWiki/images/5/51/3DDataLoadingandVisualization_Slicer4.5_SoniaPujol.pdf loading and viewing data]. <br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
{|<br />
| rowspan=2 | {{documentation/{{documentation/version}}/module-parametersdescription}}<br />
| [[Image:VolumesModule-2011-11-25.png|400px]] Greyscale volume<br />
|-<br />
| [[image:VolumesModule-LabelMapDisplay-2015-05-05.png|400px]] Label map volume display<br />
|}<br />
<br />
<br />
{|<br />
|[[Image:VolumesModuleWindowLevelSliderPopup.gif|frame|On mouse over, a second popup appears under the window level double slider. Large dynamic range can be controlled using the slider. Moving the handles of the popup double slider changes the whole range of the window level double slider.]]<br />
|}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|How to}}<br />
<br />
* '''Convert scalar volume to labelmap'''<br />
:# Load it as labelmap in the first place: In the 'Add data into the scene' dialog check 'Show Options' and enable the option named 'LabelMap'. When OK is clicked, the volume is loaded as a labelmap.<br />
:# Convert to labelmap using Cast Scalar Volume module. Select scalar volume as input, and create output by selecting 'Create new LabelMapVolume [as...]'. Output type is typically UnsignedChar.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* Each displayable type has a similar visualization control interface (for example, the Models, Tractography, Annotations...):<br />
** [[Documentation/{{documentation/version}}/Modules/Models|Models]]: control the models/surfaces<br />
** [[Documentation/{{documentation/version}}/Modules/Annotations|Annotations]]: control the annotations<br />
* [[Documentation/{{documentation/version}}/Modules/VolumeRendering|Volume Rendering]]: volume render in the 3D view(s).<br />
* Extensions<br />
** [[Documentation/{{documentation/version}}/Modules/ImageMaker|Image Maker]]: create a volume from scratch.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
===How to create a volume node from scratch? ===<br />
You need to create a vtkImageData, a vtkMRMLScalarVolumeNode and a vtkMRMLScalarVolumeDisplayNode.<br />
<br />
In C++:<br />
<pre><br />
vtkNew<vtkImageData> imageData;<br />
imageData->SetDimensions(10,10,10); // image size<br />
imageData->AllocateScalars(VTK_UNSIGNED_CHAR, 1); // image type and number of components<br />
// initialize the pixels here<br />
<br />
vtkNew<vtkMRMLScalarVolumeNode> volumeNode;<br />
volumeNode->SetAndObserveImageData(imageData);<br />
volumeNode->SetOrigin( -10., -10., -10.);<br />
volumeNode->SetSpacing( 2., 2., 2. );<br />
mrmlScene->AddNode( volumeNode.GetPointer() );<br />
<br />
volumeNode->CreateDefaultDisplayNodes()<br />
</pre><br />
<br />
In Python:<br />
<pre><br />
imageData = vtk.vtkImageData()<br />
imageData.SetDimensions(10,10,10) # image size<br />
imageData.AllocateScalars(vtk.VTK_UNSIGNED_CHAR, 1) # image type and number of components<br />
# initialize the pixels here<br />
volumeNode = slicer.vtkMRMLScalarVolumeNode()<br />
volumeNode.SetAndObserveImageData(imageData)<br />
volumeNode = slicer.mrmlScene.AddNode(volumeNode)<br />
volumeNode.CreateDefaultDisplayNodes()<br />
</pre><br />
<br />
Note that the origin and spacing must be set on the volume node instead of the image data.<br />
The [[Documentation/{{documentation/version}}/Modules/ImageMaker|Image Maker]] extension module creates a volume from scratch.<br />
<br />
===IO===<br />
[[Documentation/{{documentation/version}}/SlicerApplication/SupportedDataFormat|Here]] is the list of supported file formats.<br />
<br />
Important classes:<br />
[http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/qSlicerVolumesIO.h?view=markup qSlicerVolumesIO].[h/cxx]]<br />
[http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.h?view=markup vtkSlicerVolumesLogic].[h/cxx]<br />
[http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Libs/MRML/Core/vtkMRMLVolumeArchetypeStorageNode.h?view=markup vtkMRMLVolumeArchetypeStorageNode].[h/cxx]<br />
<br />
The following options can be passed to load volumes programmatically:<br />
{|<br />
|-<br />
! Option<br />
! Type<br />
! Default<br />
! Description<br />
|-<br />
| labelmap<br />
| bool<br />
| false<br />
| Mark the volume a label map<br />
|-<br />
| center<br />
| bool<br />
| false<br />
| Discard file origin information and move the center of the volume in 0,0,0<br />
|-<br />
| singleFile<br />
| bool<br />
| false<br />
| Load the file as part of a series of 2D files that represent a 3D volume<br />
|-<br />
| autoWindowLevel<br />
| bool<br />
| true<br />
| Automatically compute the window level based on the volume pixel intensities<br />
|-<br />
| discardOrientation<br />
| bool<br />
| false<br />
| Discard file orientation information<br />
|}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/ViewControllers&diff=46265Documentation/Nightly/Modules/ViewControllers2016-06-29T14:34:35Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
:'''Author(s)/Contributor(s):''' Jim Miller (GE), Jean-Christophe Fillion-Robin (Kitware), Wendy Plesniak (BWH), Steve Pieper (Isomics), Ron Kikinis (BWH)<br><br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/ National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Jim Miller, <email>millerjv@ge.com</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|ge}}|{{collaborator|longname|ge}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
[[Image:ViewControllers-2011-11-25.png|thumb|right|280px|View Controllers]] <br />
The View Controllers module provides access to nodes controlling multiple views within a single panel. A view is a display of data packed within layout. Slice Views and 3D Views are two types of views that can appear in a layout and whose controls can also be accessed from the View Controllers module. Each type of view has a separate section of the View Controllers panel. For example, the Slice Controllers are grouped together, followed by the 3D Controllers. An extra panel allows an alternative control over a Slice View.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Most frequently used for these scenarios:<br />
<br />
* Controlling Slice Views while maximizing the screen real estate for images with the view.<br />
* Controlling 3D Views without having to expand the controller within the view.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
[[Image:ViewControllers.png|thumb|right|280px|View Controllers]]<br />
* '''Slice Controllers:''' Slice Controllers for each of the Slice Views visible in the current layout. This is the same controller that is accessible from the bar at the top of a Slice View. It provides access to select the content (foreground, background, label) as well as control reformation, linking, visibility in the 3D view, lightbox, etc.<br />
* '''3D Controllers:''' Controllers for each 3D View. This is the same controller that is accessible from the bar at the top of a 3D View. It provides access to the view direction, zooming, spinning, rocking, etc.<br />
* '''Slice Information:''' An alternative panel to control geometric parameters of a Slice View (field of view, lightbox, slice spacing).<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* Slice Controller on the Slice View<br />
* 3D Controller on the 3D View<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SceneViews&diff=46264Documentation/Nightly/Modules/SceneViews2016-06-29T14:27:15Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}} }}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-acknowledgements}}<br><br />
: '''Contact:''' Nicole Aucoin, <email>nicole@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
|{{collaborator|logo|upenn}}|{{collaborator|longname|upenn}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
'''WARNING''': The scene views are designed to be different views of the same set of data. Adding or removing data (volumes, models etc) so that different scene views have different sets of data (MRML nodes) in them will result in unexpected behaviour. The recommended way of working with scene views is to load all of your data first, then to create scene views by hiding or showing the different elements. You can easily toggle the visibility of all of the models in the scene using the Models module, so you can use that to turn them all off and then selectively show the ones relevant to your scene view.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Most frequently used to:<br />
<br />
*Set up a series of predefined starting points for looking at portions of your data in detail. <br />
**For example, you may have one overview scene which shows an external view of the body along with interior views with the skin surface turned off and slice planes visible to highlight a tumor location. <br />
* Compare the output of algorithms.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|How to Use}}<br />
<br />
<gallery widths=300px heights=250px class="center"><br />
File:Slicer44-SceneViews-2014-11-17.jpeg<br />
File:Slicer44-ScreenSnapshot.jpeg |Click on the camera to create a new scene view. It pops up a screen capture window that allows you to associate an image with the scene view. You can choose to save an image of the full layout, just the 3D view or just one of the slice views. You can also add a description and change the name.<br />
File:Slicer44-SceneViewGUI.jpeg| As scene views are saved, they appear in the Create and Edit box and the count is incremented next to the camera. Click on the image thumbnail or the description to edit the image, name, description. You can delete a scene view by pressing the garbage can button. <br />
File:Slicer4CaptureToolbar.png | You can also save and restore scene views and screen snapshots from the Capture toolbar.<br />
</gallery><br />
<br />
The scene views are saved in the MRML file, via the File->Save menu.<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
A list of all the panels in the interface, their features, what they mean, and how to use them. <br />
<br />
<!--<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
--><br />
<br />
[[File:Slicer44-SceneViewGUI.jpeg|thumb|200px|right|Scene views module]]<br />
'''Create and Edit Panel'''<br />
*Create a 3D Slicer Scene View<br />
**Click on the camera to create a new scene view<br />
*Delete selected view<br />
**Click on the garbage can button to delete the scene view<br />
*Edit view<br />
**Click on the thumbnail of the scene view to edit it (change the name, description)<br />
**Restore<br />
***Click on the green arrow button to restore this scene view, making it the currently active scene<br />
**Name<br />
***The short name given to this scene view.<br />
**Description<br />
***Some descriptive text about this scene view. Double click to edit it.<br />
<br />
<br />
<br />
[[File:Slicer5-SceneViews-PETCT-New.jpeg|thumb|200px|right|New scene view]]<br />
'''3D Slicer SceneView New Dialog'''<br />
*Name<br />
**Edit the name of the scene view here<br />
* Thumbnail and layout type: click on a radio button to update the screen shot image<br />
**Full Layout: captures the 3D window and all slice views<br />
**3D View: captures just the 3D view<br />
**Red Slice View: captures just the red 2D slice<br />
**Yellow Slice View: captures just the yellow 2D slice<br />
**Green Slice View: captures just the green 2D slice<br />
* Description<br />
**Edit the description of the scene view<br />
<br />
<br />
<br />
[[File:Slicer4-SceneViews-PETCT.jpeg|right|thumb|200px|Edit scene view]]<br />
'''3D Slicer SceneView Edit Dialog'''<br />
*Name<br />
**Edit the name of the scene view here<br />
* Description<br />
**Edit the description of the scene view<br />
* Thumbnail and layout type are not editable<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* The Capture tool bar has similar functionality.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Models&diff=46261Documentation/Nightly/Modules/Models2016-06-28T20:00:05Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}} }}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-acknowledgements}}<br />
:'''Contact:''' Julien Finet, <email>julien.finet@kitware.com</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
{|<br />
[[File:Slicer43-Models-KneeAtlas.jpeg|right|300px|Knee Atlas Models]]<br />
* Manipulating the appearance of the surface models that are part of anatomical atlases, for example one found in the [http://www.slicer.org/pages/Special:PubDB_View?dspaceid=1265 SPL/PNL Brain Atlas] or the [http://www.slicer.org/publications/item/view/1953 SPL Knee Atlas].<br />
**turning visibility on or off for individual structure (e.g. turn the skin off)<br />
**change the color, opacity, and "shininess" of a structure (e.g. make the skin appear semitransparent)<br />
**drag and drop interface to organize models into hierarchical groups (e.g. lateral ventricles, third and fourth ventricles of the brain under the name ventricles of the brain). <br />
***these groups can be turned on and off by manipulating the parent.<br />
* Adjusting the appearance of surface models generated from the ModelMaker module<br />
|}<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
* Tutorial about [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.5/Training#Slicer4_Data_Loading_and_3D_Visualization loading and viewing data]. <br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
A list of all the panels in the interface, their features, what they mean, and how to use them. <br />
{|<br />
|-<br />
| [[File:Slicer43-Models-GUI.jpeg|thumb|200px]]<br />
| [[File:Slicer43-Models-SceneHierarchy.jpeg|thumb|200px|Model Hierarchy]]<br />
| [[File:Slicer43-Models-Information.jpeg|thumb|200px|Model Information]]<br />
| [[File:QSlicerModelsModuleWidget-Display.png|thumb|200px|Model Display Properties]]<br />
| [[File:Slicer4-Models-Clipping.jpeg|thumb|200px|Model Clipping Properties]]<br />
|}<br />
<br />
{|<br />
|valign="top"|{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
|valign="top"|[[File:Slicer43-Models-GUI.jpeg|thumb|550px|[[Documentation/{{documentation/version}}/Modules/Models|Models]] module GUI]]<br />
|}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* The [[Documentation/{{documentation/version}}/Modules/Annotations|Annotations]] module uses geometry to mark locations and so has similar functionality to the models module.<br />
* The [[Documentation/{{documentation/version}}/Modules/ProbeVolumeWithModel|Probe Volume With Model]] module allows a user to apply a scalar overlay to a model by sampling a volume.<br />
* The [[Documentation/{{documentation/version}}/Modules/MergeModels|Merge Models]] module will allow you to create a single model from two models<br />
* The [[Documentation/{{documentation/version}}/Modules/ModelMaker|Model Maker]] module will allow you to create model(s) from a labelmap<br />
* The [[Documentation/{{documentation/version}}/Modules/GrayscaleModelMaker|Grayscale Model Maker]] module will allow you to create a model from an image<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
===Create a model node with a polydata===<br />
This solution works when you have a polydata that you want to render in the 3D view (and potentially in the 2D views by representing the intersection between the polydata and the view slice).<br />
<br />
{|<br />
! Recommended: Using Models [[Documentation/{{documentation/version}}/Developers/Tutorials/CreateLoadableModule#Dependency_between_modules|module dependency]]<br />
! Advanced: Prone to obsolescence, errors and memory leaks<br />
|-<br />
|valign="top"|<br />
vtkSlicerModelsLogic* modelsLogic = <br />
vtkSlicerModelsLogic::SafeDownCast(modelsModule->logic());<br />
vtkMRMLModelNode* modelNode =<br />
modelsLogic->AddModel(polyData /*or polyDataAlgorithm->GetOutput()*/);<br />
|<br />
vtkNew<vtkMRMLModelNode> modelNode;<br />
modelNode->SetAndObservePolyData(polyData /*or polyDataAlgorithm->GetOutput()*/);<br />
mrmlScene->AddNode(modelNode.GetPointer());<br />
<br />
vtkNew<vtkMRMLModelDisplayNode> modelDisplayNode;<br />
mrmlScene->AddNode(modelDisplayNode.GetPointer());<br />
modelNode->SetAndObserveDisplayNodeID(modelDisplayNode->GetID());<br />
|}<br />
<br />
===How to display a model node into a specific view ?===<br />
See [http://slicer.org/doc/html/classvtkMRMLDisplayNode.html#a0540629027a1d1e5a1a8ce50d2f5b7b4 vtkMRMLDisplayNode::ViewNodeIDs]<br />
<br />
===Multiple models===<br />
<br />
It's possible to have multiple models combined into one model and have each shape assigned different color values, but it requires either using Merge Models to merge the shapes into one file and using python to create a scalar overlay to assign values to each vertex (assuming the user can determine which vertex belongs to which shape), or using Paraview, as per [http://slicer-users.65878.n3.nabble.com/saving-multiple-colors-Models-within-one-STL-or-VTK-tp3974004p3974701.html Andras Lasso]:<br />
<br />
Merge multiple STL files into a single colored VTK file in Paraview:<br />
<br />
*Load all the models<br />
*Assign a constant scalar to the points by using the Calculator filter (use a different constant for each model, e.g., 1, 2, 3, 4, ...)<br />
*Merge the Calculator outputs with the Append Geometry filter<br />
*Save the Append Geometry filter output with File / Save Data / File type VTK or VTP (download the sample ParaView state file from [http://dl.dropbox.com/u/1528749/SlicerHelp/merge.pvsm here])<br />
<br />
Then in Slicer you can load the model, open the Models module, open Scalars, enable "Visible", select "Result" as active scalar, select a color table.<br />
<br />
===Missing model hierarchies in a loaded scene===<br />
<br />
There was a change made in how the Models GUI displays model hierarchies, moving to respecting a hide flag on the nodes. If you have an older scene (written before 2013) loaded into a newer Slicer and the Models GUI isn't showing the model hierarchy that you know is in the scene, you can use this code snippet in the Python Interactor to update the flags. You may need to save the scene and reopen it in order for the GUI to show the updated view.<br />
<br />
numNodes = slicer.mrmlScene.GetNumberOfNodesByClass("vtkMRMLModelHierarchyNode")<br />
for h in range(numNodes):<br />
mh = slicer.mrmlScene.GetNthNodeByClass(h, "vtkMRMLModelHierarchyNode")<br />
if mh.GetNumberOfChildrenNodes() > 0:<br />
print "Showing", mh.GetName()<br />
mh.SetHideFromEditors(0)<br />
if mh.GetNumberOfChildrenNodes() == 0 and mh.GetAssociatedNodeID() != None:<br />
print "Hiding", mh.GetName()<br />
mh.SetHideFromEditors(1)<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Markups&diff=46260Documentation/Nightly/Modules/Markups2016-06-28T19:46:13Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the [http://www.na-mic.org/ NA-MIC website].<br><br />
Author: Nicole Aucoin, SPL, BWH<br><br />
Contact: Nicole Aucoin, <email>nicole@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This module is used to manage markups in Slicer. <br />
<br />
It is based on the functionality in the Slicer 3.6 Fiducials module, with elements from the Slicer 4.2 Annotations module. <br />
<br />
Currently, only fiducials are supported.<br />
<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
Development history can be found in the [[documentation/{{documentation/version}}/Modules/{{documentation/modulename}}#References|references]].<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
<br />
This module allows you to add new markups, edit markups in a list, delete markups and modify display properties of markups.<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|How To Use}}<br />
<br />
<gallery widths=300px heights=250px class="center"><br />
File:Markups-ModifyList.png | 1. Select the active list, set visibility and lock flags, set uniform scale.<br />
File:Markups-JumpSlices-44.png | 2. Jump the 2D slice view windows to the coordinates of the highlighted markup.<br />
File:Markups-ModifyMarkupsInList.png | 3. Modify Markups in list: toggle visibility, selected, and lock flags, delete.<br />
File:Markups-Table.png | 4. Table showing the fiducials in the active Markups list<br />
File:Markups-Advanced.png | 5. Advanced panel: move markups up or down, add a markup, name format, convert annotation fiducials, display properties for the list of markups<br />
File:Markups-DisplayProperties.png | 6. Display properties, inside the Advanced panel, there are 2D projection settings.<br />
File:Markups-MouseToolbar.png | 7. Place Markup fiducials by setting the Mouse mode in the tool bar<br />
</gallery><br />
<br />
'''Note:''' Markups can be passed to command line modules (CLIs) using the <pre>--point</pre> or <pre>--pointfile</pre> argument. <br />
<br />
'''Note: '''The Mouse mode tool bar can be used to place new markups by positioning the mouse and left clicking in the viewers. Once you are in Place mode and placing Markups fiducials, you can use the 'p' key to place a new fiducial while the Markups GUI is open. You can also use a right button click to stop placing fiducials when in persistent mode.<br />
<br />
'''Note: '''You can place fiducials and use the GUI to jump slices or the 3D view to those locations. If you select fiducials in the table, you can right click to get the summed linear distance between their locations.<br />
<br />
'''Note: '''The Markups module can convert Annotation fiducials into Markups fiducials, and will offer the user the option of doing it automatically when the Markups GUI is entered. There is also a manual button under the Advanced tab.<br />
<br />
<br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
<br />
*[[Documentation/Nightly/Modules/Annotations | Annotations]] module is similar, and will be deprecated as the functionality is moved to the Markups module.<br />
*[https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L303 Endoscopy module] uses fiducials<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Summer_Project_Week:MarkupsModuleSummer2013 Summer 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Project_Week:MarkupsModule Winter 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2012_Summer_Project_Week:AnnotationModule Summer 2012 Project Week project page]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
== Python ==<br />
<br />
=== Open the Markups Module ===<br />
<br />
You can set the Markups module gui to be the current module gui using this command:<br />
<br />
slicer.util.mainWindow().moduleSelector().selectModule('Markups')<br />
<br />
=== Load From File ===<br />
<br />
Markups fiducials can be loaded from file:<br />
<br />
slicer.util.loadMarkupsFiducialList('/path/to/list/F.fcsv')<br />
<br />
=== Adding Fiducials Programatically ===<br />
<br />
Markups fiducials can be added to the currently active list from the python console by using the following module logic command:<br />
<br />
slicer.modules.markups.logic().AddFiducial()<br />
<br />
The command with no arguments will place a new fiducial at the origin. You can also pass it an initial location:<br />
<br />
slicer.modules.markups.logic().AddFiducial(1.0, -2.0, 3.3)<br />
<br />
=== Adding Fiducials via Mouse Clicks ===<br />
<br />
You can also set the mouse mode into Markups fiducial placement by calling:<br />
<br />
placeModePersistence = 1<br />
slicer.modules.markups.logic().StartPlaceMode(placeModePersistence)<br />
<br />
A lower level way to do this is via the selection and interaction nodes:<br />
selectionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLSelectionNodeSingleton")<br />
selectionNode.SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode")<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
placeModePersistence = 1<br />
interactionNode.SetPlaceModePersistence(placeModePersistence)<br />
# mode 1 is Place, can also be accessed via slicer.vtkMRMLInteractionNode().Place<br />
interactionNode.SetCurrentInteractionMode(1)<br />
<br />
To switch back to view transform once you're done placing fiducials:<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
interactionNode.SwitchToViewTransformMode()<br />
# also turn off place mode persistence if required<br />
interactionNode.SetPlaceModePersistence(0)<br />
<br />
=== Access to Fiducial Properties ===<br />
<br />
Each vtkMRMLMarkupsFiducialNode has a vector of points in it which can be accessed from python:<br />
<br />
fidNode = getNode("vtkMRMLMarkupsFiducialNode1")<br />
n = fidNode.AddFiducial(4.0, 5.5, -6.0)<br />
fidNode.SetNthFiducialLabel(n, "new label")<br />
# each markup is given a unique id which can be accessed from the superclass level<br />
id1 = fidNode.GetNthMarkupID(n)<br />
# manually set the position<br />
fidNode.SetNthFiducialPosition(n, 6.0, 7.0, 8.0)<br />
# set the label<br />
fidNode.SetNthFiducialLabel(n, "New label")<br />
# set the selected flag, only selected = 1 fiducials will be passed to CLIs<br />
fidNode.SetNthFiducialSelected(n, 1)<br />
# set the visibility flag<br />
fidNode.SetNthFiducialVisibility(n, 0) <br />
<br />
You can loop over the fiducials in a list and get the coordinates:<br />
<br />
fidList = slicer.util.getNode('F')<br />
numFids = fidList.GetNumberOfFiducials()<br />
for i in range(numFids):<br />
ras = [0,0,0]<br />
fidList.GetNthFiducialPosition(i,ras)<br />
# the world position is the RAS position with any transform matrices applied<br />
world = [0,0,0,0]<br />
fidList.GetNthFiducialWorldCoordinates(0,world)<br />
print i,": RAS =",ras,", world =",world<br />
<br />
You can also look at the sample code in the [https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L287 Endoscopy module] to see how python is used to access fiducials from a scripted module.<br />
<br />
=== VTK Widget access ===<br />
<br />
The Markups 3D fiducial displayable manager can be accessed from python allowing debugging of the vtkSeedWidget:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
td = lm.threeDWidget(0)<br />
ms = vtk.vtkCollection()<br />
td.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()): <br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager3D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep2 = seedRepresentation.GetHandleRepresentation(2)<br />
print handleRep2.GetDisplayPosition()<br />
print handleRep2.GetWorldPosition()<br />
<br />
<br />
The Markups 2D fiducial displayable manager can be accessed from python as well to debug the seed widget in 2D. For the Red slice viewer:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
redWidget = lm.sliceWidget("Red")<br />
redView = redWidget.sliceView()<br />
ms = vtk.vtkCollection()<br />
redView.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()):<br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager2D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep = seedRepresentation.GetHandleRepresentation(0)<br />
print handleRep.GetDisplayPosition()<br />
<br />
== C++ ==<br />
<br />
===Selection and Interaction===<br />
<br />
For the selection and interaction nodes, make sure that you access the singleton nodes already in the scene (rather than making your own) via (caveat: this call works on displayable managers, you may have to go a different route to get at the application logic):<br />
vtkMRMLApplicationLogic *mrmlAppLogic = this->GetMRMLApplicationLogic();<br />
vtkMRMLInteractionNode *inode = mrmlAppLogic->GetInteractionNode();<br />
vtkMRMLSelectionNode *snode = mrmlAppLogic->GetSelectionNode();<br />
If you can't get at the mrml application logic, you can get the nodes from the scene:<br />
vtkMRMLInteractionNode *interactionNode = vtkMRMLInteractionNode::SafeDownCast(this->GetMRMLScene()->GetNodeByID("vtkMRMLInteractionNodeSingleton"));<br />
<br />
You can then call methods on the nodes or add your own event observers as in<br />
vtkSlicerMarkupsModuleLogic::ObserveMRMLScene<br />
You can see vtkSlicerMarkupsModuleLogic::ProcessMRMLNodesEvents to see how to respond to interaction node changes.<br />
<br />
Slicer4/Base/QTGUI/qSlicerMouseModeToolBar.cxx has a lot of the code you'll need as well, with a slightly different way of getting at the mrml app logic to access the nodes.<br />
<br />
The calls you need to make to switch into placing fiducials with the mouse are:<br />
selectionNode->SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode");<br />
interactionNode->SetCurrentInteractionMode(vtkMRMLInteractionNode::Place);<br />
If you don't set PlaceModePersistence on the interaction node to 1, the mouse mode/current interaction mode will automatically go back to view transform after one fiducial has been placed, and you just need to reset the current interaction mode for future placing (the active place node class name and ID are persistent).<br />
<br />
=== Programmatic Access to Fiducials ===<br />
<br />
This section explains how to access fiducial nodes added into the scene by the user.<br />
<br />
In your module's Logic class, overwrite SetMRMLSceneInternal to observe the NodeAddedEvent of the scene:<br />
void vtkSlicerMYMODULEModuleLogic::SetMRMLSceneInternal(vtkMRMLScene * newScene)<br />
{<br />
vtkNew<vtkIntArray> events;<br />
events->InsertNextValue(vtkMRMLScene::NodeAddedEvent);<br />
// Optionally you can add more events here, <br />
// such as vtkMRMLScene::NodeRemovedEvent<br />
this->SetAndObserveMRMLSceneEventsInternal(newScene, events.GetPointer());<br />
}<br />
Via the set and observe mrml scene macro, anytime a node is added into the scene, it will trigger the base Logic class method<br />
[http://slicer.org/doc/html/classvtkMRMLAbstractLogic.html#a51fdf00ecfc18c1a1465d4bccb789ef1 vtkMRMLAbstractLogic::ProcessMRMLNodesEvents] which calls the virtual method <code>vtkMRMLAbstractLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* node)</code><br />
Reimplement that method in your logic class:<br />
void vtkSlicerMYMODULEModuleLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* addedNode)<br />
{<br />
vtkMRMLMarkupsFiducialNode* fidNode =<br />
vtkMRMLMarkupsFiducialNode::SafeDownCast(addedNode);<br />
if (fidNode)<br />
{<br />
// here you write what you need to do when a <br />
// fiducial node is added into the scene<br />
}<br />
}<br />
<br />
=== File Format===<br />
<br />
The Markups Fiducial storage node uses a comma separated value file to store the fiducials on disk. The format is:<br />
<br />
A leading comment line giving the Slicer version number:<br />
# Markups fiducial file version = 4.5<br />
A comment line giving the coordinate system, RAS = 0, LPS = 1, IJK = 2 (IJK is currently not supported, RAS is printed instead)<br />
# CoordinateSystem = 0<br />
A comment line explaining the fields in the csv<br />
# columns = id,x,y,z,ow,ox,oy,oz,vis,sel,lock,label,desc,associatedNodeID<br />
Then comes the fiducials, one per line, for example:<br />
vtkMRMLMarkupsFiducialNode_0,1.29,-40.18,60.15,0,0,0,1,1,1,0,F-1,,<br />
*id = a string giving a unique id for this fiducial, usually based on the class name<br />
*x,y,z = the floating point coordinate of the fiducial point<br />
*ow,ox,oy,oz = the orientation quaternion of this fiducial, angle and axis, default 0,0,0,1 (or 0,0,0,0,0,0,1.0)<br />
*vis = the visibility flag for this fiducial, 0 or 1, default 1<br />
*sel = the selected flag for this fiducial, 0 or 1, default 1<br />
*lock = the locked flag for this fiducial, 0 or 1, default 0<br />
*label = the name for this fiducial, displayed beside the glyph, with quotes around it if there is a comma in the field<br />
*desc = a string description for this fiducial, optional<br />
*associatedNodeID = an id of a node in the scene with which the fiducial is associated, for example the volume or model on which the fiducial was placed, optional<br />
<br />
The file can be parsed using stringstream and getline:<br />
<br />
std::fstream fstr;<br />
fstr.open(fileName.c_str(), std::fstream::in);<br />
char line[1024];<br />
while (fstr.good())<br />
{<br />
fstr.getline(line, 1024);<br />
std::stringstream ss(line);<br />
std::string component;<br />
getline(ss, component, ',');<br />
[...]<br />
}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Markups&diff=46259Documentation/Nightly/Modules/Markups2016-06-28T19:20:27Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the [http://www.na-mic.org/ NA-MIC website].<br><br />
Author: Nicole Aucoin, SPL, BWH<br><br />
Contact: Nicole Aucoin, <email>nicole@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This module is used to manage markups in Slicer. <br />
<br />
It is based on the functionality in the Slicer 3.6 Fiducials module, with elements from the Slicer 4.2 Annotations module. <br />
<br />
Currently, only fiducials are supported.<br />
<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
Development history can be found in the [[documentation/{{documentation/version}}/Modules/{{documentation/modulename}}#References|references]].<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
<br />
This module allows you to add new markups, edit markups in a list, delete markups and modify display properties of markups.<br />
<br />
Markups can be passed to command line modules (CLIs) using the <pre>--point</pre> or <pre>--pointfile</pre> argument. <br />
<br />
The Mouse mode tool bar can be used to place new markups by positioning the mouse and left clicking in the viewers. Once you are in Place mode and placing Markups fiducials, you can use the 'p' key to place a new fiducial while the Markups GUI is open. You can also use a right button click to stop placing fiducials when in persistent mode.<br />
<br />
You can place fiducials and use the GUI to jump slices or the 3D view to those locations. If you select fiducials in the table, you can right click to get the summed linear distance between their locations.<br />
<br />
The Markups module can convert Annotation fiducials into Markups fiducials, and will offer the user the option of doing it automatically when the Markups GUI is entered. There is also a manual button under the Advanced tab.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
<br />
== How to Use ==<br />
<br />
<gallery widths=300px heights=250px class="center"><br />
File:Markups-ModifyList.png | 1. Select the active list, set visibility and lock flags, set uniform scale.<br />
File:Markups-JumpSlices-44.png | 2. Jump the 2D slice view windows to the coordinates of the highlighted markup.<br />
File:Markups-ModifyMarkupsInList.png | 3. Modify Markups in list: toggle visibility, selected, and lock flags, delete.<br />
File:Markups-Table.png | 4. Table showing the fiducials in the active Markups list<br />
File:Markups-Advanced.png | 5. Advanced panel: move markups up or down, add a markup, name format, convert annotation fiducials, display properties for the list of markups<br />
File:Markups-DisplayProperties.png | 6. Display properties, inside the Advanced panel, there are 2D projection settings.<br />
File:Markups-MouseToolbar.png | 7. Place Markup fiducials by setting the Mouse mode in the tool bar<br />
</gallery><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
<br />
*[[Documentation/Nightly/Modules/Annotations | Annotations]] module is similar, and will be deprecated as the functionality is moved to the Markups module.<br />
*[https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L303 Endoscopy module] uses fiducials<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Summer_Project_Week:MarkupsModuleSummer2013 Summer 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Project_Week:MarkupsModule Winter 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2012_Summer_Project_Week:AnnotationModule Summer 2012 Project Week project page]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
== Python ==<br />
<br />
=== Open the Markups Module ===<br />
<br />
You can set the Markups module gui to be the current module gui using this command:<br />
<br />
slicer.util.mainWindow().moduleSelector().selectModule('Markups')<br />
<br />
=== Load From File ===<br />
<br />
Markups fiducials can be loaded from file:<br />
<br />
slicer.util.loadMarkupsFiducialList('/path/to/list/F.fcsv')<br />
<br />
=== Adding Fiducials Programatically ===<br />
<br />
Markups fiducials can be added to the currently active list from the python console by using the following module logic command:<br />
<br />
slicer.modules.markups.logic().AddFiducial()<br />
<br />
The command with no arguments will place a new fiducial at the origin. You can also pass it an initial location:<br />
<br />
slicer.modules.markups.logic().AddFiducial(1.0, -2.0, 3.3)<br />
<br />
=== Adding Fiducials via Mouse Clicks ===<br />
<br />
You can also set the mouse mode into Markups fiducial placement by calling:<br />
<br />
placeModePersistence = 1<br />
slicer.modules.markups.logic().StartPlaceMode(placeModePersistence)<br />
<br />
A lower level way to do this is via the selection and interaction nodes:<br />
selectionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLSelectionNodeSingleton")<br />
selectionNode.SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode")<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
placeModePersistence = 1<br />
interactionNode.SetPlaceModePersistence(placeModePersistence)<br />
# mode 1 is Place, can also be accessed via slicer.vtkMRMLInteractionNode().Place<br />
interactionNode.SetCurrentInteractionMode(1)<br />
<br />
To switch back to view transform once you're done placing fiducials:<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
interactionNode.SwitchToViewTransformMode()<br />
# also turn off place mode persistence if required<br />
interactionNode.SetPlaceModePersistence(0)<br />
<br />
=== Access to Fiducial Properties ===<br />
<br />
Each vtkMRMLMarkupsFiducialNode has a vector of points in it which can be accessed from python:<br />
<br />
fidNode = getNode("vtkMRMLMarkupsFiducialNode1")<br />
n = fidNode.AddFiducial(4.0, 5.5, -6.0)<br />
fidNode.SetNthFiducialLabel(n, "new label")<br />
# each markup is given a unique id which can be accessed from the superclass level<br />
id1 = fidNode.GetNthMarkupID(n)<br />
# manually set the position<br />
fidNode.SetNthFiducialPosition(n, 6.0, 7.0, 8.0)<br />
# set the label<br />
fidNode.SetNthFiducialLabel(n, "New label")<br />
# set the selected flag, only selected = 1 fiducials will be passed to CLIs<br />
fidNode.SetNthFiducialSelected(n, 1)<br />
# set the visibility flag<br />
fidNode.SetNthFiducialVisibility(n, 0) <br />
<br />
You can loop over the fiducials in a list and get the coordinates:<br />
<br />
fidList = slicer.util.getNode('F')<br />
numFids = fidList.GetNumberOfFiducials()<br />
for i in range(numFids):<br />
ras = [0,0,0]<br />
fidList.GetNthFiducialPosition(i,ras)<br />
# the world position is the RAS position with any transform matrices applied<br />
world = [0,0,0,0]<br />
fidList.GetNthFiducialWorldCoordinates(0,world)<br />
print i,": RAS =",ras,", world =",world<br />
<br />
You can also look at the sample code in the [https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L287 Endoscopy module] to see how python is used to access fiducials from a scripted module.<br />
<br />
=== VTK Widget access ===<br />
<br />
The Markups 3D fiducial displayable manager can be accessed from python allowing debugging of the vtkSeedWidget:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
td = lm.threeDWidget(0)<br />
ms = vtk.vtkCollection()<br />
td.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()): <br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager3D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep2 = seedRepresentation.GetHandleRepresentation(2)<br />
print handleRep2.GetDisplayPosition()<br />
print handleRep2.GetWorldPosition()<br />
<br />
<br />
The Markups 2D fiducial displayable manager can be accessed from python as well to debug the seed widget in 2D. For the Red slice viewer:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
redWidget = lm.sliceWidget("Red")<br />
redView = redWidget.sliceView()<br />
ms = vtk.vtkCollection()<br />
redView.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()):<br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager2D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep = seedRepresentation.GetHandleRepresentation(0)<br />
print handleRep.GetDisplayPosition()<br />
<br />
== C++ ==<br />
<br />
===Selection and Interaction===<br />
<br />
For the selection and interaction nodes, make sure that you access the singleton nodes already in the scene (rather than making your own) via (caveat: this call works on displayable managers, you may have to go a different route to get at the application logic):<br />
vtkMRMLApplicationLogic *mrmlAppLogic = this->GetMRMLApplicationLogic();<br />
vtkMRMLInteractionNode *inode = mrmlAppLogic->GetInteractionNode();<br />
vtkMRMLSelectionNode *snode = mrmlAppLogic->GetSelectionNode();<br />
If you can't get at the mrml application logic, you can get the nodes from the scene:<br />
vtkMRMLInteractionNode *interactionNode = vtkMRMLInteractionNode::SafeDownCast(this->GetMRMLScene()->GetNodeByID("vtkMRMLInteractionNodeSingleton"));<br />
<br />
You can then call methods on the nodes or add your own event observers as in<br />
vtkSlicerMarkupsModuleLogic::ObserveMRMLScene<br />
You can see vtkSlicerMarkupsModuleLogic::ProcessMRMLNodesEvents to see how to respond to interaction node changes.<br />
<br />
Slicer4/Base/QTGUI/qSlicerMouseModeToolBar.cxx has a lot of the code you'll need as well, with a slightly different way of getting at the mrml app logic to access the nodes.<br />
<br />
The calls you need to make to switch into placing fiducials with the mouse are:<br />
selectionNode->SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode");<br />
interactionNode->SetCurrentInteractionMode(vtkMRMLInteractionNode::Place);<br />
If you don't set PlaceModePersistence on the interaction node to 1, the mouse mode/current interaction mode will automatically go back to view transform after one fiducial has been placed, and you just need to reset the current interaction mode for future placing (the active place node class name and ID are persistent).<br />
<br />
=== Programmatic Access to Fiducials ===<br />
<br />
This section explains how to access fiducial nodes added into the scene by the user.<br />
<br />
In your module's Logic class, overwrite SetMRMLSceneInternal to observe the NodeAddedEvent of the scene:<br />
void vtkSlicerMYMODULEModuleLogic::SetMRMLSceneInternal(vtkMRMLScene * newScene)<br />
{<br />
vtkNew<vtkIntArray> events;<br />
events->InsertNextValue(vtkMRMLScene::NodeAddedEvent);<br />
// Optionally you can add more events here, <br />
// such as vtkMRMLScene::NodeRemovedEvent<br />
this->SetAndObserveMRMLSceneEventsInternal(newScene, events.GetPointer());<br />
}<br />
Via the set and observe mrml scene macro, anytime a node is added into the scene, it will trigger the base Logic class method<br />
[http://slicer.org/doc/html/classvtkMRMLAbstractLogic.html#a51fdf00ecfc18c1a1465d4bccb789ef1 vtkMRMLAbstractLogic::ProcessMRMLNodesEvents] which calls the virtual method <code>vtkMRMLAbstractLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* node)</code><br />
Reimplement that method in your logic class:<br />
void vtkSlicerMYMODULEModuleLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* addedNode)<br />
{<br />
vtkMRMLMarkupsFiducialNode* fidNode =<br />
vtkMRMLMarkupsFiducialNode::SafeDownCast(addedNode);<br />
if (fidNode)<br />
{<br />
// here you write what you need to do when a <br />
// fiducial node is added into the scene<br />
}<br />
}<br />
<br />
=== File Format===<br />
<br />
The Markups Fiducial storage node uses a comma separated value file to store the fiducials on disk. The format is:<br />
<br />
A leading comment line giving the Slicer version number:<br />
# Markups fiducial file version = 4.5<br />
A comment line giving the coordinate system, RAS = 0, LPS = 1, IJK = 2 (IJK is currently not supported, RAS is printed instead)<br />
# CoordinateSystem = 0<br />
A comment line explaining the fields in the csv<br />
# columns = id,x,y,z,ow,ox,oy,oz,vis,sel,lock,label,desc,associatedNodeID<br />
Then comes the fiducials, one per line, for example:<br />
vtkMRMLMarkupsFiducialNode_0,1.29,-40.18,60.15,0,0,0,1,1,1,0,F-1,,<br />
*id = a string giving a unique id for this fiducial, usually based on the class name<br />
*x,y,z = the floating point coordinate of the fiducial point<br />
*ow,ox,oy,oz = the orientation quaternion of this fiducial, angle and axis, default 0,0,0,1 (or 0,0,0,0,0,0,1.0)<br />
*vis = the visibility flag for this fiducial, 0 or 1, default 1<br />
*sel = the selected flag for this fiducial, 0 or 1, default 1<br />
*lock = the locked flag for this fiducial, 0 or 1, default 0<br />
*label = the name for this fiducial, displayed beside the glyph, with quotes around it if there is a comma in the field<br />
*desc = a string description for this fiducial, optional<br />
*associatedNodeID = an id of a node in the scene with which the fiducial is associated, for example the volume or model on which the fiducial was placed, optional<br />
<br />
The file can be parsed using stringstream and getline:<br />
<br />
std::fstream fstr;<br />
fstr.open(fileName.c_str(), std::fstream::in);<br />
char line[1024];<br />
while (fstr.good())<br />
{<br />
fstr.getline(line, 1024);<br />
std::stringstream ss(line);<br />
std::string component;<br />
getline(ss, component, ',');<br />
[...]<br />
}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Markups&diff=46258Documentation/Nightly/Modules/Markups2016-06-28T19:20:21Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the [http://www.na-mic.org/ NA-MIC website].<br><br />
Author: Nicole Aucoin, SPL, BWH<br><br />
Contact: Nicole Aucoin, <email>nicole@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This module is used to manage markups in Slicer. <br />
<br />
It is based on the functionality in the Slicer 3.6 Fiducials module, with elements from the Slicer 4.2 Annotations module. <br />
<br />
Currently, only fiducials are supported.<br />
<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
Development history can be found in the [[documentation/{{documentation/version}}/Modules/{{documentation/modulename}}#References|references]].<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
<br />
This module allows you to add new markups, edit markups in a list, delete markups and modify display properties of markups.<br />
<br />
Markups can be passed to command line modules (CLIs) using the <pre>--point</pre> or <pre>--pointfile</pre> argument. <br />
<br />
The Mouse mode tool bar can be used to place new markups by positioning the mouse and left clicking in the viewers. Once you are in Place mode and placing Markups fiducials, you can use the 'p' key to place a new fiducial while the Markups GUI is open. You can also use a right button click to stop placing fiducials when in persistent mode.<br />
<br />
You can place fiducials and use the GUI to jump slices or the 3D view to those locations. If you select fiducials in the table, you can right click to get the summed linear distance between their locations.<br />
<br />
The Markups module can convert Annotation fiducials into Markups fiducials, and will offer the user the option of doing it automatically when the Markups GUI is entered. There is also a manual button under the Advanced tab.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
<br />
== Panels ==<br />
<br />
<gallery widths=300px heights=250px class="center"><br />
File:Markups-ModifyList.png | 1. Select the active list, set visibility and lock flags, set uniform scale.<br />
File:Markups-JumpSlices-44.png | 2. Jump the 2D slice view windows to the coordinates of the highlighted markup.<br />
File:Markups-ModifyMarkupsInList.png | 3. Modify Markups in list: toggle visibility, selected, and lock flags, delete.<br />
File:Markups-Table.png | 4. Table showing the fiducials in the active Markups list<br />
File:Markups-Advanced.png | 5. Advanced panel: move markups up or down, add a markup, name format, convert annotation fiducials, display properties for the list of markups<br />
File:Markups-DisplayProperties.png | 6. Display properties, inside the Advanced panel, there are 2D projection settings.<br />
File:Markups-MouseToolbar.png | 7. Place Markup fiducials by setting the Mouse mode in the tool bar<br />
</gallery><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
<br />
*[[Documentation/Nightly/Modules/Annotations | Annotations]] module is similar, and will be deprecated as the functionality is moved to the Markups module.<br />
*[https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L303 Endoscopy module] uses fiducials<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Summer_Project_Week:MarkupsModuleSummer2013 Summer 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Project_Week:MarkupsModule Winter 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2012_Summer_Project_Week:AnnotationModule Summer 2012 Project Week project page]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
== Python ==<br />
<br />
=== Open the Markups Module ===<br />
<br />
You can set the Markups module gui to be the current module gui using this command:<br />
<br />
slicer.util.mainWindow().moduleSelector().selectModule('Markups')<br />
<br />
=== Load From File ===<br />
<br />
Markups fiducials can be loaded from file:<br />
<br />
slicer.util.loadMarkupsFiducialList('/path/to/list/F.fcsv')<br />
<br />
=== Adding Fiducials Programatically ===<br />
<br />
Markups fiducials can be added to the currently active list from the python console by using the following module logic command:<br />
<br />
slicer.modules.markups.logic().AddFiducial()<br />
<br />
The command with no arguments will place a new fiducial at the origin. You can also pass it an initial location:<br />
<br />
slicer.modules.markups.logic().AddFiducial(1.0, -2.0, 3.3)<br />
<br />
=== Adding Fiducials via Mouse Clicks ===<br />
<br />
You can also set the mouse mode into Markups fiducial placement by calling:<br />
<br />
placeModePersistence = 1<br />
slicer.modules.markups.logic().StartPlaceMode(placeModePersistence)<br />
<br />
A lower level way to do this is via the selection and interaction nodes:<br />
selectionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLSelectionNodeSingleton")<br />
selectionNode.SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode")<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
placeModePersistence = 1<br />
interactionNode.SetPlaceModePersistence(placeModePersistence)<br />
# mode 1 is Place, can also be accessed via slicer.vtkMRMLInteractionNode().Place<br />
interactionNode.SetCurrentInteractionMode(1)<br />
<br />
To switch back to view transform once you're done placing fiducials:<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
interactionNode.SwitchToViewTransformMode()<br />
# also turn off place mode persistence if required<br />
interactionNode.SetPlaceModePersistence(0)<br />
<br />
=== Access to Fiducial Properties ===<br />
<br />
Each vtkMRMLMarkupsFiducialNode has a vector of points in it which can be accessed from python:<br />
<br />
fidNode = getNode("vtkMRMLMarkupsFiducialNode1")<br />
n = fidNode.AddFiducial(4.0, 5.5, -6.0)<br />
fidNode.SetNthFiducialLabel(n, "new label")<br />
# each markup is given a unique id which can be accessed from the superclass level<br />
id1 = fidNode.GetNthMarkupID(n)<br />
# manually set the position<br />
fidNode.SetNthFiducialPosition(n, 6.0, 7.0, 8.0)<br />
# set the label<br />
fidNode.SetNthFiducialLabel(n, "New label")<br />
# set the selected flag, only selected = 1 fiducials will be passed to CLIs<br />
fidNode.SetNthFiducialSelected(n, 1)<br />
# set the visibility flag<br />
fidNode.SetNthFiducialVisibility(n, 0) <br />
<br />
You can loop over the fiducials in a list and get the coordinates:<br />
<br />
fidList = slicer.util.getNode('F')<br />
numFids = fidList.GetNumberOfFiducials()<br />
for i in range(numFids):<br />
ras = [0,0,0]<br />
fidList.GetNthFiducialPosition(i,ras)<br />
# the world position is the RAS position with any transform matrices applied<br />
world = [0,0,0,0]<br />
fidList.GetNthFiducialWorldCoordinates(0,world)<br />
print i,": RAS =",ras,", world =",world<br />
<br />
You can also look at the sample code in the [https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L287 Endoscopy module] to see how python is used to access fiducials from a scripted module.<br />
<br />
=== VTK Widget access ===<br />
<br />
The Markups 3D fiducial displayable manager can be accessed from python allowing debugging of the vtkSeedWidget:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
td = lm.threeDWidget(0)<br />
ms = vtk.vtkCollection()<br />
td.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()): <br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager3D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep2 = seedRepresentation.GetHandleRepresentation(2)<br />
print handleRep2.GetDisplayPosition()<br />
print handleRep2.GetWorldPosition()<br />
<br />
<br />
The Markups 2D fiducial displayable manager can be accessed from python as well to debug the seed widget in 2D. For the Red slice viewer:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
redWidget = lm.sliceWidget("Red")<br />
redView = redWidget.sliceView()<br />
ms = vtk.vtkCollection()<br />
redView.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()):<br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager2D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep = seedRepresentation.GetHandleRepresentation(0)<br />
print handleRep.GetDisplayPosition()<br />
<br />
== C++ ==<br />
<br />
===Selection and Interaction===<br />
<br />
For the selection and interaction nodes, make sure that you access the singleton nodes already in the scene (rather than making your own) via (caveat: this call works on displayable managers, you may have to go a different route to get at the application logic):<br />
vtkMRMLApplicationLogic *mrmlAppLogic = this->GetMRMLApplicationLogic();<br />
vtkMRMLInteractionNode *inode = mrmlAppLogic->GetInteractionNode();<br />
vtkMRMLSelectionNode *snode = mrmlAppLogic->GetSelectionNode();<br />
If you can't get at the mrml application logic, you can get the nodes from the scene:<br />
vtkMRMLInteractionNode *interactionNode = vtkMRMLInteractionNode::SafeDownCast(this->GetMRMLScene()->GetNodeByID("vtkMRMLInteractionNodeSingleton"));<br />
<br />
You can then call methods on the nodes or add your own event observers as in<br />
vtkSlicerMarkupsModuleLogic::ObserveMRMLScene<br />
You can see vtkSlicerMarkupsModuleLogic::ProcessMRMLNodesEvents to see how to respond to interaction node changes.<br />
<br />
Slicer4/Base/QTGUI/qSlicerMouseModeToolBar.cxx has a lot of the code you'll need as well, with a slightly different way of getting at the mrml app logic to access the nodes.<br />
<br />
The calls you need to make to switch into placing fiducials with the mouse are:<br />
selectionNode->SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode");<br />
interactionNode->SetCurrentInteractionMode(vtkMRMLInteractionNode::Place);<br />
If you don't set PlaceModePersistence on the interaction node to 1, the mouse mode/current interaction mode will automatically go back to view transform after one fiducial has been placed, and you just need to reset the current interaction mode for future placing (the active place node class name and ID are persistent).<br />
<br />
=== Programmatic Access to Fiducials ===<br />
<br />
This section explains how to access fiducial nodes added into the scene by the user.<br />
<br />
In your module's Logic class, overwrite SetMRMLSceneInternal to observe the NodeAddedEvent of the scene:<br />
void vtkSlicerMYMODULEModuleLogic::SetMRMLSceneInternal(vtkMRMLScene * newScene)<br />
{<br />
vtkNew<vtkIntArray> events;<br />
events->InsertNextValue(vtkMRMLScene::NodeAddedEvent);<br />
// Optionally you can add more events here, <br />
// such as vtkMRMLScene::NodeRemovedEvent<br />
this->SetAndObserveMRMLSceneEventsInternal(newScene, events.GetPointer());<br />
}<br />
Via the set and observe mrml scene macro, anytime a node is added into the scene, it will trigger the base Logic class method<br />
[http://slicer.org/doc/html/classvtkMRMLAbstractLogic.html#a51fdf00ecfc18c1a1465d4bccb789ef1 vtkMRMLAbstractLogic::ProcessMRMLNodesEvents] which calls the virtual method <code>vtkMRMLAbstractLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* node)</code><br />
Reimplement that method in your logic class:<br />
void vtkSlicerMYMODULEModuleLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* addedNode)<br />
{<br />
vtkMRMLMarkupsFiducialNode* fidNode =<br />
vtkMRMLMarkupsFiducialNode::SafeDownCast(addedNode);<br />
if (fidNode)<br />
{<br />
// here you write what you need to do when a <br />
// fiducial node is added into the scene<br />
}<br />
}<br />
<br />
=== File Format===<br />
<br />
The Markups Fiducial storage node uses a comma separated value file to store the fiducials on disk. The format is:<br />
<br />
A leading comment line giving the Slicer version number:<br />
# Markups fiducial file version = 4.5<br />
A comment line giving the coordinate system, RAS = 0, LPS = 1, IJK = 2 (IJK is currently not supported, RAS is printed instead)<br />
# CoordinateSystem = 0<br />
A comment line explaining the fields in the csv<br />
# columns = id,x,y,z,ow,ox,oy,oz,vis,sel,lock,label,desc,associatedNodeID<br />
Then comes the fiducials, one per line, for example:<br />
vtkMRMLMarkupsFiducialNode_0,1.29,-40.18,60.15,0,0,0,1,1,1,0,F-1,,<br />
*id = a string giving a unique id for this fiducial, usually based on the class name<br />
*x,y,z = the floating point coordinate of the fiducial point<br />
*ow,ox,oy,oz = the orientation quaternion of this fiducial, angle and axis, default 0,0,0,1 (or 0,0,0,0,0,0,1.0)<br />
*vis = the visibility flag for this fiducial, 0 or 1, default 1<br />
*sel = the selected flag for this fiducial, 0 or 1, default 1<br />
*lock = the locked flag for this fiducial, 0 or 1, default 0<br />
*label = the name for this fiducial, displayed beside the glyph, with quotes around it if there is a comma in the field<br />
*desc = a string description for this fiducial, optional<br />
*associatedNodeID = an id of a node in the scene with which the fiducial is associated, for example the volume or model on which the fiducial was placed, optional<br />
<br />
The file can be parsed using stringstream and getline:<br />
<br />
std::fstream fstr;<br />
fstr.open(fileName.c_str(), std::fstream::in);<br />
char line[1024];<br />
while (fstr.good())<br />
{<br />
fstr.getline(line, 1024);<br />
std::stringstream ss(line);<br />
std::string component;<br />
getline(ss, component, ',');<br />
[...]<br />
}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Markups&diff=46257Documentation/Nightly/Modules/Markups2016-06-28T19:08:19Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the [http://www.na-mic.org/ NA-MIC website].<br><br />
Author: Nicole Aucoin, SPL, BWH<br><br />
Contact: Nicole Aucoin, <email>nicole@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This module is used to manage markups in Slicer. <br />
<br />
It is based on the functionality in the Slicer 3.6 Fiducials module, with elements from the Slicer 4.2 Annotations module. <br />
<br />
Currently, only fiducials are supported.<br />
<br />
{{documentation/{{documentation/version}}/module-description}}<br />
<br />
Development history can be found in the [[documentation/{{documentation/version}}/Modules/{{documentation/modulename}}#References|references]].<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
<br />
This module allows you to add new markups, edit markups in a list, delete markups and modify display properties of markups.<br />
<br />
Markups can be passed to command line modules (CLIs) using the <pre>--point</pre> or <pre>--pointfile</pre> argument. <br />
<br />
The Mouse mode tool bar can be used to place new markups by positioning the mouse and left clicking in the viewers. Once you are in Place mode and placing Markups fiducials, you can use the 'p' key to place a new fiducial while the Markups GUI is open. You can also use a right button click to stop placing fiducials when in persistent mode.<br />
<br />
You can place fiducials and use the GUI to jump slices or the 3D view to those locations. If you select fiducials in the table, you can right click to get the summed linear distance between their locations.<br />
<br />
The Markups module can convert Annotation fiducials into Markups fiducials, and will offer the user the option of doing it automatically when the Markups GUI is entered. There is also a manual button under the Advanced tab.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
N/A<br />
<br />
<!-- ---------------------------- --><br />
<br />
== Panels ==<br />
<br />
<gallery><br />
File:Markups-ModifyList.png | Select the active list, set visibility and lock flags, set uniform scale.<br />
File:Markups-JumpSlices-44.png | Jump the 2D slice view windows to the coordinates of the highlighted markup.<br />
File:Markups-ModifyMarkupsInList.png | Modify Markups in list: toggle visibility, selected, and lock flags, delete.<br />
File:Markups-Table.png | Table showing the fiducials in the active Markups list<br />
File:Markups-Advanced.png | Advanced panel: move markups up or down, add a markup, name format, convert annotation fiducials, display properties for the list of markups<br />
File:Markups-DisplayProperties.png | Display properties, inside the Advaned panel, includes 2d projection settings.<br />
File:Markups-MouseToolbar.png | Place Markup fiducials by setting the Mouse mode in the tool bar<br />
</gallery><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
{{documentation/{{documentation/version}}/module-parametersdescription}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
<br />
*[[Documentation/Nightly/Modules/Annotations | Annotations]] module is similar, and will be deprecated as the functionality is moved to the Markups module.<br />
*[https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L303 Endoscopy module] uses fiducials<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Summer_Project_Week:MarkupsModuleSummer2013 Summer 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2013_Project_Week:MarkupsModule Winter 2013 Project Week project page]<br />
*[http://wiki.na-mic.org/Wiki/index.php/2012_Summer_Project_Week:AnnotationModule Summer 2012 Project Week project page]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
== Python ==<br />
<br />
=== Open the Markups Module ===<br />
<br />
You can set the Markups module gui to be the current module gui using this command:<br />
<br />
slicer.util.mainWindow().moduleSelector().selectModule('Markups')<br />
<br />
=== Load From File ===<br />
<br />
Markups fiducials can be loaded from file:<br />
<br />
slicer.util.loadMarkupsFiducialList('/path/to/list/F.fcsv')<br />
<br />
=== Adding Fiducials Programatically ===<br />
<br />
Markups fiducials can be added to the currently active list from the python console by using the following module logic command:<br />
<br />
slicer.modules.markups.logic().AddFiducial()<br />
<br />
The command with no arguments will place a new fiducial at the origin. You can also pass it an initial location:<br />
<br />
slicer.modules.markups.logic().AddFiducial(1.0, -2.0, 3.3)<br />
<br />
=== Adding Fiducials via Mouse Clicks ===<br />
<br />
You can also set the mouse mode into Markups fiducial placement by calling:<br />
<br />
placeModePersistence = 1<br />
slicer.modules.markups.logic().StartPlaceMode(placeModePersistence)<br />
<br />
A lower level way to do this is via the selection and interaction nodes:<br />
selectionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLSelectionNodeSingleton")<br />
selectionNode.SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode")<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
placeModePersistence = 1<br />
interactionNode.SetPlaceModePersistence(placeModePersistence)<br />
# mode 1 is Place, can also be accessed via slicer.vtkMRMLInteractionNode().Place<br />
interactionNode.SetCurrentInteractionMode(1)<br />
<br />
To switch back to view transform once you're done placing fiducials:<br />
interactionNode = slicer.mrmlScene.GetNodeByID("vtkMRMLInteractionNodeSingleton")<br />
interactionNode.SwitchToViewTransformMode()<br />
# also turn off place mode persistence if required<br />
interactionNode.SetPlaceModePersistence(0)<br />
<br />
=== Access to Fiducial Properties ===<br />
<br />
Each vtkMRMLMarkupsFiducialNode has a vector of points in it which can be accessed from python:<br />
<br />
fidNode = getNode("vtkMRMLMarkupsFiducialNode1")<br />
n = fidNode.AddFiducial(4.0, 5.5, -6.0)<br />
fidNode.SetNthFiducialLabel(n, "new label")<br />
# each markup is given a unique id which can be accessed from the superclass level<br />
id1 = fidNode.GetNthMarkupID(n)<br />
# manually set the position<br />
fidNode.SetNthFiducialPosition(n, 6.0, 7.0, 8.0)<br />
# set the label<br />
fidNode.SetNthFiducialLabel(n, "New label")<br />
# set the selected flag, only selected = 1 fiducials will be passed to CLIs<br />
fidNode.SetNthFiducialSelected(n, 1)<br />
# set the visibility flag<br />
fidNode.SetNthFiducialVisibility(n, 0) <br />
<br />
You can loop over the fiducials in a list and get the coordinates:<br />
<br />
fidList = slicer.util.getNode('F')<br />
numFids = fidList.GetNumberOfFiducials()<br />
for i in range(numFids):<br />
ras = [0,0,0]<br />
fidList.GetNthFiducialPosition(i,ras)<br />
# the world position is the RAS position with any transform matrices applied<br />
world = [0,0,0,0]<br />
fidList.GetNthFiducialWorldCoordinates(0,world)<br />
print i,": RAS =",ras,", world =",world<br />
<br />
You can also look at the sample code in the [https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/Endoscopy/Endoscopy.py#L287 Endoscopy module] to see how python is used to access fiducials from a scripted module.<br />
<br />
=== VTK Widget access ===<br />
<br />
The Markups 3D fiducial displayable manager can be accessed from python allowing debugging of the vtkSeedWidget:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
td = lm.threeDWidget(0)<br />
ms = vtk.vtkCollection()<br />
td.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()): <br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager3D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep2 = seedRepresentation.GetHandleRepresentation(2)<br />
print handleRep2.GetDisplayPosition()<br />
print handleRep2.GetWorldPosition()<br />
<br />
<br />
The Markups 2D fiducial displayable manager can be accessed from python as well to debug the seed widget in 2D. For the Red slice viewer:<br />
<br />
fidNode = slicer.mrmlScene.GetNodeByID("vtkMRMLMarkupsFiducialNode1")<br />
lm = slicer.app.layoutManager()<br />
redWidget = lm.sliceWidget("Red")<br />
redView = redWidget.sliceView()<br />
ms = vtk.vtkCollection()<br />
redView.getDisplayableManagers(ms)<br />
for i in range(ms.GetNumberOfItems()):<br />
m = ms.GetItemAsObject(i)<br />
if m.GetClassName() == "vtkMRMLMarkupsFiducialDisplayableManager2D":<br />
print i, m.GetClassName()<br />
h = m.GetHelper()<br />
seedWidget = h.GetWidget(fidNode)<br />
seedRepresentation = seedWidget.GetSeedRepresentation()<br />
handleRep = seedRepresentation.GetHandleRepresentation(0)<br />
print handleRep.GetDisplayPosition()<br />
<br />
== C++ ==<br />
<br />
===Selection and Interaction===<br />
<br />
For the selection and interaction nodes, make sure that you access the singleton nodes already in the scene (rather than making your own) via (caveat: this call works on displayable managers, you may have to go a different route to get at the application logic):<br />
vtkMRMLApplicationLogic *mrmlAppLogic = this->GetMRMLApplicationLogic();<br />
vtkMRMLInteractionNode *inode = mrmlAppLogic->GetInteractionNode();<br />
vtkMRMLSelectionNode *snode = mrmlAppLogic->GetSelectionNode();<br />
If you can't get at the mrml application logic, you can get the nodes from the scene:<br />
vtkMRMLInteractionNode *interactionNode = vtkMRMLInteractionNode::SafeDownCast(this->GetMRMLScene()->GetNodeByID("vtkMRMLInteractionNodeSingleton"));<br />
<br />
You can then call methods on the nodes or add your own event observers as in<br />
vtkSlicerMarkupsModuleLogic::ObserveMRMLScene<br />
You can see vtkSlicerMarkupsModuleLogic::ProcessMRMLNodesEvents to see how to respond to interaction node changes.<br />
<br />
Slicer4/Base/QTGUI/qSlicerMouseModeToolBar.cxx has a lot of the code you'll need as well, with a slightly different way of getting at the mrml app logic to access the nodes.<br />
<br />
The calls you need to make to switch into placing fiducials with the mouse are:<br />
selectionNode->SetReferenceActivePlaceNodeClassName("vtkMRMLMarkupsFiducialNode");<br />
interactionNode->SetCurrentInteractionMode(vtkMRMLInteractionNode::Place);<br />
If you don't set PlaceModePersistence on the interaction node to 1, the mouse mode/current interaction mode will automatically go back to view transform after one fiducial has been placed, and you just need to reset the current interaction mode for future placing (the active place node class name and ID are persistent).<br />
<br />
=== Programmatic Access to Fiducials ===<br />
<br />
This section explains how to access fiducial nodes added into the scene by the user.<br />
<br />
In your module's Logic class, overwrite SetMRMLSceneInternal to observe the NodeAddedEvent of the scene:<br />
void vtkSlicerMYMODULEModuleLogic::SetMRMLSceneInternal(vtkMRMLScene * newScene)<br />
{<br />
vtkNew<vtkIntArray> events;<br />
events->InsertNextValue(vtkMRMLScene::NodeAddedEvent);<br />
// Optionally you can add more events here, <br />
// such as vtkMRMLScene::NodeRemovedEvent<br />
this->SetAndObserveMRMLSceneEventsInternal(newScene, events.GetPointer());<br />
}<br />
Via the set and observe mrml scene macro, anytime a node is added into the scene, it will trigger the base Logic class method<br />
[http://slicer.org/doc/html/classvtkMRMLAbstractLogic.html#a51fdf00ecfc18c1a1465d4bccb789ef1 vtkMRMLAbstractLogic::ProcessMRMLNodesEvents] which calls the virtual method <code>vtkMRMLAbstractLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* node)</code><br />
Reimplement that method in your logic class:<br />
void vtkSlicerMYMODULEModuleLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* addedNode)<br />
{<br />
vtkMRMLMarkupsFiducialNode* fidNode =<br />
vtkMRMLMarkupsFiducialNode::SafeDownCast(addedNode);<br />
if (fidNode)<br />
{<br />
// here you write what you need to do when a <br />
// fiducial node is added into the scene<br />
}<br />
}<br />
<br />
=== File Format===<br />
<br />
The Markups Fiducial storage node uses a comma separated value file to store the fiducials on disk. The format is:<br />
<br />
A leading comment line giving the Slicer version number:<br />
# Markups fiducial file version = 4.5<br />
A comment line giving the coordinate system, RAS = 0, LPS = 1, IJK = 2 (IJK is currently not supported, RAS is printed instead)<br />
# CoordinateSystem = 0<br />
A comment line explaining the fields in the csv<br />
# columns = id,x,y,z,ow,ox,oy,oz,vis,sel,lock,label,desc,associatedNodeID<br />
Then comes the fiducials, one per line, for example:<br />
vtkMRMLMarkupsFiducialNode_0,1.29,-40.18,60.15,0,0,0,1,1,1,0,F-1,,<br />
*id = a string giving a unique id for this fiducial, usually based on the class name<br />
*x,y,z = the floating point coordinate of the fiducial point<br />
*ow,ox,oy,oz = the orientation quaternion of this fiducial, angle and axis, default 0,0,0,1 (or 0,0,0,0,0,0,1.0)<br />
*vis = the visibility flag for this fiducial, 0 or 1, default 1<br />
*sel = the selected flag for this fiducial, 0 or 1, default 1<br />
*lock = the locked flag for this fiducial, 0 or 1, default 0<br />
*label = the name for this fiducial, displayed beside the glyph, with quotes around it if there is a comma in the field<br />
*desc = a string description for this fiducial, optional<br />
*associatedNodeID = an id of a node in the scene with which the fiducial is associated, for example the volume or model on which the fiducial was placed, optional<br />
<br />
The file can be parsed using stringstream and getline:<br />
<br />
std::fstream fstr;<br />
fstr.open(fileName.c_str(), std::fstream::in);<br />
char line[1024];<br />
while (fstr.good())<br />
{<br />
fstr.getline(line, 1024);<br />
std::stringstream ss(line);<br />
std::string component;<br />
getline(ss, component, ',');<br />
[...]<br />
}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SlicerWelcome&diff=46256Documentation/Nightly/Modules/SlicerWelcome2016-06-28T19:02:33Z<p>Hillarylia: /* Mouse & Keyboard Panel */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BHW), Jean-Christophe Fillion-Robin (Kitware), Steve Pieper (Isomics Inc.), Sonia Pujol (SPL, BHW)<br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Wendy Plesniak, <email>wjp@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
Slicer's '''Welcome Module''' is provided to introduce new users to Slicer's basic functionality, and to provide pointers to additional useful resources.<br />
<br />
[[image:Slicer4WelcomeModule.jpg | center]]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
Please visit the [http://www.slicer.org/slicerWiki/index.php/Slicer_4.0:Training Slicer4 training page] for more detailed training using Slicer4.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
== Load Panel ==<br />
[[image:Slicer4WelcomeLoadPanel.png | right]]<br />
This panel, which is always open, contains quick access to interfaces to:<br />
* Load DICOM datasets<br />
* Load individual scalar volume datasets<br />
* Load datasets of other types (such as polygonal models), and<br />
* Download sample datasets from the internet.<br />
<br />
== About Panel==<br />
<br />
This panel contains information about 3D Slicer, including license information.<br />
<br />
== The Main Window Panel ==<br />
<br />
In this panel, a broad overview of Slicer's Application Interface is provided. Below, an image of part of this panel's information is provided.<br />
<br />
[[image:Slicer4WelcomeMainWindow.png | centre]]<br />
<br />
== Loading and Saving Panel ==<br />
<br />
The Load & Save panel describes the MRML format, and various options for loading and saving scenes and individual datasets. Below is a vignette of the Load & Save panel.<br />
<br />
[[image:Slicer4WelcomeLoadSave.png | centre]]<br />
<br />
== Display Panel ==<br />
<br />
This panel contains information about the adjusting display of scenes and data, configuring application layout, and saving screen snapshots and scene configurations of interest. Below is a vignette of the Display panel.<br />
<br />
[[image:Slicer4WelcomeDisplay.png | centre ]]<br />
<br />
== Mouse & Keyboard Panel ==<br />
<br />
The Mouse & Keyboard panel describes the use of mouse and keyboard to perform basic interactive operations in Slicer including adjusting the display of data and manipulating the 3D scene on Windows, Mac and Linux using a one- two- and three-button mouse.<br />
<br />
[[image:Slicer4WelcomeMouse.png | center ]]<br />
<br />
== Documentation & Tutorials Panel ==<br />
<br />
This panel provides links to additional information of interest.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SlicerWelcome&diff=46255Documentation/Nightly/Modules/SlicerWelcome2016-06-28T19:01:41Z<p>Hillarylia: /* Display Panel */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BHW), Jean-Christophe Fillion-Robin (Kitware), Steve Pieper (Isomics Inc.), Sonia Pujol (SPL, BHW)<br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Wendy Plesniak, <email>wjp@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
Slicer's '''Welcome Module''' is provided to introduce new users to Slicer's basic functionality, and to provide pointers to additional useful resources.<br />
<br />
[[image:Slicer4WelcomeModule.jpg | center]]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
Please visit the [http://www.slicer.org/slicerWiki/index.php/Slicer_4.0:Training Slicer4 training page] for more detailed training using Slicer4.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
== Load Panel ==<br />
[[image:Slicer4WelcomeLoadPanel.png | right]]<br />
This panel, which is always open, contains quick access to interfaces to:<br />
* Load DICOM datasets<br />
* Load individual scalar volume datasets<br />
* Load datasets of other types (such as polygonal models), and<br />
* Download sample datasets from the internet.<br />
<br />
== About Panel==<br />
<br />
This panel contains information about 3D Slicer, including license information.<br />
<br />
== The Main Window Panel ==<br />
<br />
In this panel, a broad overview of Slicer's Application Interface is provided. Below, an image of part of this panel's information is provided.<br />
<br />
[[image:Slicer4WelcomeMainWindow.png | centre]]<br />
<br />
== Loading and Saving Panel ==<br />
<br />
The Load & Save panel describes the MRML format, and various options for loading and saving scenes and individual datasets. Below is a vignette of the Load & Save panel.<br />
<br />
[[image:Slicer4WelcomeLoadSave.png | centre]]<br />
<br />
== Display Panel ==<br />
<br />
This panel contains information about the adjusting display of scenes and data, configuring application layout, and saving screen snapshots and scene configurations of interest. Below is a vignette of the Display panel.<br />
<br />
[[image:Slicer4WelcomeDisplay.png | centre ]]<br />
<br />
== Mouse & Keyboard Panel ==<br />
<br />
The Mouse & Keyboard panel describes the use of mouse and keyboard to perform basic interactive operations in Slicer including adjusting the display of data and manipulating the 3D scene on Windows, Mac and Linux using a one- two- and three-button mouse.<br />
<br />
[[image:Slicer4WelcomeMouse.png | left ]]<br />
<br />
== Documentation & Tutorials Panel ==<br />
<br />
This panel provides links to additional information of interest.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SlicerWelcome&diff=46254Documentation/Nightly/Modules/SlicerWelcome2016-06-28T19:01:16Z<p>Hillarylia: /* Loading and Saving Panel */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BHW), Jean-Christophe Fillion-Robin (Kitware), Steve Pieper (Isomics Inc.), Sonia Pujol (SPL, BHW)<br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Wendy Plesniak, <email>wjp@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
Slicer's '''Welcome Module''' is provided to introduce new users to Slicer's basic functionality, and to provide pointers to additional useful resources.<br />
<br />
[[image:Slicer4WelcomeModule.jpg | center]]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
Please visit the [http://www.slicer.org/slicerWiki/index.php/Slicer_4.0:Training Slicer4 training page] for more detailed training using Slicer4.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
== Load Panel ==<br />
[[image:Slicer4WelcomeLoadPanel.png | right]]<br />
This panel, which is always open, contains quick access to interfaces to:<br />
* Load DICOM datasets<br />
* Load individual scalar volume datasets<br />
* Load datasets of other types (such as polygonal models), and<br />
* Download sample datasets from the internet.<br />
<br />
== About Panel==<br />
<br />
This panel contains information about 3D Slicer, including license information.<br />
<br />
== The Main Window Panel ==<br />
<br />
In this panel, a broad overview of Slicer's Application Interface is provided. Below, an image of part of this panel's information is provided.<br />
<br />
[[image:Slicer4WelcomeMainWindow.png | centre]]<br />
<br />
== Loading and Saving Panel ==<br />
<br />
The Load & Save panel describes the MRML format, and various options for loading and saving scenes and individual datasets. Below is a vignette of the Load & Save panel.<br />
<br />
[[image:Slicer4WelcomeLoadSave.png | centre]]<br />
<br />
== Display Panel ==<br />
<br />
This panel contains information about the adjusting display of scenes and data, configuring application layout, and saving screen snapshots and scene configurations of interest. Below is a vignette of the Display panel.<br />
<br />
[[image:Slicer4WelcomeDisplay.png | left ]]<br />
<br />
== Mouse & Keyboard Panel ==<br />
<br />
The Mouse & Keyboard panel describes the use of mouse and keyboard to perform basic interactive operations in Slicer including adjusting the display of data and manipulating the 3D scene on Windows, Mac and Linux using a one- two- and three-button mouse.<br />
<br />
[[image:Slicer4WelcomeMouse.png | left ]]<br />
<br />
== Documentation & Tutorials Panel ==<br />
<br />
This panel provides links to additional information of interest.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SlicerWelcome&diff=46253Documentation/Nightly/Modules/SlicerWelcome2016-06-28T19:00:49Z<p>Hillarylia: /* The Main Window Panel */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BHW), Jean-Christophe Fillion-Robin (Kitware), Steve Pieper (Isomics Inc.), Sonia Pujol (SPL, BHW)<br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Wendy Plesniak, <email>wjp@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
Slicer's '''Welcome Module''' is provided to introduce new users to Slicer's basic functionality, and to provide pointers to additional useful resources.<br />
<br />
[[image:Slicer4WelcomeModule.jpg | center]]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
Please visit the [http://www.slicer.org/slicerWiki/index.php/Slicer_4.0:Training Slicer4 training page] for more detailed training using Slicer4.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
== Load Panel ==<br />
[[image:Slicer4WelcomeLoadPanel.png | right]]<br />
This panel, which is always open, contains quick access to interfaces to:<br />
* Load DICOM datasets<br />
* Load individual scalar volume datasets<br />
* Load datasets of other types (such as polygonal models), and<br />
* Download sample datasets from the internet.<br />
<br />
== About Panel==<br />
<br />
This panel contains information about 3D Slicer, including license information.<br />
<br />
== The Main Window Panel ==<br />
<br />
In this panel, a broad overview of Slicer's Application Interface is provided. Below, an image of part of this panel's information is provided.<br />
<br />
[[image:Slicer4WelcomeMainWindow.png | centre]]<br />
<br />
== Loading and Saving Panel ==<br />
<br />
The Load & Save panel describes the MRML format, and various options for loading and saving scenes and individual datasets. Below is a vignette of the Load & Save panel.<br />
<br />
[[image:Slicer4WelcomeLoadSave.png | left]]<br />
<br />
== Display Panel ==<br />
<br />
This panel contains information about the adjusting display of scenes and data, configuring application layout, and saving screen snapshots and scene configurations of interest. Below is a vignette of the Display panel.<br />
<br />
[[image:Slicer4WelcomeDisplay.png | left ]]<br />
<br />
== Mouse & Keyboard Panel ==<br />
<br />
The Mouse & Keyboard panel describes the use of mouse and keyboard to perform basic interactive operations in Slicer including adjusting the display of data and manipulating the 3D scene on Windows, Mac and Linux using a one- two- and three-button mouse.<br />
<br />
[[image:Slicer4WelcomeMouse.png | left ]]<br />
<br />
== Documentation & Tutorials Panel ==<br />
<br />
This panel provides links to additional information of interest.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SlicerWelcome&diff=46252Documentation/Nightly/Modules/SlicerWelcome2016-06-28T19:00:23Z<p>Hillarylia: /* The Main Window Panel */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BHW), Jean-Christophe Fillion-Robin (Kitware), Steve Pieper (Isomics Inc.), Sonia Pujol (SPL, BHW)<br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Wendy Plesniak, <email>wjp@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
Slicer's '''Welcome Module''' is provided to introduce new users to Slicer's basic functionality, and to provide pointers to additional useful resources.<br />
<br />
[[image:Slicer4WelcomeModule.jpg | center]]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
Please visit the [http://www.slicer.org/slicerWiki/index.php/Slicer_4.0:Training Slicer4 training page] for more detailed training using Slicer4.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
== Load Panel ==<br />
[[image:Slicer4WelcomeLoadPanel.png | right]]<br />
This panel, which is always open, contains quick access to interfaces to:<br />
* Load DICOM datasets<br />
* Load individual scalar volume datasets<br />
* Load datasets of other types (such as polygonal models), and<br />
* Download sample datasets from the internet.<br />
<br />
== About Panel==<br />
<br />
This panel contains information about 3D Slicer, including license information.<br />
<br />
== The Main Window Panel ==<br />
<br />
In this panel, a broad overview of Slicer's Application Interface is provided. Below, an image of part of this panel's information is provided.<br />
<br />
[[image:Slicer4WelcomeMainWindow.png | right]]<br />
<br />
== Loading and Saving Panel ==<br />
<br />
The Load & Save panel describes the MRML format, and various options for loading and saving scenes and individual datasets. Below is a vignette of the Load & Save panel.<br />
<br />
[[image:Slicer4WelcomeLoadSave.png | left]]<br />
<br />
== Display Panel ==<br />
<br />
This panel contains information about the adjusting display of scenes and data, configuring application layout, and saving screen snapshots and scene configurations of interest. Below is a vignette of the Display panel.<br />
<br />
[[image:Slicer4WelcomeDisplay.png | left ]]<br />
<br />
== Mouse & Keyboard Panel ==<br />
<br />
The Mouse & Keyboard panel describes the use of mouse and keyboard to perform basic interactive operations in Slicer including adjusting the display of data and manipulating the 3D scene on Windows, Mac and Linux using a one- two- and three-button mouse.<br />
<br />
[[image:Slicer4WelcomeMouse.png | left ]]<br />
<br />
== Documentation & Tutorials Panel ==<br />
<br />
This panel provides links to additional information of interest.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SlicerWelcome&diff=46251Documentation/Nightly/Modules/SlicerWelcome2016-06-28T18:59:44Z<p>Hillarylia: /* Load Panel */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BHW), Jean-Christophe Fillion-Robin (Kitware), Steve Pieper (Isomics Inc.), Sonia Pujol (SPL, BHW)<br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Wendy Plesniak, <email>wjp@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
Slicer's '''Welcome Module''' is provided to introduce new users to Slicer's basic functionality, and to provide pointers to additional useful resources.<br />
<br />
[[image:Slicer4WelcomeModule.jpg | center]]<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
Please visit the [http://www.slicer.org/slicerWiki/index.php/Slicer_4.0:Training Slicer4 training page] for more detailed training using Slicer4.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
== Load Panel ==<br />
[[image:Slicer4WelcomeLoadPanel.png | right]]<br />
This panel, which is always open, contains quick access to interfaces to:<br />
* Load DICOM datasets<br />
* Load individual scalar volume datasets<br />
* Load datasets of other types (such as polygonal models), and<br />
* Download sample datasets from the internet.<br />
<br />
== About Panel==<br />
<br />
This panel contains information about 3D Slicer, including license information.<br />
<br />
== The Main Window Panel ==<br />
<br />
In this panel, a broad overview of Slicer's Application Interface is provided. Below, an image of part of this panel's information is provided.<br />
<br />
[[image:Slicer4WelcomeMainWindow.png | left]]<br />
<br />
== Loading and Saving Panel ==<br />
<br />
The Load & Save panel describes the MRML format, and various options for loading and saving scenes and individual datasets. Below is a vignette of the Load & Save panel.<br />
<br />
[[image:Slicer4WelcomeLoadSave.png | left]]<br />
<br />
== Display Panel ==<br />
<br />
This panel contains information about the adjusting display of scenes and data, configuring application layout, and saving screen snapshots and scene configurations of interest. Below is a vignette of the Display panel.<br />
<br />
[[image:Slicer4WelcomeDisplay.png | left ]]<br />
<br />
== Mouse & Keyboard Panel ==<br />
<br />
The Mouse & Keyboard panel describes the use of mouse and keyboard to perform basic interactive operations in Slicer including adjusting the display of data and manipulating the 3D scene on Windows, Mac and Linux using a one- two- and three-button mouse.<br />
<br />
[[image:Slicer4WelcomeMouse.png | left ]]<br />
<br />
== Documentation & Tutorials Panel ==<br />
<br />
This panel provides links to additional information of interest.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SegmentEditor&diff=46231Documentation/Nightly/Modules/SegmentEditor2016-06-27T15:08:00Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
Authors: <b>Csaba Pinter</b> (PerkLab, Queen's University), <b>Andras Lasso</b> (PerkLab, Queen's University)<br />
Contacts:<br />
* Csaba Pinter, <email>csaba.pinter@queensu.ca</email><br />
* Andras Lasso, <email>lasso@cs.queensu.ca</email><br />
<br />
<br />
[[File:LogoCco.png|left||Cancer Care Ontario]]<br />
[[File:Logo-SparKit.png|right|SparKit]]<br />
[[File:LogoOCAIRO.jpg|centre|OCAIRO]]<br />
<br />
<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This is a module for segmentation of volumes. Segmentations (also known as contouring) delineate structures of interest. Some of the tools mimic a painting interface like photoshop or gimp, but work on 3D arrays of voxels rather than on 2D pixels. This module is the successor to the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Editor Editor] module. The Segment Editor contains many of the same functionalities and more.<br />
<br />
New features include:<br />
*Overlapping segments<br />
*Conversion to model representation is automatic<br />
**This uses the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Segmentations Segmentation] infrastructure<br />
*Segments Table allows advanced visualization of segments<br />
*3D brushes allow the user to pain in 3D rather than slice by slice<br />
*Segment Editor can be embedded into any module or slicelet<br />
*Master Volume Selection allows users to change the master volume during segmentation<br />
*Oblique slices can be edited<br />
<br />
<br />
[[image:SegmentEditorUseCases.png|175px|right]]<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Create segmentations that can be used for: <br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and Their Uses}} <br />
[[image:SegmentEditorPanel.png|right|300px|Click to expand photo]]<br />
'''Segmentation:''' Choose the segmentation to edit<br />
<br />
'''Master volume:''' Choose the volume to segment. The master volume can be changed at any time during the segmentation process, safely<br />
<br />
'''Add/Remove Segment:''' Click Add to create a new segment. Select the segment you would like to delete then hit remove.<br />
<br />
'''Create Surface:''' Display your segmentation in the 3D Viewer. This is a toggle button. When turned on the surface is created and updated automatically as the user is segmenting. When turned off, the conversion is not ongoing so the segmentation process is faster.<br />
<br />
'''Segments Table:''' Displays your segments. Click the eye icon to show or hide the segment. Click and hold the button for advanced options (Show in 3D, Show in 2D as fill, Show in 2D as outline)<br />
<br />
'''Effects:''' Select the desired effect here. See below for more information about each effect.<br />
<br />
'''Options:''' Options for the selected effect will be displayed here.<br />
<br />
'''Masking:''' These options allow you to define the editable areas and whether or not certain segments can be overwritten.<br />
*Editable area: Changes will only appear within the selected area. Options include: Inside All Segments, Inside All Visible Segments, Outside All Segments, Outside All Visible, Everywhere<br />
*Editable intensity range: Only areas within the selected intensity range will show changes that are made to the segmentation<br />
*Overwrite other segments: Select which segments will be overwritten rather than overlapped. Options include: All segments, Visible Segments and None<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Effects}}<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in. To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
Paint on the selected segment with a round brush.<br />
<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions. In this mode, the label color is set to the value of the labelmap where the first left click occurs. This mode allows you to quickly switch between colors.<br />
<br />
===[[image:Draw.png]] Draw===<br />
Draw segment outline in slice viewers.<br />
<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===[[image:Eraser.png]] Erase===<br />
Left-click and drag in slice or 3D viewers to erase from the current segment with a round brush. The radius can be adjusted. Additional brush modes include sphere brush and pixel mode.<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
Add uniform intensity region to selected segment.<br />
As you move the mouse, the current background voxel is used to find a closed path that follows the same intensity value back to the starting point within the current slice. Pressing the left mouse button filles the path according to the current labeling rules. <br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
Add a rectangular area to the selected segment<br />
* Left click and drag to sweep our<br />
<br />
===[[image:ErodeLabel.png]] Margin===<br />
Grow or shrink the selected segment by a specified margin size. A positive margin size makes the segment grow while a negative margin size makes the segment shrink.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCut===<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:Threshold.png]] Threshold===<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. The range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
===[[image:Smoothing.png]] Smoothing===<br />
Smooths the selected segment by removing extrusions and filling small holes. <br />
<br />
There are four smoothing modes available: <br />
*'''Median:''' reduces noise while preserving edges <br />
*'''Gaussian:''' reduces image detail<br />
*'''Opening:''' removes extrusions <br />
*'''Closing:''' fills small holes<br />
<br />
===[[image:LogicalOperators.png]] Logical Operators===<br />
Apply logical operators on a segment or combine it with other segments.<br />
Operations include:<br />
*Copy from segment: Replace the selected segment by the modifier segment<br />
*Union with segment: Add modifier segment to current segment<br />
*Intersection with segment: only keeps those regions in the select segment that are common with the modifier segment<br />
*Subtract Segment: Subtract region of modifier segment from the selected segment<br />
*Clear: Clears the selected segment<br />
*Fill: Completely fills the selected segment<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
<br />
===Movement===<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
===Effect Selection===<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
*'''e'''- select Eraser effect<br />
* '''r''' - select Rectangle effect<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SegmentEditor&diff=46230Documentation/Nightly/Modules/SegmentEditor2016-06-27T14:17:25Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
Authors: <b>Csaba Pinter</b> (PerkLab, Queen's University), <b>Andras Lasso</b> (PerkLab, Queen's University)<br />
Contacts:<br />
* Csaba Pinter, <email>csaba.pinter@queensu.ca</email><br />
* Andras Lasso, <email>lasso@cs.queensu.ca</email><br />
<br />
<br />
[[File:LogoCco.png|left||Cancer Care Ontario]]<br />
[[File:Logo-SparKit.png|right|SparKit]]<br />
[[File:LogoOCAIRO.jpg|centre|OCAIRO]]<br />
<br />
<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This is a module for segmentation of volumes. Segmentations (also known as contouring) delineate structures of interest. Some of the tools mimic a painting interface like photoshop or gimp, but work on 3D arrays of voxels rather than on 2D pixels. This module is the successor to the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Editor Editor] module. The Segment Editor contains many of the same functionalities and more.<br />
<br />
New features include:<br />
*Overlapping segments<br />
*Conversion to model representation is automatic<br />
**This uses the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Segmentations Segmentation] infrastructure<br />
*Segments Table allows advanced visualization of segments<br />
*3D brushes allow the user to pain in 3D rather than slice by slice<br />
*Segment Editor can be embedded into any module or slicelet<br />
*Master Volume Selection allows users to change the master volume during segmentation<br />
*Oblique slices can be edited<br />
<br />
<br />
[[image:SegmentEditorUseCases.png|175px|right]]<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Create segmentations that can be used for: <br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and Their Uses}} <br />
[[image:SegmentEditorPanel.png|right|300px|Click to expand photo]]<br />
'''Segmentation:''' Choose the segmentation to edit<br />
<br />
'''Master volume:''' Choose the volume to segment. The master volume can be changed at any time during the segmentation process, safely<br />
<br />
'''Add/Remove Segment:''' Click Add to create a new segment. Select the segment you would like to delete then hit remove.<br />
<br />
'''Create Surface:''' Display your segmentation in the 3D Viewer. This is a toggle button. When turned on the surface is created and updated automatically as the user is segmenting. When turned off, the conversion is not ongoing so the segmentation process is faster.<br />
<br />
'''Segments Table:''' Displays your segments. Click the eye icon to show or hide the segment. Click and hold the button for advanced options (Show in 3D, Show in 2D as fill, Show in 2D as outline)<br />
<br />
'''Effects:''' Select the desired effect here. See below for more information about each effect.<br />
<br />
'''Options:''' Options for the selected effect will be displayed here.<br />
<br />
'''Masking:''' These options allow you to define the editable areas and whether or not certain segments can be overwritten.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Effects}}<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in. To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
Paint on the selected segment with a round brush.<br />
<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions. In this mode, the label color is set to the value of the labelmap where the first left click occurs. This mode allows you to quickly switch between colors.<br />
<br />
===[[image:Draw.png]] Draw===<br />
Draw segment outline in slice viewers.<br />
<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===[[image:Eraser.png]] Erase===<br />
Left-click and drag in slice or 3D viewers to erase from the current segment with a round brush. The radius can be adjusted. Additional brush modes include sphere brush and pixel mode.<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
Add uniform intensity region to selected segment.<br />
As you move the mouse, the current background voxel is used to find a closed path that follows the same intensity value back to the starting point within the current slice. Pressing the left mouse button filles the path according to the current labeling rules. <br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
Add a rectangular area to the selected segment<br />
* Left click and drag to sweep our<br />
<br />
===[[image:ErodeLabel.png]] Margin===<br />
Grow or shrink the selected segment by a specified margin size. A positive margin size makes the segment grow while a negative margin size makes the segment shrink.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCut===<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:Threshold.png]] Threshold===<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. The range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
===[[image:Smoothing.png]] Smoothing===<br />
Smooths the selected segment by removing extrusions and filling small holes. <br />
<br />
There are four smoothing modes available: <br />
*'''Median:''' reduces noise while preserving edges <br />
*'''Gaussian:''' reduces image detail<br />
*'''Opening:''' removes extrusions <br />
*'''Closing:''' fills small holes<br />
<br />
===[[image:LogicalOperators.png]] Logical Operators===<br />
Apply logical operators on a segment or combine it with other segments.<br />
Operations include:<br />
*Copy from segment: Replace the selected segment by the modifier segment<br />
*Union with segment: Add modifier segment to current segment<br />
*Intersection with segment: only keeps those regions in the select segment that are common with the modifier segment<br />
*Subtract Segment: Subtract region of modifier segment from the selected segment<br />
*Clear: Clears the selected segment<br />
*Fill: Completely fills the selected segment<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
<br />
===Movement===<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
===Effect Selection===<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
*'''e'''- select Eraser effect<br />
* '''r''' - select Rectangle effect<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Training&diff=46028Documentation/Nightly/Training2016-06-17T13:42:07Z<p>Hillarylia: /* Specific functions */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
<br />
=Introduction: Slicer {{documentation/version}} Tutorials=<br />
<br />
*This page contains "How to" tutorials with matched sample data sets. They demonstrate how to use the 3D Slicer environment (version {{documentation/version}} release) to accomplish certain tasks. <br />
*For tutorials for other versions of Slicer, please visit the [[Training| Slicer training portal]].<br />
*For "reference manual" style documentation, please visit the [[Documentation/{{documentation/version}}|Slicer {{documentation/version}} documentation page]]<br />
*For questions related to the Slicer4 Compendium, please send an e-mail to '''[http://www.na-mic.org/Wiki/index.php/User:SPujol Sonia Pujol, Ph.D]'''<br />
<br />
<br />
{{documentation/banner|text=Some of these tutorials are based on older releases of 3D Slicer. The concepts are still useful but bear in mind that some interface elements and features will be different in updated versions.}}<br />
<br />
=General Introduction=<br />
<br />
==Slicer Welcome Tutorial==<br />
{|width="100%"<br />
|<br />
*The [[media:SlicerWelcome_Tutorial_SoniaPujol_2013.pdf|SlicerWelcome tutorial]] is an introduction to Slicer based on the Welcome module.<br />
*Author: Sonia Pujol, Ph.D.<br />
*Audience: First time users who want a general introduction to the software.<br />
*Modules: Welcome to Slicer, Sample Data<br />
*Based on: 3D Slicer version 4.0<br />
|align="right"|<br />
[[image:SlicerWelcome-image.png|250px|SlicerWelcome tutorial]]<br />
|}<br />
<br />
==Slicer4Minute Tutorial==<br />
{|width="100%"<br />
|<br />
*The [[media:Slicer4minute_SoniaPujol_2013.pdf|Slicer4Minute tutorial]] is a brief introduction to the advanced 3D visualization capabilities of Slicer 4.0.<br />
*Author: Sonia Pujol, Ph.D.<br />
*Audience: First time users who want to discover Slicer in 4 minutes.<br />
*Modules: Welcome to Slicer, Models<br />
*Based on: 3D Slicer version 4.4<br />
*The [[media:Slicer4minute.zip|Slicer4Minute dataset]] contains an MR scan of the brain and 3D reconstructions of the anatomy<br />
|align="right"|<br />
[[image:Slicer4minute-image.png|250px|right|Slicer4Minute tutorial]]<br />
|}<br />
<br />
==Slicer4 Data Loading and 3D Visualization ==<br />
{|width="100%"<br />
|<br />
*The [http://www.na-mic.org/Wiki/images/7/71/3DDataLoadingandVisualization_SoniaPujol_slicer4.4.pdf Data loading and 3D visualization] course guides through the basics of loading and viewing volumes and 3D models in Slicer4 . <br />
*Author: Sonia Pujol, Ph.D.<br />
*Modules: Welcome to Slicer, Sample Data, Models.<br />
*Audience: End-users<br />
*Based on: 3D Slicer version 4.4<br />
*The [[Media:3DVisualizationData.zip | 3DVisualization dataset]] contain an MR scan and a series of 3D models of the brain.<br />
|align="right"|<br />
[[Image:Slicer4DataLoading_tutorial.png|right|250px|]]<br />
|}<br />
<br />
=Tutorials for software developers=<br />
<br />
== Slicer4 Programming Tutorial ==<br />
{|width="100%"<br />
|<br />
*The [[Media: Slicer4_ProgrammingTutorial_SPujol-SPieper_slicer4.4.pdf| Hello Python Programming tutorial]] course guides through the integration of a python module in Slicer4. <br />
*Author: Sonia Pujol, Ph.D., Steve Pieper, Ph.D.<br />
*Audience: Developers<br />
*Based on: 3D Slicer version 4.4<br />
*The [[Media:HelloPython_Slicer4.4.zip| HelloPython dataset]] contains three Python files and an MR scan of the brain.<br />
|align="right"|<br />
[[Image:HelloPythonTutorial.png|right|250px|]]<br />
|}<br />
<br />
For additional Python scripts examples, please visit the [[Documentation/{{documentation/version}}/ScriptRepository|Script Repository page]]<br />
<br />
==Developing and contributing extensions for 3D Slicer==<br />
{|width="100%"<br />
|<br />
*The [http://goo.gl/IP4cdg Developing and contributing extensions for 3D Slicer tutorial ] is an introduction to the internals of 3D Slicer and the process of contributing a 3D Slicer extension.<br />
*Authors: Andrey Fedorov, Jean-Christophe Fillion-Robin, Steve Pieper<br />
*Audience: Developers<br />
*Based on: 3D Slicer version 4.4<br />
|align="right"|<br />
[[Image:Contributing3DSlicerExtension.png|right|250px|]]<br />
|}<br />
<br />
=Specific functions=<br />
<br />
==Slicer4 Diffusion Tensor Imaging Tutorial ==<br />
{|width="100%"<br />
|<br />
*The [http://wiki.na-mic.org/Wiki/images/b/b2/DiffusionMRIanalysis_Tutorial_SoniaPujol_UNC2015.pdf Diffusion Tensor Imaging Tutorial] course guides through the basics of loading Diffusion Weighted images in Slicer, estimating tensors and generating fiber tracts. <br />
*Author: Sonia Pujol, Ph.D.<br />
*Audience: End-users and developers<br />
*Modules: Data, Volumes, DWI to DTI Estimation, Diffusion Tensor Scalar Measurements, Editor, Markups,Tractography Label Map Seeding, Tractography Interactive Seeding<br />
*Based on: 3D Slicer version 4.4<br />
*The [[media:Dti tutorial data.zip|DTI dataset]] contains an MR Diffusion Weighted Imaging scan of the brain.<br />
|align="right"|<br />
[[Image:Slicer4DTI Tutorial.png|right|250px|]]<br />
|}<br />
<br />
==Slicer4 Neurosurgical Planning Tutorial==<br />
{|width="100%"<br />
|<br />
*The [http://wiki.na-mic.org/Wiki/images/3/30/WhiteMatterExplorationTutorial_SoniaPujol_UNC2015.pdf Neurosurgical Planning tutorial] course guides through the generation of fiber tracts in the vicinity of a tumor.<br />
*Author: Sonia Pujol, Ph.D., Ron Kikinis, M.D.<br />
*Audience: End-users and developers<br />
*Modules: Volumes, Editor, Tractography Label Map Seeding, Tractography Interactive Seeding<br />
*Based on: 3D Slicer version 4.4<br />
*The [[Media:WhiteMatterExplorationData.zip| White Matter Exploration datasets]] contains a Diffusion Weighted Imaging scan of brain tumor patient.<br />
|align="right"|<br />
[[Image:NeurosurgicalPlanningTutorial.png|right|250px|link=http://vimeo.com/67336069]]<br />
|}<br />
<br />
==Slicer4 3D Visualization of DICOM images for Radiology Applications==<br />
{|width="100%"<br />
|<br />
*The [[Media:3DVisualizationDICOM_SoniaPujol.pdf |3D Visualization of DICOM images for Radiology Applications]] course guides through 3D data loading and visualization of DICOM images for Radiology Applications in Slicer4. <br />
*Author: Sonia Pujol, Ph.D., Kitt Shaffer, M.D., Ph.D., Ron Kikinis, M.D.<br />
*Audience: Radiologists and users of Slicer who need a more comprehensive overview over Slicer4 visualization capabilities.<br />
*Modules: DICOM, Volumes, Volume Rendering, Models.<br />
*Based on: 3D Slicer version 4.3.1_06.29.2014<br />
*The [[Media:3DVisualization_DICOM_images_part1.zip | 3DVisualizationDICOM_part1]] and [[Media:3DVisualization_DICOM_images_part2.zip | 3DVisualizationDICOM_part2]] datasets contain a series of MR and CT scans, and 3D models of the brain, lung and liver.<br />
|align="right"|<br />
[[Image:Slicer4RSNA_2.png|right|250px|]]<br />
|}<br />
<br />
==Slicer4 Quantitative Imaging tutorial==<br />
{|width="100%"<br />
|<br />
*The [http://wiki.na-mic.org/Wiki/images/c/c9/QuantitativeImaging_SoniaPujol_RSNA2014_Dec2.pdf Slicer4 Quantitative Imaging tutorial] guides through the use for Slicer for quantifying small volumetric changes in slow-growing tumors, and for calculating Standardized Uptake Value (SUV) from PET/CT data.<br />
*Authors: Sonia Pujol, Ph.D., Katarzyna Macura, M.D., Ron Kikinis, M.D.<br />
*Audience: Radiologists and users of Slicer who need a more comprehensive overview over Slicer4 quantitative imaging capabilities.<br />
*Modules: Data, Volumes, Models, Change Tracker, PET Standard Uptake Value Computation<br />
*Based on: 3D Slicer version 4.4<br />
*The [[media:QuantitativeImaging.zip| Quantitative Imaging dataset]] contains a series of MR and PET/CT data.<br />
|align="right"|<br />
[[Image:Slicer4_QuantitativeImaging.png|right|250px|]]<br />
|}<br />
<br />
== Slicer4 IGT ==<br />
{|width="100%"<br />
|<br />
*[http://www.slicerigt.org/wp/user-tutorial/ Slicer IGT tutorials]<br />
*Authors: Tamas Ungi, M.D, Ph.D., Junichi Tokuda, Ph.D.<br />
*Audience: End-users interested in using Slicer for real-time navigated procedures. E.g. navigated needle insertions or other minimally invasive medical procedures.<br />
*Modules: SlicerIGT Extension<br />
*Based on: Slicer4.3.1-2014.09.14<br />
*Data: [https://onedrive.live.com/redir?resid=7230D4DEC6058018!2937&authkey=!AGQkSCZOwjVYXw8&ithint=folder%2cpptx Slicer-IGT datasets]<br />
|align="right"|<br />
[[Image:SlicetIGT.png|right|150px|]]<br />
|}<br />
<br />
== Slicer4 3D Printing ==<br />
<br />
{|width="100%"<br />
|<br />
* This ''Slicer 4.3 [https://www.youtube.com/watch?v=MKLWzD0PiIc 3D printing tutorial]'' shows how to prepare 3D Slicer data for 3D printing.<br />
* Authors: Nabgha Farhat, MSc<br />
* Audience: Users and developers interested in 3D printing<br />
|align="right"|[[Image:3DPrinting_tutorial.png|250px]]<br />
|}<br />
<br />
== Slicer4 Image Registration ==<br />
<br />
{|width="100%"<br />
|<br />
* The [http://www.na-mic.org/Wiki/images/8/8c/RegistrationTutorial_SoniaPujol_UNC2015.pdf Slicer 4 Image registration Tutorial] shows how to perform intra- and inter-subject registration within Slicer.<br />
* Authors: Sonia Pujol, Ph.D., Dominik Meier, Ph.D., Ron Kikinis, M.D.<br />
* Audience: Users and developers interested in image registration<br />
* Dataset: [[Media:RegistrationData.zip| 3D Slicer Registration Data]]<br />
|align="right"|[[File:registration_Slicer4.png|250px]]<br />
|}<br />
<br />
See [[Documentation/{{documentation/version}}/Registration/RegistrationLibrary|the Registration Library for worked out registration examples with data]].<br />
<br />
== Fast GrowCut ==<br />
<br />
{|width="100%"<br />
|<br />
* The [[media:FastGrowCutTutorial.pdf |Fast GrowCut tutorial]] shows how to perform a segmentation using the Fast GrowCut effect in Slicer.<br />
* Authors: Hillary Lia<br />
* Audience: Users interested in segmentation<br />
|align="right"|[[File:FastGrowCutLogo.png|200px]]<br />
|}<br />
<br />
<br />
== Other ==<br />
<br />
Additional (non-curated) videos-based demonstrations using 3D Slicer are accessible on [http://www.youtube.com/results?search_query=3d+slicer&sm=3 You Tube].<br />
<br />
=Summer 2014 Tutorial contest= <br />
<br />
==Cardiac Agatston Tutorial==<br />
{|width="100%"<br />
|<br />
*[http://wiki.na-mic.org/Wiki/index.php/File:TutorialContest_CardiacAgatstonScoring_2014.pdf Cardiac Agatston Scoring Tutorial]<br />
*Authors: Jessica Forbes, Hans Johnson, University of Iowa<br />
*Dataset: [http://wiki.na-mic.org/Wiki/index.php/File:CardiacAgatstonMeasures_TutorialContestSummer2014.zip Cardiac Agatston Scoring Tutorial Dataset]<br />
|align="right"|<br />
[[File:CardiacAgatstonMeasuresModuleScreenshot.jpg| 250px]]<br />
|}<br />
<br />
==CMR Toolkit LA workflow==<br />
{|width="100%"<br />
|<br />
*[http://wiki.na-mic.org/Wiki/index.php/File:CMRToolkitLAWorkflow_TutorialContestSummer2014.pdf CMR Toolkit LA Workflow Tutorial]<br />
*Authors: Salma Bengali, Josh Cates, University of Utah<br />
*Dataset: [http://wiki.na-mic.org/Wiki/index.php/File:CMRToolkitLAWorkflowData_TutorialContestSummer2014.zip CMRToolkitLAWorkflow Dataset]<br />
|align="right"|<br />
[[Image:Utah_SummerContest2014_tutorial.png|300px]]<br />
|}<br />
<br />
=Summer 2013 Tutorial contest= <br />
<br />
==Cardiac MRI Toolkit==<br />
{|width="100%"<br />
|<br />
*[[Media:Cardiac MRI Toolkit Tutorial Summer2013.pdf|Cardiac MRI Toolkit]]<br />
*Authors: Salma Bengali, Josh Cates, SCI, Utah<br />
*Dataset: [[Media:Cardiac_MRI_Toolkit_Tutorial_Data.zip|Cardiac MRI Toolkit Tutorial Dataset]]<br />
|align="right"|<br />
[[Image:CMRToolkit_Tutorial_Image.png|250px]]<br />
|}<br />
<br />
==HelloCLI==<br />
{|width="100%"<br />
|<br />
*[[Media:Hello_CLI_TutorialContestSummer2013.pdf|HelloCLI]]<br />
*Authors: Nadya Shusharina, Greg Sharp, MGH, Boston<br />
*Dataset: [[Media:Hello_CLI_TutorialContestSummer2013.zip|HelloCLI Dataset]]<br />
|align="right"|<br />
[[Image:Cli_icon.png|300px]]<br />
|}<br />
<br />
==SlicerRT==<br />
{|width="100%"<br />
|<br />
*[[Media:SlicerRT_TutorialContestSummer2013.pdf|SlicerRT Tutorial]]<br />
*Authors: Csaba Pinter, Andras Lasso (Queen's), Kevin Wang (PMH, Toronto)<br />
*Dataset: [[Media:CsabaPinter-SlicerRtTutorial_Namic2013June.zip|SlicerRT Dataset]] <br />
|align="right"|<br />
[[Image:667px-SlicerRT_0.10_IsocenterShiftingEvaluation.png|250px]]<br />
|}<br />
<br />
==DTIPrep==<br />
{|width="100%"<br />
|<br />
*[[Media:DTIPrep_TutorialContestSummer2013.pdf|DTIPrep]]<br />
*Authors: Dave Welch, SINAPSE, IOWA <br />
*Dataset: [[Media:DTIPrepData_TutorialContestSummer2013.zip|DTIPrep Dataset]]<br />
|align="right"|<br />
[[Image:DTIPrep-tutorial.png|250px]]<br />
|}<br />
<br />
= Summer 2012 Tutorial contest = <br />
<br />
==Automatic Left Atrial Scar Segmenter ==<br />
{|width="100%"<br />
|<br />
*[http://wiki.na-mic.org/Wiki/index.php/CARMA-LA-Scar_TutorialContestSummer2012 Automatic Left Atrial Scar Segmenter] <br />
*Authors: Greg Gardner, Josh Cates, SCI, Utah<br />
*Dataset: [http://wiki.na-mic.org/Wiki/index.php/File:CARMA-LA-Scar_TutorialContestSummer2012.zip CARMA-LA-Scar data]<br />
|align="right"|<br />
[[Image:Carma afib auto scar.png|250px]]<br />
|}<br />
<br />
==Qualitative and quantitative comparison of two RT dose distributions==<br />
{|width="100%"<br />
|<br />
*[http://www.na-mic.org/Wiki/index.php/File:PlastimatchDose_TutorialContestSummer2012.pdf Qualitative and quantitative comparison of two RT dose distributions]<br />
*Authors: James Shackleford, Nadya Shusharina, Greg Sharp, MGH<br />
|align="right"|<br />
[[Image:PlastimatchDose.png|250px]]<br />
|}<br />
<br />
==Dose accumulation for adaptive radiation therapy==<br />
{|width="100%"<br />
|<br />
*[http://www.na-mic.org/Wiki/index.php/File:DoseAccumulationforAdaptiveRadiationTherapy_TutorialContestSummer2012.pdf Dose accumulation for adaptive radiation therapy]<br />
*Authors: Kevin Wang, Csaba Pinter, Andras Lasso, PMH, Queen's<br />
|align="right"|<br />
[[Image:AdaptiveradiationTherapy.png|250px]]<br />
|}<br />
<br />
==WebGL Export==<br />
{|width="100%"<br />
|<br />
*[http://www.na-mic.org/Wiki/index.php/File:WebGLExport_TutorialContestSummer2012.pdf WebdGLExport]<br />
*Authors: Nicolas Rannou, Daniel Haehn, Children's Hospital<br />
|align="right"|<br />
[[Image:WebGLExport.png|250px]]<br />
|}<br />
<br />
==OpenIGTLink==<br />
{|width="100%"<br />
|<br />
*[http://wiki.slicer.org/slicerWiki/images/f/f1/OpenIGTLinkTutorial_Slicer4.1.0_JunichiTokuda_Apr2012.pdf OpenIGTLink]<br />
*Authors: Junichi Tokuda, BWH<br />
|align="right"|<br />
[[Image:OpenIGTLink.png|250px]]<br />
|}<br />
<br />
=Additional resources =<br />
{|width="100%"<br />
|<br />
* This ''Slicer 4.1 [http://vimeo.com/41096643 webinar]'' presents the new features and improvements of the release, and a brief overview of work for the next release.<br />
* Authors: Steve Pieper Ph.D.<br />
* Audience: First time users and developers interested in Slicer 4.1 new features.<br />
* Length: 0h20m<br />
|align="right"|[[Image:Webinar-Slicer-4.1.png|250px]]<br />
|}<br />
<br><br />
----<br />
<br><br />
{|width="100%"<br />
|<br />
*This ''Intro to Slicer 4.0 [http://vimeo.com/37671358 webinar]'' provides an introduction to 3DSlicer, and demonstrates core functionalities such as loading, visualizing and saving data. Basic processing tools, including manual registration, manual segmentation and tractography tools are also highlighted. This webinar is a general overview. For in depth information see the modules above and the documentation pages.<br />
*Authors: Julien Finet, M.S., Steve Pieper, Ph.D., Jean-Christophe Fillion-Robin, M.S. <br />
*Audience: First time users interested in a broad overview of Slicer’s features and tools.<br />
*Length: 1h20m<br />
|align="right"|[[Image:Webinar.png|250px]]<br />
|}<br />
<br><br />
----<br />
<br><br />
{|width="100%"<br />
|<br />
*The ''[[Documentation/{{documentation/version}}/Registration/RegistrationLibrary|Slicer Registration Case Library]]'' provides many real-life example cases of using the Slicer registration tools. They include the dataset and step-by-step instructions to follow and try yourself. <br />
:Author: Dominik Meier, Ph.D.<br />
:Audience: users interested learning/applying Slicer image registration technology<br />
|align="right"|[[Image:RegLib_table.png|250px|link=http://wiki.slicer.org/slicerWiki/index.php/Documentation/{{documentation/version}}/Registration/RegistrationLibrary]]<br />
|}<br />
<br />
= External Resources =<br />
<br />
== Using the Editor ==<br />
<br />
This set of tutorials about the use of slicer in paleontology is very well written and provides step-by-step instructions. Even though it covers slicer version 3.4, many of the concepts and techniques have applicability to the new version and to any 3D imaging field:<br />
<br />
* [http://openpaleo.blogspot.com/2008/12/3d-slicer-tutorial.html Open Source Paleontologist: 3D Slicer: The Tutorial]<br />
* [http://openpaleo.blogspot.com/2008/12/3d-slicer-tutorial-part-ii.html Open Source Paleontologist: 3D Slicer: The Tutorial Part II]<br />
* [http://openpaleo.blogspot.com/2008/12/3d-slicer-tutorial-part-iii.html Open Source Paleontologist: 3D Slicer: The Tutorial Part III]<br />
* [http://openpaleo.blogspot.com/2008/12/3d-slicer-tutorial-part-iv.html Open Source Paleontologist: 3D Slicer: The Tutorial Part IV]<br />
* [http://openpaleo.blogspot.com/2009/03/3d-slicer-tutorial-part-v.html Open Source Paleontologist: 3D Slicer: The Tutorial Part V]<br />
* [http://openpaleo.blogspot.com/2009/03/3d-slicer-tutorial-part-vi.html Open Source Paleontologist: 3D Slicer: The Tutorial Part VI]<br />
<br />
== Team Contributions ==<br />
See the collection of videos on the [http://vimeo.com/album/2363361 Kitware vimeo album].<br />
<br />
== User Contributions ==<br />
See the [[Documentation/{{documentation/version}}/Training/UserContributions|User Contributions Page]] for more content.<br />
<br />
[http://www.youtube.com/results?search_query=3d+slicer&sm=3 YouTube videos about 3D Slicer]</div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SegmentEditor&diff=46006Documentation/Nightly/Modules/SegmentEditor2016-06-16T19:57:31Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
Authors: <b>Csaba Pinter</b> (PerkLab, Queen's University), <b>Andras Lasso</b> (PerkLab, Queen's University)<br />
Contacts:<br />
* Csaba Pinter, <email>csaba.pinter@queensu.ca</email><br />
* Andras Lasso, <email>lasso@cs.queensu.ca</email><br />
<br />
<br />
[[File:LogoCco.png|left||Cancer Care Ontario]]<br />
[[File:Logo-SparKit.png|right|SparKit]]<br />
[[File:LogoOCAIRO.jpg|centre|OCAIRO]]<br />
<br />
<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This is a module for segmentation of volumes. Segmentations (also known as contouring) delineate structures of interest. Some of the tools mimic a painting interface like photoshop or gimp, but work on 3D arrays of voxels rather than on 2D pixels. This module is the successor to the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Editor Editor] module. The Segment Editor contains many of the same functionalities and more.<br />
<br />
New features include:<br />
*Overlapping segments<br />
*Conversion to model representation is automatic<br />
**This uses the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Segmentations Segmentation] infrastructure<br />
*Segments Table allows advanced visualization of segments<br />
*3D brushes allow the user to pain in 3D rather than slice by slice<br />
*Segment Editor can be embedded into any module or slicelet<br />
*Master Volume Selection allows users to change the master volume during segmentation<br />
<br />
<br />
[[image:SegmentEditorUseCases.png|175px|right]]<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Create segmentations that can be used for: <br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and Their Uses}} <br />
[[image:SegmentEditorPanel.png|right|300px|Click to expand photo]]<br />
'''Segmentation:''' Choose the segmentation to edit<br />
<br />
'''Master volume:''' Choose the volume to segment<br />
<br />
'''Add/Remove Segment:''' Click Add to create a new segment. Select the segment you would like to delete then hit remove.<br />
<br />
'''Create Surface:''' Display your segmentation in the 3D Viewer<br />
<br />
'''Segments Table:''' Displays your segments. Click the eye icon to show or hide the segment. Click and hold the button for advanced options (Show in 3D, Show in 2D as fill, Show in 2D as outline)<br />
<br />
'''Effects:''' Select the desired effect here. See below for more information about each effect.<br />
<br />
'''Options:''' Options for the selected effect will be displayed here.<br />
<br />
'''Masking:''' These options allow you to define the editable areas and whether or not certain segments can be overwritten.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Effects}}<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in. To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
Paint on the selected segment with a round brush.<br />
<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions. In this mode, the label color is set to the value of the labelmap where the first left click occurs. This mode allows you to quickly switch between colors.<br />
<br />
===[[image:Draw.png]] Draw===<br />
Draw segment outline in slice viewers.<br />
<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===[[image:Eraser.png]] Eraser===<br />
Left-click and drag in slice or 3D viewers to erase from the current segment with a round brush. The radius can be adjusted. Additional brush modes include sphere brush and pixel mode.<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
Add uniform intensity region to selected segment.<br />
As you move the mouse, the current background voxel is used to find a closed path that follows the same intensity value back to the starting point within the current slice. Pressing the left mouse button filles the path according to the current labeling rules. <br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
Add a rectangular area to the selected segment<br />
* Left click and drag to sweep our<br />
<br />
===[[image:ErodeLabel.png]] Margin===<br />
Grow or shrink the selected segment by a specified margin size. A positive margin size makes the segment grow while a negative margin size makes the segment shrink.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCut===<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:Threshold.png]] Threshold===<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. The range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
===[[image:Smoothing.png]] Smoothing===<br />
Smooths the selected segment by removing extrusions and filling small holes. There are four smoothing modes available: median, Gaussian, opening and closing. The median method reduces noise while preserving edges. The Gaussian method reduces image detail. The opening method removes extrusions and the closing method fills small holes.<br />
<br />
===[[image:LogicalOperators.png]] Logical Operators===<br />
Apply logical operators on a segment or combine it with other segments.<br />
Operations include:<br />
*Copy from segment: Replace the selected segment by the modifier segment<br />
*Union with segment: Add modifier segment to current segment<br />
*Intersection with segment: only keeps those regions in the select segment that are common with the modifier segment<br />
*Subtract Segment: Subtract region of modifier segment from the selected segment<br />
*Clear: Clears the selected segment<br />
*Fill: Completely fills the selected segment<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
<br />
===Movement===<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
===Effect Selection===<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
*'''e'''- select Eraser effect<br />
* '''r''' - select Rectangle effect<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Editor&diff=46005Documentation/Nightly/Modules/Editor2016-06-16T18:33:57Z<p>Hillarylia: /* image:Draw.png Draw */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Steve Pieper (Isomics Inc.), Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BWH), Jim Miller (GE)<br><br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/ National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Steve Pieper, <email>pieper@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
|{{collaborator|logo|ge}}|{{collaborator|longname|ge}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
__TOC__<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This is a module for manual segmentation of volumes. Segmentations (also known as contouring) delineate structures of interest. Some of the tools mimic a painting interface like photoshop or gimp, but work on 3D arrays of voxels rather than on 2D pixels. <br />
This module is used for manipulating label map volumes. Each of the slice viewers can be operated on independently, although typically the same background and label layer will be used in all slice views. Whichever label map volume is selected in the label layer will be the target for each of the editor effects. Any scalar volume can be used as the background layer. For example, you may wish to create a label map volume based on a high resolution structural scan, and then edit while looking at a lower resolution diffusion scan.<br />
<br />
'''Terminology'''<br />
*'''''Label Map Volume''''' is a 3D scalar volume node where each voxel is a number indicating the type of tissue at that location. A label volume is associated with a Color Node that maps the numbers into colors and text strings<br />
*'''''Slice Viewer''''' refers the Red, Yellow, and Green windows that display volume slices on the slicer interface.<br />
*'''''Effect''''' refers to any of the editor tools in the editor tool box.<br />
*'''''Labeler''''' is a type of effect that modifies the existing label map; labelers have a common set of controls options.<br />
<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
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:<br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing (using, for example, the [[Documentation/{{documentation/version}}/Modules/LabelStatistics|Label Statistics]] module)<br />
<br />
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.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
The [[Documentation/{{documentation/version}}/Training| Slicer {{documentation/version}} Training]] page provides several use cases that rely on Editor functionality.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
[[image:Editor-2011-11-24.png|400px]]<br />
<br />
==== Single Label Map ====<br />
<br />
[[image:SlicerQT-real 138.png|200px|right|Color Table Dialog]]<br />
A typical straightforward Editor workflow for consists of the following steps:<br />
<br />
# Load a volume.<br />
# Enter the Editor module using either the toolbar or the Modules menu button.<br />
# You will be prompted to select a color table to use for editing (see Color Table Dialog image).<br />
#*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 [[Documentation/{{documentation/version}}/Modules/Colors|Colors Module]].<br />
#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 initialized to all zeros and it will have the 'Label Map' property set. (You can look at these in the "Info" tab of the [[Documentation/{{documentation/version}}/Modules/Volumes|Volumes Module]].<br />
#*If your background was named 't1' the label will be called 't1-label'.<br />
#When label map volume is selected, the edit tools frame will automatically expand and you can use the Editor Effects to define your structures.<br />
<br />
<br />
* '''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 some other [[Documentation/{{documentation/version}}#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.<br />
* '''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).<br />
<br />
<br />
==== Per-Structure Volumes ====<br />
''Please familiarize yourself with the Single Label Map approach before attempting to use the Multiple Label Map tools''<br />
<br />
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.<br />
<br />
# Start with a Merge Volume that will contain all the structures of interest.<br />
#* 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.<br />
#* If you are starting from scratch, you can use the Add Structure button to define new label volumes. <br />
#** Add Structure will prompt you for a label value based on the Color Table selected when the Merge Volume was created.<br />
#** The new Structure Volume will be selected for editing.<br />
#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).<br />
#After defining the individual structures, you can use the Merge All button to put the volumes back into the Merge Volume.<br />
#* ''Hint: If the structures overlap, you can use the Order column to define the priority of the structures during the merge process.'' <br />
#Use Merge And Build to create a set of modules from the merged volume.<br />
#* This uses the Joint Smoothing option of the [[Documentation/{{documentation/version}}/Modules/ModelMaker|Model Maker Module]] to create watertight models.<br />
#* ''Hint: you can use the Model Maker module to manipulate other building parameters.'' <br />
# The Delete Structures button will remove the Per-Structure Volumes from your scene. If you want to delete a single volume, use the [[Documentation/{{documentation/version}}/Modules/Data|Data Module]].<br />
<br />
If you have the [[Documentation/{{documentation/version}}/Extensions/Reporting|Reporting Extension]] installed, you can export the stuctures to DICOM Segmentation (SEG) format, and will appear as a series for the corresponding study in the [[Documentation/{{documentation/version}}/Modules/DICOM|DICOM Module]].<br />
<br />
==Effects==<br />
<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in.<br />
To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions.<br />
<br />
===[[image:Draw.png]] Draw===<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply segment<br />
<br />
===[[image:WandEffect.png]] Wand===<br />
Click to fill connected regions with similar intensities and click multiple times to grow the region. The tolerance option controls how similar adjacent pixels must be in order to be filled.<br />
* Max pixels per click determines how quickly the region is filled<br />
* Fill Volume option allows for 3D segmentation<br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
* Left click to start rubber band rectangle<br />
* Release button to apply<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
* Moving the mouse defines an outline where the pixels all have the same background value as the current background pixel<br />
* Clicking the left mouse button applies that outline to the label map<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
===[[image:ChangeIsland.png]] Change Island=== <br />
Changes color of an island, where an Island is a group of connected pixels with the same label. This does not change other voxels with the same label. This tool is useful after thresholding, to separate anatomy further.<br />
# Click Change Island<br />
#Click New Label and select a color, or enter a color number<br />
#Click any part of the island<br />
#Pixels that are part of that island will receive the New Label value<br />
<br />
===[[image:RemoveIslands.png]] Remove Islands===<br />
Automatically removes unlabelled voxels within a region.<br />
<br />
* Useful for removing small areas of noise inside a surrounding thresholded area<br />
* Two modes are supported:<br />
** Connectivity mode removes unsegmented islands that are completely enclosed with segmentation<br />
** Morphology mode removes small regions in and out of the segmentation even if they are partly connected to the larger regions.<br />
<br />
===[[image:SaveIsland.png]] Save Island===<br />
Save Island retains the selected island, and removes disconnected pixels with the same label. This is another way to clean up the results of a thresholding operation. This is useful for separating a single connected structure from other structures.<br />
<br />
===[[image:ErodeLabel.png]] Erode and [[image:DilateLabel.png]] Dilate===<br />
<br />
Add or remove a single layer of pixels from the current label value<br />
<br />
===[[image:ChangeLabel.png]] Change Label===<br />
Changes every voxel in the target label map with the input value to the output value<br />
<br />
===Undo/Redo===<br />
* The Editor can save state before each effect is applied. This is useful for experimentation and error correction. Prior to version 3.6.2 this can be somewhat slow and very memory hungry when working with large volumes so it is disabled by default. As of version 3.6.2 the save operation is lightweight and is enabled by default for up to 100 steps.<br />
* When enabled the buttons can be used to move forward and back through the volume checkpoints.<br />
* Note that for some volumes storing the Undo buffer can fail (e.g. due to lack of memory). In this case the undo/redo operations will fail to operate.<br />
<br />
===[[Image:ModelMaker.jpg]] Modelmaker===<br />
* A simple interface to of the full CLI module (See [[Documentation/{{documentation/version}}/Modules/ModelMaker|Model Maker Documentation]])<br />
* The currently selected label number will be used to build.<br />
* Select smooth model for more pleasing results<br />
* Just click apply and models of all label maps will be created.<br />
* Model building runs in the background and the model appears in the 3D view when finished.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCutSegment===<br />
<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:WatershedFromMarkerEffect.png]] WatershedFromMarkers===<br />
<br />
Watershed From Markers a multi-label segmentation tool which has similar behavior to the GrowCuts algorithm. As input, it expects the current label map to be multiple labels or markers defining different objects. By applying the algorithm, the labels are greedily grown with the minimal gradient value. Objects with well defined edges are desirable for good segmentations with this method.<br />
<br />
See the [[Documentation/{{documentation/version}}/Modules/Editor/WatershedFromMarkers| WatershedFromMarkers ]] page for more details.<br />
<br />
===[[image:FastMarching.png]] FastMarching===<br />
<br />
FastMarching is a statistics-based region growing 3D segmentation algorithm. Paint to define seed voxels (one color only). Push "March" button to initiate region growing. Use the marching slider to interactively examine the front propagation history and choose the result you like.<br />
<br />
===Labeler Effects===<br />
<br />
The following options work for all labelers (draw, paint, level tracing...)<br />
<br />
====Threshold Painting and Drawing====<br />
<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. As of version 4.5, the range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
====Paint Over====<br />
<br />
When enabled, the labels are set to the new value no matter what their previous value was.<br />
<br />
When disabled, only 0 (black/transparent) voxels are set to the new value. Non-zero values are not changed.<br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
The following keyboard shortcuts are active when you are in the Editor module. They do not require a modifier key (no Control or Alt required) and they are intended to allow two-handed editing, where on hand is on the mouse and the other hand uses the keyboard to switch modes.<br />
<br />
====Movement====<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''Shift''' - scroll other slices to mouse location<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
====Label Values (Colors) ====<br />
* '''e''' - toggles from the current color to 0 and back (use this while painting or drawing to quickly erase if you go over the line)<br />
* '''c''' - show color picker<br />
<br />
====Segmentation Control====<br />
* '''z''' - undo<br />
* '''y''' - redo<br />
<br />
====Display====<br />
* '''o''' - toggle outline mode for label display<br />
* '''g''' - toggle label opacity<br />
* '''t''' - swap foreground and background volumes<br />
<br />
====Effect Selection====<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
* '''w''' - select Wand effect<br />
* '''r''' - select Rectangle effect<br />
* '''Space''' bring up tool selection window at current mouse location<br />
<br />
=== Label Keystrokes ===<br />
Label Keystrokes are active for any effect that applies the current label color, such as Paint, Draw, or Wand.<br />
* '''\''' (backslash key) - "eye dropper" to pick up the current paint color under the cursor (note the slice view must have 'focus', which means you must have clicked in the slice view once before the eye dropper will work correctly)<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
{{documentation/{{documentation/version}}/module-section|Hints}}<br />
[[Image:Selection 139.png|thumb|400px|right|Use of the Label Outline feature (below) vs the default view (above). Note that the label outlines appear faint in the lower image -- zoom in by clicking on the image to see them as they actually appear in Slicer.]]<br />
* You can use the [[Documentation/{{documentation/version}}/Modules/ImageLabelCombine|Image Label Combine]] module to make a composite label map from two independent input label maps. Sometimes it will make sense to have a separate label map for each anatomical structure and then combine them after editing. In other cases it makes sense to put all structures into the same label map so that you can use the Paint Over option to make clean interfaces between the structures.<br />
* The [[Documentation/{{documentation/version}}/Modules/ModelMaker|Model Maker]] can automatically make models for all non-zero values in the label map. The option for Joint Smoothing creates a 'water tight' set of models. If you build the models independently the smoothing will cause gaps between the models.<br />
* A large radius paint brush with threshold painting is often a very fast way to segment anatomy that is consistently brighter or darker than the surrounding region, but partially connected to similar nearby structures (this happens a lot).<br />
* Use the slice viewer menus to control the label map opacity and display mode (to show outlines only or full volume).<br />
<br />
{{documentation/{{documentation/version}}/module-section|Limitations}}<br />
* Threshold will not work with non-scalar volume background volumes.<br />
* Mouse wheel can be used to move slice through volume, but on some platforms (mac) it may move more than one slice at a time.<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* See the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.5#Modules_by_category Segmentation section of the module documentation] for more ways to create label maps.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
[[Slicer_3.6:Training |Training materials and tutorials from earlier versions of slicer]] may help give ideas about how to use these tools.<br />
<br />
The GrowCut algorithm is presented here: <br />
V. Vezhnevets and V. Konouchine, "GrowCut - Interactive multi-label N-D image segmentation", in Proc. Graphicon, 2005. pp. 150--156.<br />
<br />
FastMarching algorithm is available here:<br />
Pichon E, Tannenbaum A, Kikinis R. A statistically based flow for image segmentation. Medical Image Analysis. 2004 September;8(3):267–274. http://www.spl.harvard.edu/publications/item/view/193<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
<br />
<br />
See the [[Documentation/{{documentation/version}}/EditorExtension|step-by-step guide to writing an Editor Extension]]<br />
<br />
<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/Editor&diff=46004Documentation/Nightly/Modules/Editor2016-06-16T18:33:11Z<p>Hillarylia: /* image:Paint.png Paint */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}<br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
: '''Author(s)/Contributor(s):''' Steve Pieper (Isomics Inc.), Wendy Plesniak (SPL, BWH), Ron Kikinis (SPL, BWH), Jim Miller (GE)<br><br />
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/ National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.<br><br />
: '''Contact:''' Steve Pieper, <email>pieper@bwh.harvard.edu</email><br><br />
{{documentation/{{documentation/version}}/module-introduction-row}}<br />
{{documentation/{{documentation/version}}/module-introduction-logo-gallery<br />
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}<br />
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}<br />
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}<br />
|{{collaborator|logo|ge}}|{{collaborator|longname|ge}}<br />
}}<br />
{{documentation/{{documentation/version}}/module-introduction-end}}<br />
<br />
__TOC__<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
This is a module for manual segmentation of volumes. Segmentations (also known as contouring) delineate structures of interest. Some of the tools mimic a painting interface like photoshop or gimp, but work on 3D arrays of voxels rather than on 2D pixels. <br />
This module is used for manipulating label map volumes. Each of the slice viewers can be operated on independently, although typically the same background and label layer will be used in all slice views. Whichever label map volume is selected in the label layer will be the target for each of the editor effects. Any scalar volume can be used as the background layer. For example, you may wish to create a label map volume based on a high resolution structural scan, and then edit while looking at a lower resolution diffusion scan.<br />
<br />
'''Terminology'''<br />
*'''''Label Map Volume''''' is a 3D scalar volume node where each voxel is a number indicating the type of tissue at that location. A label volume is associated with a Color Node that maps the numbers into colors and text strings<br />
*'''''Slice Viewer''''' refers the Red, Yellow, and Green windows that display volume slices on the slicer interface.<br />
*'''''Effect''''' refers to any of the editor tools in the editor tool box.<br />
*'''''Labeler''''' is a type of effect that modifies the existing label map; labelers have a common set of controls options.<br />
<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
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:<br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing (using, for example, the [[Documentation/{{documentation/version}}/Modules/LabelStatistics|Label Statistics]] module)<br />
<br />
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.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Tutorials}}<br />
<br />
The [[Documentation/{{documentation/version}}/Training| Slicer {{documentation/version}} Training]] page provides several use cases that rely on Editor functionality.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and their use}}<br />
<br />
[[image:Editor-2011-11-24.png|400px]]<br />
<br />
==== Single Label Map ====<br />
<br />
[[image:SlicerQT-real 138.png|200px|right|Color Table Dialog]]<br />
A typical straightforward Editor workflow for consists of the following steps:<br />
<br />
# Load a volume.<br />
# Enter the Editor module using either the toolbar or the Modules menu button.<br />
# You will be prompted to select a color table to use for editing (see Color Table Dialog image).<br />
#*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 [[Documentation/{{documentation/version}}/Modules/Colors|Colors Module]].<br />
#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 initialized to all zeros and it will have the 'Label Map' property set. (You can look at these in the "Info" tab of the [[Documentation/{{documentation/version}}/Modules/Volumes|Volumes Module]].<br />
#*If your background was named 't1' the label will be called 't1-label'.<br />
#When label map volume is selected, the edit tools frame will automatically expand and you can use the Editor Effects to define your structures.<br />
<br />
<br />
* '''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 some other [[Documentation/{{documentation/version}}#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.<br />
* '''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).<br />
<br />
<br />
==== Per-Structure Volumes ====<br />
''Please familiarize yourself with the Single Label Map approach before attempting to use the Multiple Label Map tools''<br />
<br />
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.<br />
<br />
# Start with a Merge Volume that will contain all the structures of interest.<br />
#* 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.<br />
#* If you are starting from scratch, you can use the Add Structure button to define new label volumes. <br />
#** Add Structure will prompt you for a label value based on the Color Table selected when the Merge Volume was created.<br />
#** The new Structure Volume will be selected for editing.<br />
#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).<br />
#After defining the individual structures, you can use the Merge All button to put the volumes back into the Merge Volume.<br />
#* ''Hint: If the structures overlap, you can use the Order column to define the priority of the structures during the merge process.'' <br />
#Use Merge And Build to create a set of modules from the merged volume.<br />
#* This uses the Joint Smoothing option of the [[Documentation/{{documentation/version}}/Modules/ModelMaker|Model Maker Module]] to create watertight models.<br />
#* ''Hint: you can use the Model Maker module to manipulate other building parameters.'' <br />
# The Delete Structures button will remove the Per-Structure Volumes from your scene. If you want to delete a single volume, use the [[Documentation/{{documentation/version}}/Modules/Data|Data Module]].<br />
<br />
If you have the [[Documentation/{{documentation/version}}/Extensions/Reporting|Reporting Extension]] installed, you can export the stuctures to DICOM Segmentation (SEG) format, and will appear as a series for the corresponding study in the [[Documentation/{{documentation/version}}/Modules/DICOM|DICOM Module]].<br />
<br />
==Effects==<br />
<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in.<br />
To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions.<br />
<br />
===[[image:Draw.png]] Draw===<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===[[image:WandEffect.png]] Wand===<br />
Click to fill connected regions with similar intensities and click multiple times to grow the region. The tolerance option controls how similar adjacent pixels must be in order to be filled.<br />
* Max pixels per click determines how quickly the region is filled<br />
* Fill Volume option allows for 3D segmentation<br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
* Left click to start rubber band rectangle<br />
* Release button to apply<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
* Moving the mouse defines an outline where the pixels all have the same background value as the current background pixel<br />
* Clicking the left mouse button applies that outline to the label map<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
===[[image:ChangeIsland.png]] Change Island=== <br />
Changes color of an island, where an Island is a group of connected pixels with the same label. This does not change other voxels with the same label. This tool is useful after thresholding, to separate anatomy further.<br />
# Click Change Island<br />
#Click New Label and select a color, or enter a color number<br />
#Click any part of the island<br />
#Pixels that are part of that island will receive the New Label value<br />
<br />
===[[image:RemoveIslands.png]] Remove Islands===<br />
Automatically removes unlabelled voxels within a region.<br />
<br />
* Useful for removing small areas of noise inside a surrounding thresholded area<br />
* Two modes are supported:<br />
** Connectivity mode removes unsegmented islands that are completely enclosed with segmentation<br />
** Morphology mode removes small regions in and out of the segmentation even if they are partly connected to the larger regions.<br />
<br />
===[[image:SaveIsland.png]] Save Island===<br />
Save Island retains the selected island, and removes disconnected pixels with the same label. This is another way to clean up the results of a thresholding operation. This is useful for separating a single connected structure from other structures.<br />
<br />
===[[image:ErodeLabel.png]] Erode and [[image:DilateLabel.png]] Dilate===<br />
<br />
Add or remove a single layer of pixels from the current label value<br />
<br />
===[[image:ChangeLabel.png]] Change Label===<br />
Changes every voxel in the target label map with the input value to the output value<br />
<br />
===Undo/Redo===<br />
* The Editor can save state before each effect is applied. This is useful for experimentation and error correction. Prior to version 3.6.2 this can be somewhat slow and very memory hungry when working with large volumes so it is disabled by default. As of version 3.6.2 the save operation is lightweight and is enabled by default for up to 100 steps.<br />
* When enabled the buttons can be used to move forward and back through the volume checkpoints.<br />
* Note that for some volumes storing the Undo buffer can fail (e.g. due to lack of memory). In this case the undo/redo operations will fail to operate.<br />
<br />
===[[Image:ModelMaker.jpg]] Modelmaker===<br />
* A simple interface to of the full CLI module (See [[Documentation/{{documentation/version}}/Modules/ModelMaker|Model Maker Documentation]])<br />
* The currently selected label number will be used to build.<br />
* Select smooth model for more pleasing results<br />
* Just click apply and models of all label maps will be created.<br />
* Model building runs in the background and the model appears in the 3D view when finished.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCutSegment===<br />
<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:WatershedFromMarkerEffect.png]] WatershedFromMarkers===<br />
<br />
Watershed From Markers a multi-label segmentation tool which has similar behavior to the GrowCuts algorithm. As input, it expects the current label map to be multiple labels or markers defining different objects. By applying the algorithm, the labels are greedily grown with the minimal gradient value. Objects with well defined edges are desirable for good segmentations with this method.<br />
<br />
See the [[Documentation/{{documentation/version}}/Modules/Editor/WatershedFromMarkers| WatershedFromMarkers ]] page for more details.<br />
<br />
===[[image:FastMarching.png]] FastMarching===<br />
<br />
FastMarching is a statistics-based region growing 3D segmentation algorithm. Paint to define seed voxels (one color only). Push "March" button to initiate region growing. Use the marching slider to interactively examine the front propagation history and choose the result you like.<br />
<br />
===Labeler Effects===<br />
<br />
The following options work for all labelers (draw, paint, level tracing...)<br />
<br />
====Threshold Painting and Drawing====<br />
<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. As of version 4.5, the range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
====Paint Over====<br />
<br />
When enabled, the labels are set to the new value no matter what their previous value was.<br />
<br />
When disabled, only 0 (black/transparent) voxels are set to the new value. Non-zero values are not changed.<br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
The following keyboard shortcuts are active when you are in the Editor module. They do not require a modifier key (no Control or Alt required) and they are intended to allow two-handed editing, where on hand is on the mouse and the other hand uses the keyboard to switch modes.<br />
<br />
====Movement====<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''Shift''' - scroll other slices to mouse location<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
====Label Values (Colors) ====<br />
* '''e''' - toggles from the current color to 0 and back (use this while painting or drawing to quickly erase if you go over the line)<br />
* '''c''' - show color picker<br />
<br />
====Segmentation Control====<br />
* '''z''' - undo<br />
* '''y''' - redo<br />
<br />
====Display====<br />
* '''o''' - toggle outline mode for label display<br />
* '''g''' - toggle label opacity<br />
* '''t''' - swap foreground and background volumes<br />
<br />
====Effect Selection====<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
* '''w''' - select Wand effect<br />
* '''r''' - select Rectangle effect<br />
* '''Space''' bring up tool selection window at current mouse location<br />
<br />
=== Label Keystrokes ===<br />
Label Keystrokes are active for any effect that applies the current label color, such as Paint, Draw, or Wand.<br />
* '''\''' (backslash key) - "eye dropper" to pick up the current paint color under the cursor (note the slice view must have 'focus', which means you must have clicked in the slice view once before the eye dropper will work correctly)<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
{{documentation/{{documentation/version}}/module-section|Hints}}<br />
[[Image:Selection 139.png|thumb|400px|right|Use of the Label Outline feature (below) vs the default view (above). Note that the label outlines appear faint in the lower image -- zoom in by clicking on the image to see them as they actually appear in Slicer.]]<br />
* You can use the [[Documentation/{{documentation/version}}/Modules/ImageLabelCombine|Image Label Combine]] module to make a composite label map from two independent input label maps. Sometimes it will make sense to have a separate label map for each anatomical structure and then combine them after editing. In other cases it makes sense to put all structures into the same label map so that you can use the Paint Over option to make clean interfaces between the structures.<br />
* The [[Documentation/{{documentation/version}}/Modules/ModelMaker|Model Maker]] can automatically make models for all non-zero values in the label map. The option for Joint Smoothing creates a 'water tight' set of models. If you build the models independently the smoothing will cause gaps between the models.<br />
* A large radius paint brush with threshold painting is often a very fast way to segment anatomy that is consistently brighter or darker than the surrounding region, but partially connected to similar nearby structures (this happens a lot).<br />
* Use the slice viewer menus to control the label map opacity and display mode (to show outlines only or full volume).<br />
<br />
{{documentation/{{documentation/version}}/module-section|Limitations}}<br />
* Threshold will not work with non-scalar volume background volumes.<br />
* Mouse wheel can be used to move slice through volume, but on some platforms (mac) it may move more than one slice at a time.<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Modules}}<br />
* See the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.5#Modules_by_category Segmentation section of the module documentation] for more ways to create label maps.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
[[Slicer_3.6:Training |Training materials and tutorials from earlier versions of slicer]] may help give ideas about how to use these tools.<br />
<br />
The GrowCut algorithm is presented here: <br />
V. Vezhnevets and V. Konouchine, "GrowCut - Interactive multi-label N-D image segmentation", in Proc. Graphicon, 2005. pp. 150--156.<br />
<br />
FastMarching algorithm is available here:<br />
Pichon E, Tannenbaum A, Kikinis R. A statistically based flow for image segmentation. Medical Image Analysis. 2004 September;8(3):267–274. http://www.spl.harvard.edu/publications/item/view/193<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Information for Developers}}<br />
<br />
<br />
See the [[Documentation/{{documentation/version}}/EditorExtension|step-by-step guide to writing an Editor Extension]]<br />
<br />
<br />
{{documentation/{{documentation/version}}/module-developerinfo}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SegmentEditor&diff=46001Documentation/Nightly/Modules/SegmentEditor2016-06-16T17:51:08Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
Authors: <b>Csaba Pinter</b> (PerkLab, Queen's University), <b>Andras Lasso</b> (PerkLab, Queen's University)<br />
Contacts:<br />
* Csaba Pinter, <email>csaba.pinter@queensu.ca</email><br />
* Andras Lasso, <email>lasso@cs.queensu.ca</email><br />
<br />
<br />
[[File:LogoCco.png|left||Cancer Care Ontario]]<br />
[[File:Logo-SparKit.png|right|SparKit]]<br />
[[File:LogoOCAIRO.jpg|centre|OCAIRO]]<br />
<br />
<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
<br />
<br />
[[image:SegmentEditorUseCases.png|175px|right]]<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Create segmentations that can be used for: <br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and Their Uses}} <br />
[[image:SegmentEditorPanel.png|right|300px|Click to expand photo]]<br />
'''Segmentation:''' Choose the segmentation to edit<br />
<br />
'''Master volume:''' Choose the volume to segment<br />
<br />
'''Add/Remove Segment:''' Click Add to create a new segment. Select the segment you would like to delete then hit remove.<br />
<br />
'''Create Surface:''' Display your segmentation in the 3D Viewer<br />
<br />
'''Segments Table:''' Displays your segments. Click the eye icon to show or hide the segment. Click and hold the button for advanced options (Show in 3D, Show in 2D as fill, Show in 2D as outline)<br />
<br />
'''Effects:''' Select the desired effect here. See below for more information about each effect.<br />
<br />
'''Options:''' Options for the selected effect will be displayed here.<br />
<br />
'''Masking:''' These options allow you to define the editable areas and whether or not certain segments can be overwritten.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Effects}}<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in. To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
Paint on the selected segment with a round brush.<br />
<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions. In this mode, the label color is set to the value of the labelmap where the first left click occurs. This mode allows you to quickly switch between colors.<br />
<br />
===[[image:Draw.png]] Draw===<br />
Draw segment outline in slice viewers.<br />
<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===[[image:Eraser.png]] Eraser===<br />
Left-click and drag in slice or 3D viewers to erase from the current segment with a round brush. The radius can be adjusted. Additional brush modes include sphere brush and pixel mode.<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
Add uniform intensity region to selected segment.<br />
As you move the mouse, the current background voxel is used to find a closed path that follows the same intensity value back to the starting point within the current slice. Pressing the left mouse button filles the path according to the current labeling rules. <br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
Add a rectangular area to the selected segment<br />
* Left click and drag to sweep our<br />
<br />
===[[image:ErodeLabel.png]] Margin===<br />
Grow or shrink the selected segment by a specified margin size. A positive margin size makes the segment grow while a negative margin size makes the segment shrink.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCut===<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:Threshold.png]] Threshold===<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. The range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
===[[image:Smoothing.png]] Smoothing===<br />
Smooths the selected segment by removing extrusions and filling small holes. There are four smoothing modes available: median, Gaussian, opening and closing. The median method reduces noise while preserving edges. The Gaussian method reduces image detail. The opening method removes extrusions and the closing method fills small holes.<br />
<br />
===[[image:LogicalOperators.png]] Logical Operators===<br />
Apply logical operators on a segment or combine it with other segments.<br />
Operations include:<br />
*Copy from segment: Replace the selected segment by the modifier segment<br />
*Union with segment: Add modifier segment to current segment<br />
*Intersection with segment: only keeps those regions in the select segment that are common with the modifier segment<br />
*Subtract Segment: Subtract region of modifier segment from the selected segment<br />
*Clear: Clears the selected segment<br />
*Fill: Completely fills the selected segment<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
<br />
===Movement===<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
===Effect Selection===<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
*'''e'''- select Eraser effect<br />
* '''r''' - select Rectangle effect<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SegmentEditor&diff=45996Documentation/Nightly/Modules/SegmentEditor2016-06-16T15:23:35Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
<br />
'''This page is a work in progress'''<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
[[image:SegmentEditorUseCases.png|175px|right]]<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Create segmentations that can be used for: <br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and Their Uses}} <br />
[[image:SegmentEditorPanel.png|right|300px|Click to expand photo]]<br />
'''Segmentation:''' Choose the segmentation to edit<br />
<br />
'''Master volume:''' Choose the volume to segment<br />
<br />
'''Add/Remove Segment:''' Click Add to create a new segment. Select the segment you would like to delete then hit remove.<br />
<br />
'''Create Surface:''' Display your segmentation in the 3D Viewer<br />
<br />
'''Segment Table:''' Displays your segments. Click the eye icon to show or hide the segment. Click and hold the button for advanced options (Show in 3D, Show in 2D as fill, Show in 2D as outline)<br />
<br />
'''Effects:''' Select the desired effect here. See below for more information about each effect.<br />
<br />
'''Options:''' Options for the selected effect will be displayed here.<br />
<br />
'''Masking:'''<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Effects}}<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in. To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
Paint on the selected segment with a round brush.<br />
<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions. In this mode, the label color is set to the value of the labelmap where the first left click occurs. This mode allows you to quickly switch between colors.<br />
<br />
===[[image:Draw.png]] Draw===<br />
Draw segment outline in slice viewers.<br />
<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===[[image:Eraser.png]] Eraser===<br />
Left-click and drag in slice or 3D viewers to erase from the current segment with a round brush. The radius can be adjusted. Additional brush modes include sphere brush and pixel mode.<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
Add uniform intensity region to selected segment.<br />
As you move the mouse, the current background voxel is used to find a closed path that follows the same intensity value back to the starting point within the current slice. Pressing the left mouse button filles the path according to the current labeling rules. <br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
Add a rectangular area to the selected segment<br />
* Left click and drag to sweep our<br />
<br />
===[[image:ErodeLabel.png]] Margin===<br />
Grow or shrink the selected segment by a specified margin size. A positive margin size makes the segment grow while a negative margin size makes the segment shrink.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCut===<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:Threshold.png]] Threshold===<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. The range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
===[[image:Smoothing.png]] Smoothing===<br />
Smooths the selected segment by removing extrusions and filling small holes. There are four smoothing modes available: median, Gaussian, opening and closing. The median method reduces noise while preserving edges. The Gaussian method reduces image detail. The opening method removes extrusions and the closing method fills small holes.<br />
<br />
===[[image:LogicalOperators.png]] Logical Operators===<br />
Apply logical operators on a segment or combine it with other segments.<br />
Operations include:<br />
*Copy from segment: Replace the selected segment by the modifier segment<br />
*Union with segment: Add modifier segment to current segment<br />
*Intersection with segment: only keeps those regions in the select segment that are common with the modifier segment<br />
*Subtract Segment: Subtract region of modifier segment from the selected segment<br />
*Clear: Clears the selected segment<br />
*Fill: Completely fills the selected segment<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
<br />
===Movement===<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
===Effect Selection===<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
*'''e'''- select Eraser effect<br />
* '''r''' - select Rectangle effect<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SegmentEditor&diff=45994Documentation/Nightly/Modules/SegmentEditor2016-06-16T15:20:05Z<p>Hillarylia: Added Panels and Their Uses</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
<br />
'''This page is a work in progress'''<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
[[image:SegmentEditorUseCases.png|175px|right]]<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Create segmentations that can be used for: <br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and Their Uses}}<br />
[[image:SegmentEditorPanel.png|right]]<br />
<br />
'''Segmentation:''' Choose the segmentation to edit<br />
'''Master volume:''' Choose the volume to segment<br />
'''Add/Remove Segment:''' Click Add to create a new segment. Select the segment you would like to delete then hit remove.<br />
'''Create Surface:''' Display your segmentation in the 3D Viewer<br />
'''Segment Table:''' Displays your segments. Click the eye icon to show or hide the segment. Click and hold the button for advanced options (Show in 3D, Show in 2D as fill, Show in 2D as outline)<br />
'''Effects:''' Select the desired effect here. See below for more information about each effect.<br />
'''Options:''' Options for the selected effect will be displayed here.<br />
'''Masking:'''<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Effects}}<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in. To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
Paint on the selected segment with a round brush.<br />
<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions. In this mode, the label color is set to the value of the labelmap where the first left click occurs. This mode allows you to quickly switch between colors.<br />
<br />
===[[image:Draw.png]] Draw===<br />
Draw segment outline in slice viewers.<br />
<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===[[image:Eraser.png]] Eraser===<br />
Left-click and drag in slice or 3D viewers to erase from the current segment with a round brush. The radius can be adjusted. Additional brush modes include sphere brush and pixel mode.<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
Add uniform intensity region to selected segment.<br />
As you move the mouse, the current background voxel is used to find a closed path that follows the same intensity value back to the starting point within the current slice. Pressing the left mouse button filles the path according to the current labeling rules. <br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
Add a rectangular area to the selected segment<br />
* Left click and drag to sweep our<br />
<br />
===[[image:ErodeLabel.png]] Margin===<br />
Grow or shrink the selected segment by a specified margin size. A positive margin size makes the segment grow while a negative margin size makes the segment shrink.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCut===<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:Threshold.png]] Threshold===<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. The range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
===[[image:Smoothing.png]] Smoothing===<br />
Smooths the selected segment by removing extrusions and filling small holes. There are four smoothing modes available: median, Gaussian, opening and closing. The median method reduces noise while preserving edges. The Gaussian method reduces image detail. The opening method removes extrusions and the closing method fills small holes.<br />
<br />
===[[image:LogicalOperators.png]] Logical Operators===<br />
Apply logical operators on a segment or combine it with other segments.<br />
Operations include:<br />
*Copy from segment: Replace the selected segment by the modifier segment<br />
*Union with segment: Add modifier segment to current segment<br />
*Intersection with segment: only keeps those regions in the select segment that are common with the modifier segment<br />
*Subtract Segment: Subtract region of modifier segment from the selected segment<br />
*Clear: Clears the selected segment<br />
*Fill: Completely fills the selected segment<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
<br />
===Movement===<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
===Effect Selection===<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
*'''e'''- select Eraser effect<br />
* '''r''' - select Rectangle effect<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:SegmentEditorUseCases.png&diff=45989File:SegmentEditorUseCases.png2016-06-16T15:08:23Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:SegmentEditorPanel.png&diff=45986File:SegmentEditorPanel.png2016-06-16T15:05:48Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SegmentEditor&diff=45982Documentation/Nightly/Modules/SegmentEditor2016-06-16T15:00:36Z<p>Hillarylia: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
<br />
'''This page is a work in progress'''<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Create segmentations that can be used for:<br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and Their Uses}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Effects}}<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in. To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
Paint on the selected segment with a round brush.<br />
<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions. In this mode, the label color is set to the value of the labelmap where the first left click occurs. This mode allows you to quickly switch between colors.<br />
<br />
===[[image:Draw.png]] Draw===<br />
Draw segment outline in slice viewers.<br />
<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===[[image:Eraser.png]] Eraser===<br />
Left-click and drag in slice or 3D viewers to erase from the current segment with a round brush. The radius can be adjusted. Additional brush modes include sphere brush and pixel mode.<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
Add uniform intensity region to selected segment.<br />
As you move the mouse, the current background voxel is used to find a closed path that follows the same intensity value back to the starting point within the current slice. Pressing the left mouse button filles the path according to the current labeling rules. <br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
Add a rectangular area to the selected segment<br />
* Left click and drag to sweep our<br />
<br />
===[[image:ErodeLabel.png]] Margin===<br />
Grow or shrink the selected segment by a specified margin size. A positive margin size makes the segment grow while a negative margin size makes the segment shrink.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCut===<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:Threshold.png]] Threshold===<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. The range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
===[[image:Smoothing.png]] Smoothing===<br />
Smooths the selected segment by removing extrusions and filling small holes. There are four smoothing modes available: median, Gaussian, opening and closing. The median method reduces noise while preserving edges. The Gaussian method reduces image detail. The opening method removes extrusions and the closing method fills small holes.<br />
<br />
===[[image:LogicalOperators.png]] Logical Operators===<br />
Apply logical operators on a segment or combine it with other segments.<br />
Operations include:<br />
*Copy from segment: Replace the selected segment by the modifier segment<br />
*Union with segment: Add modifier segment to current segment<br />
*Intersection with segment: only keeps those regions in the select segment that are common with the modifier segment<br />
*Subtract Segment: Subtract region of modifier segment from the selected segment<br />
*Clear: Clears the selected segment<br />
*Fill: Completely fills the selected segment<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
<br />
===Movement===<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
===Effect Selection===<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
*'''e'''- select Eraser effect<br />
* '''r''' - select Rectangle effect<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:Smoothing.png&diff=45980File:Smoothing.png2016-06-16T14:57:39Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:LogicalOperators.png&diff=45979File:LogicalOperators.png2016-06-16T14:57:26Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:Eraser.png&diff=45978File:Eraser.png2016-06-16T14:57:03Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/SegmentEditor&diff=45976Documentation/Nightly/Modules/SegmentEditor2016-06-16T14:55:03Z<p>Hillarylia: Began Segment Editor page. More changes to come</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
<br />
'''This page is a work in progress'''<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Use Cases}}<br />
Create segmentations that can be used for:<br />
*Surgical/radiation therapy planning<br />
*Intra-surgery navigation<br />
*Volume/shape analysis<br />
*3D printing<br />
*Further processing<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Panels and Their Uses}}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Effects}}<br />
Effects operate either by clicking the Apply button in the GUI or by clicking and/or dragging in the slice view. For operations where you use the GUI, the target label map is the one in the Red slice viewer. Otherwise the target is based on which slice viewer you click in. To use, select the label value for the tools to work on. Clicking on the colored box will provide a pop-up with a selection of labels.<br />
<br />
===[[image:Paint.png]] Paint===<br />
Paint on the selected segment with a round brush.<br />
<br />
* Pick the radius (in millimeters) of the brush to apply<br />
* Left click to apply single circle<br />
* Left click and drag to draw a curve<br />
* A trace of circles is left which are applied when the mouse button is released<br />
* Sphere mode applies the radius to slices above and below the current slice.<br />
<br />
The 'smudge' option can be used when working on the boundary between two or more regions. In this mode, the label color is set to the value of the labelmap where the first left click occurs. This mode allows you to quickly switch between colors.<br />
<br />
===[[image:Draw.png]] Draw===<br />
Draw segment outline in slice viewers.<br />
<br />
* Left click to lay individual points of an outline<br />
* Left drag to lay down a continuous line of points<br />
* 'x' key to delete the last point added<br />
* Right click or 'a' key to apply outline to label map<br />
<br />
===Eraser===<br />
Left-click and drag in slice or 3D viewers to erase from the current segment with a round brush. The radius can be adjusted. Additional brush modes include sphere brush and pixel mode.<br />
<br />
===[[image:LevelTracing.png]] Level Tracing===<br />
Add uniform intensity region to selected segment.<br />
As you move the mouse, the current background voxel is used to find a closed path that follows the same intensity value back to the starting point within the current slice. Pressing the left mouse button filles the path according to the current labeling rules. <br />
<br />
===[[image:Rectangle.png]] Rectangle===<br />
Add a rectangular area to the selected segment<br />
* Left click and drag to sweep our<br />
<br />
===[[image:ErodeLabel.png]] Margin===<br />
Grow or shrink the selected segment by a specified margin size. A positive margin size makes the segment grow while a negative margin size makes the segment shrink.<br />
<br />
===[[image:GrowCutSegment.png]] GrowCut===<br />
GrowCut is a powerful algorithm that uses example segmentation to create a full segmentation of the volume. You can use multiple label colors to define regions that represent parts of anatomical structures and then let the GrowCut algorithm seek out a best labeling for adjacent pixel so they match your example.<br />
<br />
To use this, you first define your example segmentation using the normal paint or draw tools as described above. Define at least two structure classes and then click Apply. If you are not satisfied with the result, use the Undo button to go back and modify your example. <br />
<br />
See the [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GrowCutSegmentation Grow Cut documentation] for more details.<br />
<br />
Also see the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut| Fast GrowCut documentation]. This is an effect that can be added by downloading the extension. It requires memory but is a fast implementation of the GrowCut method<br />
<br />
===[[image:Threshold.png]] Threshold===<br />
* Use Threshold to determine a threshold range and click on Use for Paint<br />
* Change into Paint or Draw and click on the Threshold button<br />
* begin painting/drawing<br />
<br />
Only voxels where the background value is within the threshold range will be set to the new label value. The range is inclusive, so for example if the minimum is zero to ten, all pixels zero and above but less than or equal to ten will be included.<br />
<br />
===Smoothing===<br />
Smooths the selected segment by removing extrusions and filling small holes. There are four smoothing modes available: median, Gaussian, opening and closing. The median method reduces noise while preserving edges. The Gaussian method reduces image detail. The opening method removes extrusions and the closing method fills small holes.<br />
<br />
===Logical Operators===<br />
Apply logical operators on a segment or combine it with other segments.<br />
Operations include:<br />
*Copy from segment: Replace the selected segment by the modifier segment<br />
*Union with segment: Add modifier segment to current segment<br />
*Intersection with segment: only keeps those regions in the select segment that are common with the modifier segment<br />
*Subtract Segment: Subtract region of modifier segment from the selected segment<br />
*Clear: Clears the selected segment<br />
*Fill: Completely fills the selected segment<br />
<br />
===[[image:IdentifyIslands.png]] Identify Islands===<br />
Use this tool to create a unique label value for each connected region in the current label map. <br />
Connected regions are defined as groups of pixels which touch each other but are surrounded by zero valued voxels. If FullyConnected is selected, then only voxels that share a face are counted as connected; if unselected, then voxels that touch at an edge or a corner are considered connected.<br />
<br />
'''Note:''' Be aware that all non-zero label values labels values are considered equal by this filter and that the result will renumber the resulting islands in order of size.<br />
'''Note:''' The output label values use the currently selected color table, but the names assigned to islands are arbitrary. Label values are assigned in order of the size of the island starting with 1. The value of 0 is assigned to the background.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Keystrokes}}<br />
<br />
===Movement===<br />
* '''f''' - move to next slice<br />
* '''b''' - move to previous slice<br />
* '''h''' - toggle the crosshair and put it into navigator mode<br />
<br />
===Effect Selection===<br />
* '''Escape''' - cancel current effect<br />
* '''p''' - select Paint effect<br />
* '''d''' - select Draw effect<br />
*'''e'''- select Eraser effect<br />
* '''r''' - select Rectangle effect<br />
<br />
=== Draw Effect Keystrokes ===<br />
* '''a''' or '''Enter''' - apply the current outline <br />
* '''x''' - delete last point added <br />
<br />
=== Paint Effect Keystrokes ===<br />
* '''-''' or '''_''' - shrink the current radius by 20%<br />
* '''+''' or '''=''' - grow the current radius by 20%<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/ModuleExtensionListing&diff=45959Documentation/Nightly/ModuleExtensionListing2016-06-15T17:29:56Z<p>Hillarylia: /* Segmentation */</p>
<hr />
<div>__NOTOC__<br />
<noinclude>{{:Documentation/Nightly/ModuleExtensionListing/TOC}}</noinclude><br />
= Modules by category =<br />
36 categories:<br />
* [[#Modules_by_category_Cardiac|Cardiac]]<br />
* [[#Modules_by_category_Cardiac_MRI_Toolkit|Cardiac MRI Toolkit]]<br />
* [[#Modules_by_category_Chest_Imaging_Platform|Chest Imaging Platform]]<br />
** [[#Modules_by_category_Chest_Imaging_Platform_Modules|Modules]]<br />
** [[#Modules_by_category_Chest_Imaging_Platform_Toolkit|Toolkit]]<br />
*** [[#Modules_by_category_Toolkit_Particles|Particles]]<br />
*** [[#Modules_by_category_Toolkit_Processing|Processing]]<br />
*** [[#Modules_by_category_Toolkit_Quantification|Quantification]]<br />
*** [[#Modules_by_category_Toolkit_Registration|Registration]]<br />
*** [[#Modules_by_category_Toolkit_Segmentation|Segmentation]]<br />
*** [[#Modules_by_category_Toolkit_Utils|Utils]]<br />
* [[#Modules_by_category_CIP|CIP]]<br />
* [[#Modules_by_category_Converters|Converters]]<br />
* [[#Modules_by_category_Developer_Tools|Developer Tools]]<br />
** [[#Modules_by_category_Developer_Tools_DICOM_Plugins|DICOM Plugins]]<br />
** [[#Modules_by_category_Developer_Tools_Editor_Extensions|Editor Extensions]]<br />
** [[#Modules_by_category_Developer_Tools_Matlab|Matlab]]<br />
* [[#Modules_by_category_Diffusion|Diffusion]]<br />
** [[#Modules_by_category_Diffusion_Diffusion_Data_Conversion|Diffusion Data Conversion]]<br />
** [[#Modules_by_category_Diffusion_Diffusion_Tensor_Images|Diffusion Tensor Images]]<br />
** [[#Modules_by_category_Diffusion_Diffusion_Weighted_Images|Diffusion Weighted Images]]<br />
** [[#Modules_by_category_Diffusion_FiberAnalysis|Fiber Analysis]]<br />
** [[#Modules_by_category_Diffusion_Tractography|Tractography]]<br />
* [[#Modules_by_category_Editor_Effects|Editor Effects]]<br />
* [[#Modules_by_category_EditorEffect|Editor Effect]]<br />
* [[#Modules_by_category_Endoscopy|Endoscopy]]<br />
* [[#Modules_by_category_Examples|Examples]]<br />
* [[#Modules_by_category_Exporter|Exporter]]<br />
* [[#Modules_by_category_Filter|Filter]]<br />
* [[#Modules_by_category_Filtering|Filtering]]<br />
** [[#Modules_by_category_Filtering_Arithmetic|Arithmetic]]<br />
** [[#Modules_by_category_Filtering_Denoising|Denoising]]<br />
** [[#Modules_by_category_Filtering_Morphology|Morphology]]<br />
* [[#Modules_by_category_IGT|IGT]]<br />
* [[#Modules_by_category_Informatics|Informatics]]<br />
** [[#Modules_by_category_Informatics_Converters|Converters]]<br />
* [[#Modules_by_category_Legacy|Legacy]]<br />
** [[#Modules_by_category_Legacy_Converters|Converters]]<br />
** [[#Modules_by_category_Legacy_Filtering|Filtering]]<br />
** [[#Modules_by_category_Legacy_Registration|Registration]]<br />
** [[#Modules_by_category_Legacy_Work_in_Progress|Work in Progress]]<br />
*** [[#Modules_by_category_Work_in_Progress_Diffusion_Tensor|Diffusion Tensor]]<br />
**** [[#Modules_by_category_Diffusion_Tensor_Test|Test]]<br />
* [[#Modules_by_category_Margin_Calculator|Margin Calculator]]<br />
* [[#Modules_by_category_Mesh_Generation|Mesh Generation]]<br />
* [[#Modules_by_category_MeshGeneration|Mesh Generation]]<br />
* [[#Modules_by_category_Microscopy|Microscopy]]<br />
* [[#Modules_by_category_MultiVolume_Support|Multi Volume Support]]<br />
* [[#Modules_by_category_Plastimatch|Plastimatch]]<br />
** [[#Modules_by_category_Plastimatch_Registration|Registration]]<br />
** [[#Modules_by_category_Plastimatch_Utilities|Utilities]]<br />
* [[#Modules_by_category_Quantification|Quantification]]<br />
** [[#Modules_by_category_Quantification_ChangeQuantification|Change Quantification]]<br />
* [[#Modules_by_category_Radiotherapy|Radiotherapy]]<br />
* [[#Modules_by_category_Registration|Registration]]<br />
** [[#Modules_by_category_Registration_CMF_Registration|CMF Registration]]<br />
*** [[#Modules_by_category_CMF_Registration_Voxelbase_Registration|Voxelbase Registration]]<br />
** [[#Modules_by_category_Registration_Label_Registration|Label Registration]]<br />
** [[#Modules_by_category_Registration_Specialized|Specialized]]<br />
* [[#Modules_by_category_Segmentation|Segmentation]]<br />
** [[#Modules_by_category_Segmentation_Specialized|Specialized]]<br />
* [[#Modules_by_category_Sequences|Sequences]]<br />
* [[#Modules_by_category_Shape_Analysis|Shape Analysis]]<br />
* [[#Modules_by_category_Slicelets|Slicelets]]<br />
* [[#Modules_by_category_Surface_Models|Surface Models]]<br />
* [[#Modules_by_category_TestCases|Test Cases]]<br />
* [[#Modules_by_category_Testing|Testing]]<br />
** [[#Modules_by_category_Testing_IGT_Tests|IGT Tests]]<br />
** [[#Modules_by_category_Testing_SlicerRT_Tests|Slicer RT Tests]]<br />
** [[#Modules_by_category_Testing_TestCases|Test Cases]]<br />
* [[#Modules_by_category_Utilities|Utilities]]<br />
** [[#Modules_by_category_Utilities_BRAINS|BRAINS]]<br />
* [[#Modules_by_category_Vascular_Modeling_Toolkit|Vascular Modeling Toolkit]]<br />
* [[#Modules_by_category_Wizards|Wizards]]<br />
<span id='Modules_by_category_Cardiac'></span><br />
== Cardiac ==<br />
* [[Documentation/Nightly/Extensions/SlicerHeart|Philips4d Us Dicom Patcher]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerHeart|Slicer Heart]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerHeart|Valve View]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerHeart|Slicer Heart]] extension)</small><br />
<span id='Modules_by_category_Cardiac_MRI_Toolkit'></span><br />
== Cardiac MRI Toolkit ==<br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit PVAntrum Cut] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Boolean REMOVEFilter] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [[Documentation/Nightly/Modules/LASegmentationWorkflow|LASegmentation Workflow]] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Registration BRAINSFit] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Automatic Left Atrial Scar] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Connected Threshold Filter] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Wizard] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Isolated Connected Filter] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Inhomogeneity Correction] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Axial Dilate] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [[Documentation/Nightly/Modules/ScarVisualization|Scar Visualization]] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Registration] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit LASegmentation Graph Cuts] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
<span id='Modules_by_category_Chest_Imaging_Platform'></span><br />
== Chest Imaging Platform ==<br />
* [http://www.chestimagingplatform.org Interactive Lobe Segmentation] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Airway Inspector] <small>(loadable, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Chest_Imaging_Platform_Modules'></span><br />
=== Modules ===<br />
* [http://www.chestimagingplatform.org CIP MIPViewer] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP Body Composition] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP Trachea Stent Planning] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP Lesion Model] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP PAARatio] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP Parenchyma Subtype Training] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Chest_Imaging_Platform_Toolkit'></span><br />
=== Toolkit ===<br />
<span id='Modules_by_category_Toolkit_Particles'></span><br />
==== Particles ====<br />
* [http://www.chestimagingplatform.org Extract Particles From Chest Region Chest Type] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Filter Vessel Particle Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Remove Particles From Particles Data Set] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Merge Particle Data Sets] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Perturb Particles] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Filter Airway Particle Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Fit Lobe Surface Models To Particle Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Classify Fissure Particles] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Stenciled Label Map From Particles] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Filter Fissure Particle Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Toolkit_Processing'></span><br />
==== Processing ====<br />
* [http://www.chestimagingplatform.org Resample Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Rescale Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Median Filtered Image] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Label Map From Region And Type Points] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Crop Lung] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate NLMFiltered Image] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Remove Chest Type From Label Map Using Particles] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Atlas Convex Hull] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Fissure Feature Vectors] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Lobe Surface Models] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Filter Connected Components] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Extract Chest Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Perform Morphological] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Extract Fissure Boundary From Lobe Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Enhance Fissures In Image] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Remap Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Distance Map From Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Resample CT] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Feature Strength] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Distance Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Quality Control] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Image Sub Volumes] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Toolkit_Quantification'></span><br />
==== Quantification ====<br />
* [http://www.chestimagingplatform.org Evaluate Lung Lobe Segmentation Results] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Get Transformation Kappa] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read Write Image Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Intensity Statistics] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Cross Sectional Area] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Label Particles By Chest Region Chest Type] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Get Transformation Similarity Metric] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Region Histograms And Parenchyma Phenotypes] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Get Transformation Kappa2D] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Toolkit_Registration'></span><br />
==== Registration ====<br />
* [http://www.chestimagingplatform.org Register Lung Atlas] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Register Label Maps] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Register CT] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Toolkit_Segmentation'></span><br />
==== Segmentation ====<br />
* [http://www.chestimagingplatform.org Generate Otsu Lung Cast] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Segment Lung Lobes] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Partial Lung Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Split Left Lung Right Lung] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Binary Thinning3D] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Lesion Segmentation] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Toolkit_Utils'></span><br />
==== Utils ====<br />
* [http://www.chestimagingplatform.org Convert Dicom] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Region Type Locations To ROIVolume] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read VTKWrite NRRDs] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Overlay Images] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Execute System Command] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Get Structures In Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Find Patch Match] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Convert Chest Region Chest Type To Label Map Value] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Mask Out Label Map Structures] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read NRRDs Write VTK] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Convert Label Map Value To Chest Region Chest Type] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read Write Region And Type Points] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Merge Chest Label Maps] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read Vida Write CIP] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read Dicom Write Tags] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Transfer Region And Type Indices To From Points] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_CIP'></span><br />
== CIP ==<br />
* [http://www.chestimagingplatform.org CIP Common] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Converters'></span><br />
== Converters ==<br />
* [[Documentation/Nightly/Modules/QuadEdgeSurfaceMesher|Quad Edge Surface Mesher]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerProstate|Slicer Prostate]] extension)</small><br />
* [[Documentation/Nightly/Modules/CropVolume|Crop Volume]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/OrientScalarVolume|Orient Scalar Volume]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/UKFTractography|Convert VTK]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/UKFTractography|UKFTractography]] extension)</small><br />
* [[Documentation/Nightly/Modules/VectorToScalarVolume|Vector To Scalar Volume]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/CreateDICOMSeries|Create DICOMSeries]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Particles Display] <small>(loadable, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Region Type] <small>(loadable, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
<span id='Modules_by_category_Developer_Tools'></span><br />
== Developer Tools ==<br />
* [[Documentation/Nightly/Modules/Cameras|Cameras]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/ExecutionModelTour|Execution Model Tour]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/DebuggingTools|Node Modified Statistics]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/DebuggingTools|Debugging Tools]] extension)</small><br />
* [[Documentation/Nightly/Extensions/DebuggingTools|Py Dev Remote Debug]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/DebuggingTools|Debugging Tools]] extension)</small><br />
* [[Documentation/Nightly/Modules/ExtensionWizard|Extension Wizard]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/ImageMaker|Image Maker]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/ImageMaker|Image Maker]] extension)</small><br />
* [[Documentation/Nightly/Modules/ExtensionStats|Extension Stats]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/DeveloperToolsForExtensions|Developer Tools For Extensions]] extension)</small><br />
* [[Documentation/Nightly/Modules/DeveloperToolsForExtensions|Developer Tools For Extensions]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/DeveloperToolsForExtensions|Developer Tools For Extensions]] extension)</small><br />
* [[Documentation/Nightly/Modules/EventBroker|Event Broker]]<br />
* Double Arrays <small>(loadable, built-in)</small><br />
<span id='Modules_by_category_Developer_Tools_DICOM_Plugins'></span><br />
=== DICOM Plugins ===<br />
* Dicom Ultrasound Plugin<br />
* DICOMSegmentation Plugin<br />
* DICOMSlicer Data Bundle Plugin<br />
* [[Documentation/Nightly/Modules/DICOMPETSUVPlugin|DICOMPETSUVPlugin]]<br />
* DICOMDiffusion Volume Plugin<br />
* DICOMLongitudinal PETCTPlugin<br />
* Dicom Sro Import Plugin<br />
* DICOMScalar Volume Plugin<br />
* [[Documentation/Nightly/Modules/DICOMRWVMPlugin|DICOMRWVMPlugin]]<br />
* Dicom Rt Import Export Plugin<br />
* Multi Volume Importer Plugin<br />
<span id='Modules_by_category_Developer_Tools_Editor_Extensions'></span><br />
=== Editor Extensions ===<br />
* [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut Fast Grow Cut Effect] <small>(scripted, bundled in [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut Fast Grow Cut Effect] extension)</small><br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice Effect] <small>(scripted, bundled in [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice] extension)</small><br />
* [[Documentation/Nightly/Modules/PETTumorSegmentationEffect|PETTumor Segmentation Effect]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/PETTumorSegmentation|PETTumor Segmentation]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|Binary Watershed Effect]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|Double Threshold Effect]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
<span id='Modules_by_category_Developer_Tools_Matlab'></span><br />
=== Matlab ===<br />
* [[Documentation/Nightly/Modules/MatlabModuleGenerator|Matlab Module Generator]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MatlabBridge|Matlab Bridge]] extension)</small><br />
* [[Documentation/Nightly/Modules/MatlabCommander|Matlab Commander]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/MatlabBridge|Matlab Bridge]] extension)</small><br />
<span id='Modules_by_category_Diffusion'></span><br />
== Diffusion ==<br />
* [[Documentation/Nightly/Modules/TractographyDisplay|Tractography Display]] <small>(loadable, built-in)</small><br />
* DICOM2Full Brain Tractography <small>(scripted, built-in)</small><br />
<span id='Modules_by_category_Diffusion_Diffusion_Data_Conversion'></span><br />
=== Diffusion Data Conversion ===<br />
* DWIConvert <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Diffusion_Diffusion_Tensor_Images'></span><br />
=== Diffusion Tensor Images ===<br />
* [[Documentation/Nightly/Extensions/ResampleDTIlogEuclidean|Resample DTIlog Euclidean]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/ResampleDTIlogEuclidean|Resample DTIlog Euclidean]] extension)</small><br />
* [[Documentation/Nightly/Modules/DiffusionTensorScalarMeasurements|Diffusion Tensor Scalar Measurements]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/ResampleDTIVolume|Resample DTIVolume]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Diffusion_Diffusion_Weighted_Images'></span><br />
<br />
=== Diffusion Weighted Images ===<br />
* [[Documentation/Nightly/Modules/FinslerBacktracing|Finsler Backtracing]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/FinslerTractography|Finsler Tractography]] extension)</small><br />
* [[Documentation/Nightly/Modules/FinslerTractography|Finsler Tractography]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/FinslerTractography|Finsler Tractography]] extension)</small><br />
* BRAINSDWICleanup <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/DWIToDTIEstimation|DWITo DTIEstimation]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/DiffusionWeightedVolumeMasking|Diffusion Weighted Volume Masking]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/ResampleScalarVectorDWIVolume|Resample Scalar Vector DWIVolume]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Diffusion_FiberAnalysis'></span><br />
=== FiberAnalysis ===<br />
* Fiber Post Process <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Diffusion_Tractography'></span><br />
=== Tractography ===<br />
* [[Documentation/Nightly/Modules/TractographyInteractiveSeeding|Tractography Interactive Seeding]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/TractographyLabelMapSeeding|Tractography Label Map Seeding]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/FiberBundleLabelSelect|Fiber Bundle Label Select]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/FiberBundleToLabelMap|Fiber Bundle To Label Map]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/UKFTractography|UKFTractography]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/UKFTractography|UKFTractography]] extension)</small><br />
* [[Documentation/Nightly/Modules/FiberTractMeasurements|Fiber Tract Measurements]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Editor_Effects'></span><br />
<br />
== Editor Effects ==<br />
* [[Documentation/Nightly/Extensions/WindowLevelEffect|Window Level Effect]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/WindowLevelEffect|Window Level Effect]] extension)</small><br />
<span id='Modules_by_category_EditorEffect'></span><br />
== EditorEffect ==<br />
* [[Documentation/Nightly/Extensions/PETTumorSegmentation|PETTumor Segmentation]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/PETTumorSegmentation|PETTumor Segmentation]] extension)</small><br />
<span id='Modules_by_category_Endoscopy'></span><br />
== Endoscopy ==<br />
* [[Documentation/Nightly/Modules/Endoscopy|Endoscopy]] <small>(scripted, built-in)</small><br />
<span id='Modules_by_category_Examples'></span><br />
== Examples ==<br />
* [[Documentation/Nightly/Modules/FastGrowCut|Fast Grow Cut]] <small>(loadable, bundled in [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut Fast Grow Cut Effect] extension)</small><br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Fast Grow Cut Segmenter] <small>(loadable, bundled in [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice] extension)</small><br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice] <small>(loadable, bundled in [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice] extension)</small><br />
* [http://publish.uwo.ca/~dchen285/GraphCutSegment/GraphCutSegment.html Graph Cut Interactive Segmenter] <small>(loadable, bundled in [http://publish.uwo.ca/~dchen285/GraphCutSegment/GraphCutSegment.html Graph Cut Segment] extension)</small><br />
<span id='Modules_by_category_Exporter'></span><br />
== Exporter ==<br />
* [[Documentation/Nightly/Modules/SlicerToKiwiExporter|Slicer To Kiwi Exporter]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerToKiwiExporter|Slicer To Kiwi Exporter]] extension)</small><br />
<span id='Modules_by_category_Filter'></span><br />
== Filter ==<br />
* Island Removal <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Filtering'></span><br />
== Filtering ==<br />
* [[Documentation/Nightly/Modules/SegmentationSmoothing|Segmentation Smoothing]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerProstate|Slicer Prostate]] extension)</small><br />
* [[Documentation/Nightly/Modules/N4ITKBiasFieldCorrection|N4ITKBias Field Correction]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/ImageLabelCombine|Image Label Combine]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/VotingBinaryHoleFillingImageFilter|Voting Binary Hole Filling Image Filter]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/CheckerBoardFilter|Checker Board Filter]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/ExtractSkeleton|Extract Skeleton]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/SimpleFilters|Simple Filters]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/ThresholdScalarVolume|Threshold Scalar Volume]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/HistogramMatching|Histogram Matching]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Filtering_Arithmetic'></span><br />
=== Arithmetic ===<br />
* [[Documentation/Nightly/Modules/MultiplyScalarVolumes|Multiply Scalar Volumes]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/AddScalarVolumes|Add Scalar Volumes]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/MaskScalarVolume|Mask Scalar Volume]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/SubtractScalarVolumes|Subtract Scalar Volumes]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/CastScalarVolume|Cast Scalar Volume]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Filtering_Denoising'></span><br />
=== Denoising ===<br />
* [[Documentation/Nightly/Modules/CurvatureAnisotropicDiffusion|Curvature Anisotropic Diffusion]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/GradientAnisotropicDiffusion|Gradient Anisotropic Diffusion]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/MedianImageFilter|Median Image Filter]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/GaussianBlurImageFilter|Gaussian Blur Image Filter]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Filtering_Morphology'></span><br />
=== Morphology ===<br />
* [[Documentation/Nightly/Modules/GrayscaleFillHoleImageFilter|Grayscale Fill Hole Image Filter]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/GrayscaleGrindPeakImageFilter|Grayscale Grind Peak Image Filter]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_IGT'></span><br />
== IGT ==<br />
* [https://github.com/SlicerIGT/LumpNav Viewpoint] <small>(scripted, bundled in [https://github.com/SlicerIGT/LumpNav Lump Nav] extension)</small><br />
* [[Documentation/Nightly/Modules/CollectFiducials|Collect Fiducials]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [https://github.com/SlicerIGT/LumpNav Lump Nav] <small>(scripted, bundled in [https://github.com/SlicerIGT/LumpNav Lump Nav] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Transform Fusion]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/GyroGuide|Gyro Guide]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/GyroGuide|Gyro Guide]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Create Models]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/NeedleFinder|Needle Finder]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/NeedleFinder|Needle Finder]] extension)</small><br />
* [[Documentation/Nightly/Modules/TrackerStabilizer|Tracker Stabilizer]] <small>(loadable, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/TrackerStabilizer Tracker Stabilizer] extension)</small><br />
* [[Documentation/Nightly/Modules/PathExplorer|Path Explorer]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Ultrasound Snapshots]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [https://github.com/SlicerIGT/LumpNav Breach Warning Light] <small>(scripted, bundled in [https://github.com/SlicerIGT/LumpNav Lump Nav] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Breach Warning]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Model Registration]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Pivot Calibration]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/VolumeResliceDriver|Volume Reslice Driver]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Fiducial Registration Wizard]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/OpenIGTLinkRemote|Open IGTLink Remote]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Watchdog|Watchdog]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/CornerAnnotation|Corner Annotation]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/CornerAnnotation|Corner Annotation]] extension)</small><br />
* [[Documentation/Nightly/Modules/OpenIGTLinkIF|Open IGTLink IF]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/iGyne|i Gyne]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/iGyne|i Gyne]] extension)</small><br />
* [[Documentation/Nightly/Modules/PlusRemote|Plus Remote]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Fiducials To Model Registration]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Markups To Model]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
<span id='Modules_by_category_Informatics'></span><br />
== Informatics ==<br />
* [[Documentation/Nightly/Extensions/mpReview|mp Review Preprocessor]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/mpReview|mp Review]] extension)</small><br />
* [[Documentation/Nightly/Modules/Tables|Tables]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/SEG2NRRD|SEG2NRRD]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/Reporting|Reporting]] extension)</small><br />
* [[Documentation/Nightly/Extensions/TCIABrowser|TCIABrowser]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/TCIABrowser|TCIABrowser]] extension)</small><br />
* [[Documentation/Nightly/Extensions/mpReview|mp Review]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/mpReview|mp Review]] extension)</small><br />
* [[Documentation/Nightly/Modules/Data|Data]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/Units|Units]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/DICOM|DICOM]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/SampleData|Sample Data]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/Colors|Colors]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/CurveMaker|Curve Maker]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/CurveMaker|Curve Maker]] extension)</small><br />
* [[Documentation/Nightly/Modules/Annotations|Annotations]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/Markups|Markups]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/SubjectHierarchy|Subject Hierarchy]] <small>(loadable, built-in)</small><br />
<span id='Modules_by_category_Informatics_Converters'></span><br />
=== Converters ===<br />
* [[Documentation/Nightly/Modules/EncodeSEG|Encode SEG]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/Reporting|Reporting]] extension)</small><br />
<span id='Modules_by_category_Legacy'></span><br />
== Legacy ==<br />
<span id='Modules_by_category_Legacy_Converters'></span><br />
=== Converters ===<br />
* [[Documentation/Nightly/Modules/BSplineToDeformationField|BSpline To Deformation Field]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Legacy_Filtering'></span><br />
=== Filtering ===<br />
* [[Documentation/Nightly/Modules/OtsuThresholdImageFilter|Otsu Threshold Image Filter]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/ResampleScalarVolume|Resample Scalar Volume]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Legacy_Registration'></span><br />
=== Registration ===<br />
* Test Grid Transform Registration <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/ExpertAutomatedRegistration|Expert Automated Registration]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Legacy_Work_in_Progress'></span><br />
=== Work in Progress ===<br />
<span id='Modules_by_category_Work_in_Progress_Diffusion_Tensor'></span><br />
==== Diffusion Tensor ====<br />
<span id='Modules_by_category_Diffusion_Tensor_Test'></span><br />
===== Test =====<br />
* Diffusion Tensor Test <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Margin_Calculator'></span><br />
== Margin Calculator ==<br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Dose Morphology]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Dose Population Histogram]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Motion Simulator]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Synthetic RTDose]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Motion Simulator Double Array]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
<span id='Modules_by_category_Mesh_Generation'></span><br />
== Mesh Generation ==<br />
* [[Documentation/Nightly/Extensions/CleaverExtension|Cleaver CLI]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CleaverExtension|Cleaver Extension]] extension)</small><br />
<span id='Modules_by_category_MeshGeneration'></span><br />
== MeshGeneration ==<br />
* [[Documentation/Nightly/Modules/BodyCentricCubicMesh|Body Centric Cubic Mesh]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CBC_3D_I2MConversion|CBC 3D I2MConversion]] extension)</small><br />
* [[Documentation/Nightly/Modules/MeshCompression|Mesh Compression]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CBC_3D_I2MConversion|CBC 3D I2MConversion]] extension)</small><br />
<span id='Modules_by_category_Microscopy'></span><br />
== Microscopy ==<br />
* [[Documentation/Nightly/Extensions/IASEM|IASEMImport Series]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|IASEMImport]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|Bin Shrink]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|Label Object Statistics]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|Spacing Aware Curvature Diffusion]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
<span id='Modules_by_category_MultiVolume_Support'></span><br />
== MultiVolume Support ==<br />
* [[Documentation/Nightly/Modules/MultiVolumeImporter|Multi Volume Importer]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/MultiVolumeExplorer|Multi Volume Explorer]] <small>(loadable, built-in)</small><br />
<span id='Modules_by_category_Plastimatch'></span><br />
== Plastimatch ==<br />
* [[Documentation/Nightly/Modules/DicomSroExport|Dicom Sro Export]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Plm Register]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
<span id='Modules_by_category_Plastimatch_Registration'></span><br />
=== Registration ===<br />
* [[Documentation/Nightly/Extensions/SlicerRT|plastimatch slicer bspline]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|plastimatch slicer landwarp]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
<span id='Modules_by_category_Plastimatch_Utilities'></span><br />
=== Utilities ===<br />
* [[Documentation/Nightly/Extensions/SlicerRT|Plastimatch Py]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
<span id='Modules_by_category_Quantification'></span><br />
== Quantification ==<br />
* [http://slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DSC_MRI_Analysis DSCMRIAnalysis] <small>(cli, bundled in [http://slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DSC_MRI_Analysis DSCMRIAnalysis] extension)</small><br />
* [[Documentation/Nightly/Extensions/PET-IndiC|PETIndi C]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/PET-IndiC|PET-Indi C]] extension)</small><br />
* [[Documentation/Nightly/Extensions/Q3DC|Q3DC]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/Q3DC|Q3DC]] extension)</small><br />
* [[Documentation/Nightly/Modules/HeterogeneityCAD|Heterogeneity CAD]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/OpenCAD|Open CAD]] extension)</small><br />
* [[Documentation/Nightly/Modules/QuantitativeIndicesCLI|Quantitative Indices CLI]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/PET-IndiC|PET-Indi C]] extension)</small><br />
* [[Documentation/Nightly/Modules/PETStandardUptakeValueComputation|PETStandard Uptake Value Computation]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/SUVFactorCalculator|SUVFactor Calculator]] <small>(cli, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PETDICOM PETDICOMExtension] extension)</small><br />
* [[Documentation/Nightly/Modules/SpinalCurvatureMeasurement|Spinal Curvature Measurement]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/Scoliosis|Scoliosis]] extension)</small><br />
* [[Documentation/Nightly/Modules/QuantitativeIndicesTool|Quantitative Indices Tool]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/PET-IndiC|PET-Indi C]] extension)</small><br />
* [[Documentation/Nightly/Modules/LabelStatistics|Label Statistics]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/DWModeling|DWModeling]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerProstate|Slicer Prostate]] extension)</small><br />
* BRAINSLabel Stats <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/PkModeling|Pk Modeling]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/PkModeling|Pk Modeling]] extension)</small><br />
* [[Documentation/Nightly/Extensions/LongitudinalPETCT|PETSUVImage Maker]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/LongitudinalPETCT|Longitudinal PETCT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DataProbe|Data Probe]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/T1Mapping|T1Mapping]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/T1Mapping|T1Mapping]] extension)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AnglePlanes Angle Planes] <small>(scripted, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AnglePlanes Angle Planes Extension] extension)</small><br />
* [[Documentation/Nightly/Modules/dPetBrainQuantification|d Pet Brain Quantification]] <small>(scripted, bundled in [http://gti-fing.github.io/SlicerPetSpectAnalysis Pet Spect Analysis] extension)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PickAndPaint Pick And Paint] <small>(scripted, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PickAndPaint Pick And Paint Extension] extension)</small><br />
* [[Documentation/Nightly/Modules/DiceComputation|Dice Computation]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/DiceComputation|Dice Computation]] extension)</small><br />
<span id='Modules_by_category_Quantification_ChangeQuantification'></span><br />
=== ChangeQuantification ===<br />
* [[Documentation/Nightly/Modules/IntensityDifferenceMetric|Intensity Difference Metric]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/ChangeTracker|Change Tracker]] extension)</small><br />
<span id='Modules_by_category_Radiotherapy'></span><br />
== Radiotherapy ==<br />
* [[Documentation/Nightly/Extensions/SlicerRT|Beams]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Dvh Comparison]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Isodose|Isodose]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DoseVolumeHistogram|Dose Volume Histogram]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Dicom Rt Import Export]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DoseAccumulation|Dose Accumulation]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/SegmentComparison|Segment Comparison]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Planar Image]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/SegmentMorphology|Segment Morphology]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DoseComparison|Dose Comparison]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DicomSroImport|Dicom Sro Import]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
<span id='Modules_by_category_Registration'></span><br />
== Registration ==<br />
* [[Documentation/Nightly/Modules/Transforms|Transforms]] <small>(loadable, built-in)</small><br />
* BRAINSResize <small>(cli, built-in)</small><br />
* Perform Metric Test <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/LandmarkRegistration|Landmark Registration]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Extensions/PBNRR|PBNRR]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/PBNRR|PBNRR]] extension)</small><br />
* [[Documentation/Nightly/Modules/BRAINSResample|BRAINSResample]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/BRAINSFit|BRAINSFit]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Registration_CMF_Registration'></span><br />
=== CMF Registration ===<br />
* [[Documentation/Nightly/Extensions/CMFreg|Apply Matrix]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/LabelAddition|Label Addition]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/Downsize|Downsize]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/SurfaceRegistration|Surface Registration]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/LabelExtraction|Label Extraction]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
<span id='Modules_by_category_CMF_Registration_Voxelbase_Registration'></span><br />
==== Voxelbase Registration ====<br />
* [[Documentation/Nightly/Modules/NonGrowing|Non Growing]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/Growing|Growing]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/MaskCreation|Mask Creation]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
<span id='Modules_by_category_Registration_Label_Registration'></span><br />
=== Label Registration ===<br />
* [[Documentation/Nightly/Modules/DistanceMapBasedRegistration|Distance Map Based Registration]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerProstate|Slicer Prostate]] extension)</small><br />
<span id='Modules_by_category_Registration_Specialized'></span><br />
=== Specialized ===<br />
* [[Documentation/Nightly/Modules/ACPCTransform|ACPCTransform]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/FiducialRegistration|Fiducial Registration]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/BRAINSDemonWarp|BRAINSDemon Warp]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/Reformat|Reformat]] <small>(loadable, built-in)</small><br />
* VBRAINSDemon Warp <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Segmentation'></span><br />
== Segmentation ==<br />
* EMSegment Quick <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/VolumeClip|Volume Clip With Model]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/VolumeClip|Volume Clip]] extension)</small><br />
* [http://www.nitrc.org/projects/abc ABC] <small>(cli, bundled in [http://www.nitrc.org/projects/abc ABC] extension)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AirwaySegmentation Airway Segmentation CLI] <small>(cli, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AirwaySegmentation Airway Segmentation] extension)</small><br />
* [[Documentation/Nightly/Modules/LAScarSegmenter|LAScar Segmenter]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/LAScarSegmenter|LAScar Segmenter]] extension)</small><br />
* [[Documentation/Nightly/Modules/SegmentEditor|Segment Editor]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/AirwaySegmentation|Airway Segmentation]] <small>(scripted, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AirwaySegmentation Airway Segmentation] extension)</small><br />
* [[Documentation/Nightly/Modules/SkullStripper|Skull Stripper]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SkullStripper|Skull Stripper]] extension)</small><br />
* [[Documentation/Nightly/Extensions/VolumeClip|Volume Clip With Roi]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/VolumeClip|Volume Clip]] extension)</small><br />
* [[Documentation/Nightly/Modules/SegmentCAD|Segment CAD]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/OpenCAD|Open CAD]] extension)</small><br />
* [[Documentation/Nightly/Modules/SwissSkullStripper|Swiss Skull Stripper]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SwissSkullStripper|Swiss Skull Stripper]] extension)</small><br />
* [https://github.com/Tomnl/Slicer-Wasp Wasp] <small>(scripted, bundled in [https://github.com/Tomnl/Slicer-Wasp Wasp] extension)</small><br />
* [[Documentation/Nightly/Modules/Editor|Editor]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/SimpleRegionGrowingSegmentation|Simple Region Growing Segmentation]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/EMSegment|EMSegment]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/IntensitySegmenter|Intensity Segmenter]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IntensitySegmenter|Intensity Segmenter]] extension)</small><br />
<span id='Modules_by_category_Segmentation_Specialized'></span><br />
=== Specialized ===<br />
* BRAINSROIAuto <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/RobustStatisticsSegmenter|Robust Statistics Segmenter]] <small>(cli, built-in)</small><br />
* EMSegment Command Line <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Sequences'></span><br />
<br />
== Sequences ==<br />
* [[Documentation/Nightly/Extensions/Sequences|Sequences]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/Sequences|Sequences]] extension)</small><br />
* [[Documentation/Nightly/Extensions/Sequences|Sequence Browser]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/Sequences|Sequences]] extension)</small><br />
* [[Documentation/Nightly/Extensions/Sequences|Metafile Importer]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/Sequences|Sequences]] extension)</small><br />
<span id='Modules_by_category_Shape_Analysis'></span><br />
== Shape Analysis ==<br />
* [[Documentation/Nightly/Extensions/ModelToModelDistance|Model To Model Distance]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/ModelToModelDistance|Model To Model Distance]] extension)</small><br />
<span id='Modules_by_category_Slicelets'></span><br />
== Slicelets ==<br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry Analysis] <small>(scripted, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry Analysis] extension)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry Analysis Algo] <small>(loadable, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry Analysis] extension)</small><br />
<span id='Modules_by_category_Surface_Models'></span><br />
== Surface Models ==<br />
* [[Documentation/Nightly/Modules/SurfaceToolbox|Surface Toolbox]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/GrayscaleModelMaker|Grayscale Model Maker]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/ModelMaker|Model Maker]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/ModelToLabelMap|Model To Label Map]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/MergeModels|Merge Models]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/EasyClip|Easy Clip]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/EasyClip|Easy Clip]] extension)</small><br />
* [[Documentation/Nightly/Modules/LabelMapSmoothing|Label Map Smoothing]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/MeshToLabelMap|Mesh To Label Map]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/MeshToLabelMap|Mesh To Label Map]] extension)</small><br />
* [[Documentation/Nightly/Modules/ProbeVolumeWithModel|Probe Volume With Model]] <small>(cli, built-in)</small><br />
<span id='Modules_by_category_TestCases'></span><br />
== TestCases ==<br />
* SEGExporter Self Test<br />
<span id='Modules_by_category_Testing'></span><br />
== Testing ==<br />
* CLI4Test<br />
* Threshold Threading Test<br />
* [[Documentation/Nightly/Extensions/Scoliosis|Scoliosis Monitoring]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/Scoliosis|Scoliosis]] extension)</small><br />
* Slicer MRBSave Restore Check Paths Test<br />
* CLIROITest <small>(cli, built-in)</small><br />
* Performance Tests<br />
* Slicer MRBMultiple Save Restore Test<br />
* Slicer MRBTest<br />
* SEGExporter Self Test<br />
* Self Tests<br />
* Slicer MRBMultiple Save Restore Loop Test<br />
<span id='Modules_by_category_Testing_IGT_Tests'></span><br />
=== IGT Tests ===<br />
* Breach Warning Self Test<br />
* Watchdog Self Test<br />
<span id='Modules_by_category_Testing_SlicerRT_Tests'></span><br />
=== SlicerRT Tests ===<br />
* IGRTWorkflow Self Test<br />
* Dicom Rt Import Self Test<br />
* [[Documentation/Nightly/Extensions/SlicerRT|Batch Structure Set Conversion]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
<span id='Modules_by_category_Testing_TestCases'></span><br />
=== TestCases ===<br />
* Atlas Tests<br />
* Add Storable Data After Scene View Test<br />
* test tractography display<br />
* RSNAQuant Tutorial<br />
* Neurosurgical Planning Tutorial Markups Self Test<br />
* Change Tracker Self Test<br />
* Fiducial Layout Switch Bug1914<br />
* Graph Cut Segment Self Test<br />
* Charting <small>(scripted, built-in)</small><br />
* [http://brainsia.github.io/CardiacAgatstonMeasures/ Cardiac Agatston Measures] <small>(scripted, bundled in [http://brainsia.github.io/CardiacAgatstonMeasures/ Cardiac Agatston Measures] extension)</small><br />
* fiber visibility crash2438<br />
* RSNAVis Tutorial<br />
* JRC2013Vis<br />
* Add Many Markups Fiducial Test<br />
* Slicer4Minute <small>(scripted, built-in)</small><br />
* Crop Volume Self Test<br />
* Slice Link Logic <small>(scripted, built-in)</small><br />
* Volume Rendering Scene Close <small>(scripted, built-in)</small><br />
* slicer Close Crash Bug2590<br />
* CLIEvent Test<br />
* Markups Widgets Self Test<br />
* Tables Self Test<br />
* Markups In Views Self Test<br />
* Two CLIs In Parallel Test<br />
* Subject Hierarchy Core Plugins Self Test<br />
* Subject Hierarchy Generic Self Test<br />
* Scene Performance <small>(scripted, built-in)</small><br />
* Markups In Compare Viewers Self Test<br />
* scene Import2428<br />
* RSNA2012Prostate Demo<br />
* DTINot Reproducible Issue3977<br />
* Two CLIs In ARow Test<br />
* Colors Scalar Bar Self Test<br />
* BRAINSFit Rigid Registration Crash Issue4139<br />
* View Controllers Slice Interpolation Bug1926<br />
<span id='Modules_by_category_Utilities'></span><br />
== Utilities ==<br />
* [[Documentation/Nightly/Modules/DataStore|Data Store]] <small>(loadable, built-in)</small><br />
* BRAINSStrip Rotation <small>(cli, built-in)</small><br />
* EMSegment Transform To New Format <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Utilities_BRAINS'></span><br />
=== BRAINS ===<br />
* BRAINSTransform Convert <small>(cli, built-in)</small><br />
<span id='Modules_by_category_Vascular_Modeling_Toolkit'></span><br />
== Vascular Modeling Toolkit ==<br />
* [http://slicer.vmtk.org/ Centerline Computation] <small>(scripted, bundled in [http://slicer.vmtk.org/ VMTK] extension)</small><br />
* [http://slicer.vmtk.org/ Vesselness Filtering] <small>(scripted, bundled in [http://slicer.vmtk.org/ VMTK] extension)</small><br />
* [http://slicer.vmtk.org/ Level Set Segmentation] <small>(scripted, bundled in [http://slicer.vmtk.org/ VMTK] extension)</small><br />
<span id='Modules_by_category_Wizards'></span><br />
== Wizards ==<br />
* [[Documentation/Nightly/Modules/CompareVolumes|Compare Volumes]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/ChangeTracker|Change Tracker]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/ChangeTracker|Change Tracker]] extension)</small><br />
= Modules by name =<br />
311 modules:<br />
* [http://www.nitrc.org/projects/abc ABC] <small>(cli, bundled in [http://www.nitrc.org/projects/abc ABC] extension)</small><br />
* [[Documentation/Nightly/Modules/ACPCTransform|ACPCTransform]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/AddScalarVolumes|Add Scalar Volumes]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Airway Inspector] <small>(loadable, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/AirwaySegmentation|Airway Segmentation]] <small>(scripted, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AirwaySegmentation Airway Segmentation] extension)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AirwaySegmentation Airway Segmentation CLI] <small>(cli, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AirwaySegmentation Airway Segmentation] extension)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AnglePlanes Angle Planes] <small>(scripted, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/AnglePlanes Angle Planes Extension] extension)</small><br />
* [[Documentation/Nightly/Modules/Annotations|Annotations]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/CMFreg|Apply Matrix]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Beams]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|Bin Shrink]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Modules/BodyCentricCubicMesh|Body Centric Cubic Mesh]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CBC_3D_I2MConversion|CBC 3D I2MConversion]] extension)</small><br />
* [[Documentation/Nightly/Modules/BRAINSDemonWarp|BRAINSDemon Warp]] <small>(cli, built-in)</small><br />
* BRAINSDWICleanup <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/BRAINSFit|BRAINSFit]] <small>(cli, built-in)</small><br />
* BRAINSLabel Stats <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/BRAINSResample|BRAINSResample]] <small>(cli, built-in)</small><br />
* BRAINSResize <small>(cli, built-in)</small><br />
* BRAINSROIAuto <small>(cli, built-in)</small><br />
* BRAINSStrip Rotation <small>(cli, built-in)</small><br />
* BRAINSTransform Convert <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Breach Warning]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [https://github.com/SlicerIGT/LumpNav Breach Warning Light] <small>(scripted, bundled in [https://github.com/SlicerIGT/LumpNav Lump Nav] extension)</small><br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice] <small>(loadable, bundled in [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice] extension)</small><br />
* [[Documentation/Nightly/Modules/CastScalarVolume|Cast Scalar Volume]] <small>(cli, built-in)</small><br />
* [http://slicer.vmtk.org/ Centerline Computation] <small>(scripted, bundled in [http://slicer.vmtk.org/ VMTK] extension)</small><br />
* [[Documentation/Nightly/Modules/ChangeTracker|Change Tracker]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/ChangeTracker|Change Tracker]] extension)</small><br />
* [[Documentation/Nightly/Modules/CheckerBoardFilter|Checker Board Filter]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org CIP Body Composition] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP Common] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP Lesion Model] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP MIPViewer] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP PAARatio] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP Parenchyma Subtype Training] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org CIP Trachea Stent Planning] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Classify Fissure Particles] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Extensions/CleaverExtension|Cleaver CLI]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CleaverExtension|Cleaver Extension]] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Automatic Left Atrial Scar] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Axial Dilate] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Boolean REMOVEFilter] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Connected Threshold Filter] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Inhomogeneity Correction] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Isolated Connected Filter] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit LASegmentation Graph Cuts] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit PVAntrum Cut] <small>(cli, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Registration] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Registration BRAINSFit] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://capulet.med.utah.edu/namic/cmrslicer/ CMRToolkit Wizard] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [[Documentation/Nightly/Modules/CollectFiducials|Collect Fiducials]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Colors|Colors]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/CompareVolumes|Compare Volumes]] <small>(scripted, built-in)</small><br />
* [http://www.chestimagingplatform.org Compute Cross Sectional Area] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Distance Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Feature Strength] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Fissure Feature Vectors] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Compute Intensity Statistics] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Convert Chest Region Chest Type To Label Map Value] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Convert Dicom] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Convert Label Map Value To Chest Region Chest Type] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Extensions/UKFTractography|Convert VTK]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/UKFTractography|UKFTractography]] extension)</small><br />
* [[Documentation/Nightly/Modules/CornerAnnotation|Corner Annotation]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/CornerAnnotation|Corner Annotation]] extension)</small><br />
* [[Documentation/Nightly/Modules/CreateDICOMSeries|Create DICOMSeries]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Create Models]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [http://www.chestimagingplatform.org Crop Lung] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/CropVolume|Crop Volume]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/CurvatureAnisotropicDiffusion|Curvature Anisotropic Diffusion]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/CurveMaker|Curve Maker]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/CurveMaker|Curve Maker]] extension)</small><br />
* [[Documentation/Nightly/Modules/Data|Data]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/DataProbe|Data Probe]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/DataStore|Data Store]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/DiceComputation|Dice Computation]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/DiceComputation|Dice Computation]] extension)</small><br />
* [[Documentation/Nightly/Modules/DICOM|DICOM]] <small>(scripted, built-in)</small><br />
* DICOM2Full Brain Tractography <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Dicom Rt Import Export]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DicomSroExport|Dicom Sro Export]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DicomSroImport|Dicom Sro Import]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DiffusionTensorScalarMeasurements|Diffusion Tensor Scalar Measurements]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/DiffusionWeightedVolumeMasking|Diffusion Weighted Volume Masking]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/DistanceMapBasedRegistration|Distance Map Based Registration]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerProstate|Slicer Prostate]] extension)</small><br />
* [[Documentation/Nightly/Modules/DoseAccumulation|Dose Accumulation]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/DoseComparison|Dose Comparison]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Dose Morphology]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Dose Population Histogram]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Modules/DoseVolumeHistogram|Dose Volume Histogram]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Downsize|Downsize]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/dPetBrainQuantification|d Pet Brain Quantification]] <small>(scripted, bundled in [http://gti-fing.github.io/SlicerPetSpectAnalysis Pet Spect Analysis] extension)</small><br />
* [http://slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DSC_MRI_Analysis DSCMRIAnalysis] <small>(cli, bundled in [http://slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DSC_MRI_Analysis DSCMRIAnalysis] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Dvh Comparison]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* DWIConvert <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/DWIToDTIEstimation|DWITo DTIEstimation]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/DWModeling|DWModeling]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerProstate|Slicer Prostate]] extension)</small><br />
* [[Documentation/Nightly/Extensions/EasyClip|Easy Clip]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/EasyClip|Easy Clip]] extension)</small><br />
* [[Documentation/Nightly/Modules/Editor|Editor]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/EMSegment|EMSegment]] <small>(loadable, built-in)</small><br />
* EMSegment Command Line <small>(cli, built-in)</small><br />
* EMSegment Quick <small>(loadable, built-in)</small><br />
* EMSegment Transform To New Format <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/EncodeSEG|Encode SEG]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/Reporting|Reporting]] extension)</small><br />
* [[Documentation/Nightly/Modules/Endoscopy|Endoscopy]] <small>(scripted, built-in)</small><br />
* [http://www.chestimagingplatform.org Enhance Fissures In Image] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Evaluate Lung Lobe Segmentation Results] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Execute System Command] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Extract Chest Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Extract Fissure Boundary From Lobe Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Extract Particles From Chest Region Chest Type] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/ExtractSkeleton|Extract Skeleton]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/FastGrowCut|Fast Grow Cut]] <small>(loadable, bundled in [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut Fast Grow Cut Effect] extension)</small><br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Fast Grow Cut Segmenter] <small>(loadable, bundled in [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice] extension)</small><br />
* Fiber Bundle Label Select <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/FiberBundleToLabelMap|Fiber Bundle To Label Map]] <small>(scripted, built-in)</small><br />
* Fiber Post Process <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/FiberTractMeasurements|Fiber Tract Measurements]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/FiducialRegistration|Fiducial Registration]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Fiducial Registration Wizard]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Fiducials To Model Registration]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [http://www.chestimagingplatform.org Filter Airway Particle Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Filter Connected Components] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Filter Fissure Particle Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Filter Vessel Particle Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Find Patch Match] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/FinslerBacktracing|Finsler Backtracing]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/FinslerTractography|Finsler Tractography]] extension)</small><br />
* [[Documentation/Nightly/Modules/FinslerTractography|Finsler Tractography]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/FinslerTractography|Finsler Tractography]] extension)</small><br />
* [http://www.chestimagingplatform.org Fit Lobe Surface Models To Particle Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/GaussianBlurImageFilter|Gaussian Blur Image Filter]] <small>(cli, built-in)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry Analysis] <small>(scripted, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry Analysis] extension)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry Analysis Algo] <small>(loadable, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/GelDosimetry Gel Dosimetry Analysis] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Atlas Convex Hull] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Binary Thinning3D] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Distance Map From Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Image Sub Volumes] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Lesion Segmentation] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Lobe Surface Models] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Median Filtered Image] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate NLMFiltered Image] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Otsu Lung Cast] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Overlay Images] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Partial Lung Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Region Histograms And Parenchyma Phenotypes] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Generate Stenciled Label Map From Particles] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Get Structures In Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Get Transformation Kappa] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Get Transformation Kappa2D] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Get Transformation Similarity Metric] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/GradientAnisotropicDiffusion|Gradient Anisotropic Diffusion]] <small>(cli, built-in)</small><br />
* [http://publish.uwo.ca/~dchen285/GraphCutSegment/GraphCutSegment.html Graph Cut Interactive Segmenter] <small>(loadable, bundled in [http://publish.uwo.ca/~dchen285/GraphCutSegment/GraphCutSegment.html Graph Cut Segment] extension)</small><br />
* [[Documentation/Nightly/Modules/GrayscaleFillHoleImageFilter|Grayscale Fill Hole Image Filter]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/GrayscaleGrindPeakImageFilter|Grayscale Grind Peak Image Filter]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/GrayscaleModelMaker|Grayscale Model Maker]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/Growing|Growing]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/GyroGuide|Gyro Guide]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/GyroGuide|Gyro Guide]] extension)</small><br />
* [[Documentation/Nightly/Modules/HeterogeneityCAD|Heterogeneity CAD]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/OpenCAD|Open CAD]] extension)</small><br />
* [[Documentation/Nightly/Modules/HistogramMatching|Histogram Matching]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|IASEMImport]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|IASEMImport Series]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Extensions/iGyne|i Gyne]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/iGyne|i Gyne]] extension)</small><br />
* [[Documentation/Nightly/Modules/ImageLabelCombine|Image Label Combine]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/IntensityDifferenceMetric|Intensity Difference Metric]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/ChangeTracker|Change Tracker]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IntensitySegmenter|Intensity Segmenter]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IntensitySegmenter|Intensity Segmenter]] extension)</small><br />
* [http://www.chestimagingplatform.org Interactive Lobe Segmentation] <small>(scripted, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* Island Removal <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/Isodose|Isodose]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter KUtil] <small>(scripted, bundled in [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/CarreraSliceInteractiveSegmenter Carrera Slice] extension)</small><br />
* [[Documentation/Nightly/Modules/LabelAddition|Label Addition]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/LabelExtraction|Label Extraction]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [http://www.chestimagingplatform.org Label Map From Region And Type Points] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/LabelMapSmoothing|Label Map Smoothing]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|Label Object Statistics]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [http://www.chestimagingplatform.org Label Particles By Chest Region Chest Type] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/LabelStatistics|Label Statistics]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/LandmarkRegistration|Landmark Registration]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/LAScarSegmenter|LAScar Segmenter]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/LAScarSegmenter|LAScar Segmenter]] extension)</small><br />
* [[Documentation/Nightly/Modules/LASegmentationWorkflow|LASegmentation Workflow]] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [http://slicer.vmtk.org/ Level Set Segmentation] <small>(scripted, bundled in [http://slicer.vmtk.org/ VMTK] extension)</small><br />
* [https://github.com/SlicerIGT/LumpNav Lump Nav] <small>(scripted, bundled in [https://github.com/SlicerIGT/LumpNav Lump Nav] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Modules/Markups|Markups]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Markups To Model]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/MaskCreation|Mask Creation]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [http://www.chestimagingplatform.org Mask Out Label Map Structures] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/MaskScalarVolume|Mask Scalar Volume]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/MedianImageFilter|Median Image Filter]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Merge Chest Label Maps] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/MergeModels|Merge Models]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Merge Particle Data Sets] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/MeshCompression|Mesh Compression]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CBC_3D_I2MConversion|CBC 3D I2MConversion]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MeshToLabelMap|Mesh To Label Map]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/MeshToLabelMap|Mesh To Label Map]] extension)</small><br />
* [[Documentation/Nightly/Extensions/Sequences|Metafile Importer]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/Sequences|Sequences]] extension)</small><br />
* [[Documentation/Nightly/Modules/ModelMaker|Model Maker]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Model Registration]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Models|Models]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/ModelToLabelMap|Model To Label Map]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/ModelToModelDistance|Model To Model Distance]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/ModelToModelDistance|Model To Model Distance]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Motion Simulator]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Motion Simulator Double Array]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Extensions/mpReview|mp Review]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/mpReview|mp Review]] extension)</small><br />
* [[Documentation/Nightly/Extensions/mpReview|mp Review Preprocessor]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/mpReview|mp Review]] extension)</small><br />
* [[Documentation/Nightly/Modules/MultiplyScalarVolumes|Multiply Scalar Volumes]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/MultiVolumeExplorer|Multi Volume Explorer]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/MultiVolumeImporter|Multi Volume Importer]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/N4ITKBiasFieldCorrection|N4ITKBias Field Correction]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/NeedleFinder|Needle Finder]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/NeedleFinder|Needle Finder]] extension)</small><br />
* [[Documentation/Nightly/Modules/NonGrowing|Non Growing]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/OpenIGTLinkIF|Open IGTLink IF]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/OpenIGTLinkRemote|Open IGTLink Remote]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/OrientScalarVolume|Orient Scalar Volume]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Particles Display] <small>(loadable, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/PathExplorer|Path Explorer]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/PBNRR|PBNRR]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/PBNRR|PBNRR]] extension)</small><br />
* Perform Metric Test <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Perform Morphological] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Perturb Particles] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Extensions/PET-IndiC|PETIndi C]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/PET-IndiC|PET-Indi C]] extension)</small><br />
* [[Documentation/Nightly/Modules/PETStandardUptakeValueComputation|PETStandard Uptake Value Computation]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/LongitudinalPETCT|PETSUVImage Maker]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/LongitudinalPETCT|Longitudinal PETCT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/PETTumorSegmentation|PETTumor Segmentation]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/PETTumorSegmentation|PETTumor Segmentation]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerHeart|Philips4d Us Dicom Patcher]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerHeart|Slicer Heart]] extension)</small><br />
* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PickAndPaint Pick And Paint] <small>(scripted, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PickAndPaint Pick And Paint Extension] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Pivot Calibration]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/PkModeling|Pk Modeling]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/PkModeling|Pk Modeling]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Planar Image]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|plastimatch slicer bspline]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|plastimatch slicer landwarp]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Plastimatch Py]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Plm Register]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/PlusRemote|Plus Remote]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/ProbeVolumeWithModel|Probe Volume With Model]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Extensions/Q3DC|Q3DC]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/Q3DC|Q3DC]] extension)</small><br />
* [[Documentation/Nightly/Modules/QuadEdgeSurfaceMesher|Quad Edge Surface Mesher]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerProstate|Slicer Prostate]] extension)</small><br />
* [http://www.chestimagingplatform.org Quality Control] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/QuantitativeIndicesCLI|Quantitative Indices CLI]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/PET-IndiC|PET-Indi C]] extension)</small><br />
* [[Documentation/Nightly/Modules/QuantitativeIndicesTool|Quantitative Indices Tool]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/PET-IndiC|PET-Indi C]] extension)</small><br />
* [http://www.chestimagingplatform.org Read Dicom Write Tags] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read NRRDs Write VTK] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read Vida Write CIP] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read VTKWrite NRRDs] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read Write Image Data] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Read Write Region And Type Points] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/Reformat|Reformat]] <small>(loadable, built-in)</small><br />
* [http://www.chestimagingplatform.org Region Type] <small>(loadable, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Region Type Locations To ROIVolume] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Register CT] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Register Label Maps] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Register Lung Atlas] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Remap Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Remove Chest Type From Label Map Using Particles] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Remove Particles From Particles Data Set] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [http://www.chestimagingplatform.org Resample CT] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Extensions/ResampleDTIlogEuclidean|Resample DTIlog Euclidean]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/ResampleDTIlogEuclidean|Resample DTIlog Euclidean]] extension)</small><br />
* [[Documentation/Nightly/Modules/ResampleDTIVolume|Resample DTIVolume]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Resample Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/ResampleScalarVectorDWIVolume|Resample Scalar Vector DWIVolume]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Rescale Label Map] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/RobustStatisticsSegmenter|Robust Statistics Segmenter]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/SampleData|Sample Data]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/ScarVisualization|Scar Visualization]] <small>(scripted, bundled in [http://capulet.med.utah.edu/namic/cmrslicer/ Cardiac MRI Toolkit] extension)</small><br />
* [[Documentation/Nightly/Modules/SceneViews|Scene Views]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/SEG2NRRD|SEG2NRRD]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/Reporting|Reporting]] extension)</small><br />
* [[Documentation/Nightly/Modules/Segmentations|Segmentations]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/SegmentationSmoothing|Segmentation Smoothing]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SlicerProstate|Slicer Prostate]] extension)</small><br />
* [[Documentation/Nightly/Modules/SegmentCAD|Segment CAD]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/OpenCAD|Open CAD]] extension)</small><br />
* [[Documentation/Nightly/Modules/SegmentComparison|Segment Comparison]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Segment Editor]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [http://www.chestimagingplatform.org Segment Lung Lobes] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/SegmentMorphology|Segment Morphology]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Extensions/Sequences|Sequence Browser]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/Sequences|Sequences]] extension)</small><br />
* [[Documentation/Nightly/Extensions/Sequences|Sequences]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/Sequences|Sequences]] extension)</small><br />
* [[Documentation/Nightly/Modules/SimpleFilters|Simple Filters]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/SimpleRegionGrowingSegmentation|Simple Region Growing Segmentation]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/SkullStripper|Skull Stripper]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SkullStripper|Skull Stripper]] extension)</small><br />
* [[Documentation/Nightly/Modules/SlicerToKiwiExporter|Slicer To Kiwi Exporter]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerToKiwiExporter|Slicer To Kiwi Exporter]] extension)</small><br />
* [[Documentation/Nightly/Extensions/IASEM|Spacing Aware Curvature Diffusion]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/IASEM|IASEM]] extension)</small><br />
* [[Documentation/Nightly/Modules/SpinalCurvatureMeasurement|Spinal Curvature Measurement]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/Scoliosis|Scoliosis]] extension)</small><br />
* [http://www.chestimagingplatform.org Split Left Lung Right Lung] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Modules/SubjectHierarchy|Subject Hierarchy]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/SubtractScalarVolumes|Subtract Scalar Volumes]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/SurfaceRegistration|Surface Registration]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/CMFreg|CMFreg]] extension)</small><br />
* [[Documentation/Nightly/Modules/SurfaceToolbox|Surface Toolbox]] <small>(scripted, built-in)</small><br />
* [[Documentation/Nightly/Modules/SUVFactorCalculator|SUVFactor Calculator]] <small>(cli, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/PETDICOM PETDICOMExtension] extension)</small><br />
* [[Documentation/Nightly/Modules/SwissSkullStripper|Swiss Skull Stripper]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/SwissSkullStripper|Swiss Skull Stripper]] extension)</small><br />
* [[Documentation/Nightly/Extensions/MarginCalculator|Synthetic RTDose]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/MarginCalculator|Margin Calculator]] extension)</small><br />
* [[Documentation/Nightly/Modules/T1Mapping|T1Mapping]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/T1Mapping|T1Mapping]] extension)</small><br />
* [[Documentation/Nightly/Modules/Tables|Tables]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/TCIABrowser|TCIABrowser]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/TCIABrowser|TCIABrowser]] extension)</small><br />
* [[Documentation/Nightly/Modules/ThresholdScalarVolume|Threshold Scalar Volume]] <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/TrackerStabilizer|Tracker Stabilizer]] <small>(loadable, bundled in [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/TrackerStabilizer Tracker Stabilizer] extension)</small><br />
* [[Documentation/Nightly/Modules/TractographyDisplay|Tractography Display]] <small>(loadable, built-in)</small><br />
* Tractography Interactive Seeding <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/TractographyLabelMapSeeding|Tractography Label Map Seeding]] <small>(cli, built-in)</small><br />
* [http://www.chestimagingplatform.org Transfer Region And Type Indices To From Points] <small>(cli, bundled in [http://www.chestimagingplatform.org Chest Imaging Platform] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Transform Fusion]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Transforms|Transforms]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/UKFTractography|UKFTractography]] <small>(cli, bundled in [[Documentation/Nightly/Extensions/UKFTractography|UKFTractography]] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerIGT|Ultrasound Snapshots]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Units|Units]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/SlicerHeart|Valve View]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/SlicerHeart|Slicer Heart]] extension)</small><br />
* VBRAINSDemon Warp <small>(cli, built-in)</small><br />
* [[Documentation/Nightly/Modules/VectorToScalarVolume|Vector To Scalar Volume]] <small>(scripted, built-in)</small><br />
* [http://slicer.vmtk.org/ Vesselness Filtering] <small>(scripted, bundled in [http://slicer.vmtk.org/ VMTK] extension)</small><br />
* [[Documentation/Nightly/Extensions/SlicerRT|Vff File Reader]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerRT|Slicer RT]] extension)</small><br />
* [[Documentation/Nightly/Modules/ViewControllers|View Controllers]] <small>(loadable, built-in)</small><br />
* [https://github.com/SlicerIGT/LumpNav Viewpoint] <small>(scripted, bundled in [https://github.com/SlicerIGT/LumpNav Lump Nav] extension)</small><br />
* [[Documentation/Nightly/Extensions/VolumeClip|Volume Clip With Model]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/VolumeClip|Volume Clip]] extension)</small><br />
* [[Documentation/Nightly/Extensions/VolumeClip|Volume Clip With Roi]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/VolumeClip|Volume Clip]] extension)</small><br />
* [[Documentation/Nightly/Modules/VolumeRendering|Volume Rendering]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/VolumeResliceDriver|Volume Reslice Driver]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Volumes|Volumes]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Modules/VotingBinaryHoleFillingImageFilter|Voting Binary Hole Filling Image Filter]] <small>(cli, built-in)</small><br />
* [https://github.com/Tomnl/Slicer-Wasp Wasp] <small>(scripted, bundled in [https://github.com/Tomnl/Slicer-Wasp Wasp] extension)</small><br />
* [[Documentation/Nightly/Modules/Watchdog|Watchdog]] <small>(loadable, bundled in [[Documentation/Nightly/Extensions/SlicerIGT|Slicer IGT]] extension)</small><br />
* [[Documentation/Nightly/Modules/Welcome|Welcome]] <small>(loadable, built-in)</small><br />
* [[Documentation/Nightly/Extensions/WindowLevelEffect|Window Level Effect]] <small>(scripted, bundled in [[Documentation/Nightly/Extensions/WindowLevelEffect|Window Level Effect]] extension)</small></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/GrowCutSegmentation&diff=45958Documentation/Nightly/Modules/GrowCutSegmentation2016-06-15T14:02:32Z<p>Hillarylia: Added screenshots</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from [http://www.ncbcs.org/ National Centers for Biomedical Computing].<br />
<br />
Authors: Harini Veeraraghavan, Jim Miller<br />
<br />
Contact: veerarag@ge.com<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{|<br />
|<br />
Grow Cut Segmentation is a competitive region growing algorithm using cellular automata found as an effect in the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Editor Editor module]. The algorithm works by using a set of user input scribbles for the foreground and background. For N-class segmentation, the algorithm requires a set of scribbles corresponding the N classes and a scribble for a don't care class. <br />
<br />
The algorithm executes as follows:<br />
Using the "user input scribbles", the algorithm automatically computes a region of interest that encompass the scribbles. ''It is important that the scribbles do not include a single voxel out of your region of interest as the seeding is sensitive and will not respond well to outliers.'' Next, the algorithm iteratively tries to label all the pixels in the image using the label of pixels in the user scribbled portions of the image. The algorithm converges when all the pixels in the ROI are labeled, and no pixel can change it's label any more. Individual pixels are labeled by computing a weighted similarity metric of a pixel with all its neighbors, where the weights correspond to the neighboring pixel's strength. The neighbor that results in the largest weight greater than the given pixel's strength, confers its label to the given pixel. After the segmentation, the user can edit the segmentation by providing additional gestures in the image as illustrated in the figure below.<br />
|<br />
|}<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Screen Captures}}<br />
<br />
<br />
<gallery widths=250px heights=250px class="center"><br />
File:GrowCutInputPanel-2016-06-14.png|Input Panel, select the GrowCut icon<br />
File:GrowCutScribblePos-2016-06-15.png|Scribble Positive Gestures<br />
File:GrowCutScribbleNeg-2016-06-15.png|Scribble Negative Gestures with a different label value<br />
File:GrowCutResult-2016-06-15.png|Resulting segmentation. This can be altered by providing additional gestures.<br />
</gallery><br />
<br />
''Click to enlarge photos if necessary''<br />
<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Effects}}<br />
See also the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut Fast GrowCut] documentation. This is a fast version of the GrowCut algorithm. It is downloadable in the Extension Manager, thus requires memory.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
*V. Vezhnevets and V. Konouchine, "GrowCut - Interactive multi-label N-D image segmentation", in Proc. Graphicon, 2005. pp. 150--156.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:GrowCutResult-2016-06-15.png&diff=45956File:GrowCutResult-2016-06-15.png2016-06-15T13:19:49Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:GrowCutScribbleNeg-2016-06-15.png&diff=45955File:GrowCutScribbleNeg-2016-06-15.png2016-06-15T13:18:49Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:GrowCutScribblePos-2016-06-15.png&diff=45954File:GrowCutScribblePos-2016-06-15.png2016-06-15T13:18:08Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=File:GrowCutInputPanel-2016-06-14.png&diff=45953File:GrowCutInputPanel-2016-06-14.png2016-06-15T13:17:18Z<p>Hillarylia: </p>
<hr />
<div></div>Hillaryliahttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/GrowCutSegmentation&diff=45951Documentation/Nightly/Modules/GrowCutSegmentation2016-06-14T16:23:05Z<p>Hillarylia: Added similar effects and references. Further updates to come</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-header}}<br />
<!-- ---------------------------- --><br />
<br />
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}<br />
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from [http://www.ncbcs.org/ National Centers for Biomedical Computing].<br />
<br />
Authors: Harini Veeraraghavan, Jim Miller<br />
<br />
Contact: veerarag@ge.com<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Module Description}}<br />
{|<br />
|<br />
Grow Cut Segmentation is a competitive region growing algorithm using cellular automata. The algorithm works by using a set of user input scribbles for foreground and background. For N-class segmentation, the algorithm requires a set of scribbles corresponding the N classes and a scribble for a don't care class. <br />
<br />
The algorithm executes as follows:<br />
Using the "user input scribbles", the algorithm automatically computes a region of interest that encompass the scribbles. It is important that the scribbles do not include a single voxel out of your region of interest as the seeding is sensitive and will not respond well to outliers.<br />
<br />
Next, the algorithm iteratively tries to label all the pixels in the image using the label of pixels in the user scribbled portions of the image.<br />
<br />
The algorithm converges when all the pixels in the ROI are labeled, and no pixel can change it's label any more.<br />
<br />
Individual pixels are labeled by computing a weighted similarity metric of a pixel with all its neighbors, where the weights correspond to the neighboring pixel's strength. The neighbor that results in the largest weight greater than the given pixel's strength, confers its label to the given pixel.<br />
After the segmentation, the user can edit the segmentation by providing additional gestures in the image as illustrated in the figure below.<br />
|<br />
|}<br />
<br />
<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|Similar Effects}}<br />
See also the [https://www.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/FastGrowCut Fast GrowCut] documentation. This is a fast version of the GrowCut algorithm. It is downloadable in the Extension Manager, thus requires memory.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-section|References}}<br />
*V. Vezhnevets and V. Konouchine, "GrowCut - Interactive multi-label N-D image segmentation", in Proc. Graphicon, 2005. pp. 150--156.<br />
<br />
<!-- ---------------------------- --><br />
{{documentation/{{documentation/version}}/module-footer}}<br />
<!-- ---------------------------- --></div>Hillarylia