<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dmwelch</id>
	<title>Slicer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dmwelch"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/wiki/Special:Contributions/Dmwelch"/>
	<updated>2026-05-26T11:32:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/ExtensionWizard&amp;diff=38410</id>
		<title>Documentation/Nightly/Developers/ExtensionWizard</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/ExtensionWizard&amp;diff=38410"/>
		<updated>2014-06-24T20:44:26Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* OS/X */ Pip install prerelease version of gitpython&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This page describes the Slicer Extension Wizard. To avoid redundancy and reduce the effort needed to maintain this page, generic usage is not provided here; run the wizard with the --help option instead.&lt;br /&gt;
&lt;br /&gt;
=== Background ===&lt;br /&gt;
&lt;br /&gt;
[[Documentation/{{documentation/version}}/Developers/Modules|Slicer modules]] typically consist of several files of various types, such as CMake files, source files, and resource files. In many cases, the names of the files and the names of text strings inside the files are related and need to be in sync in order for things to compile. An extension encapsulates one or mode modules (which can be of different types) in a package that can be loaded by Slicer.&lt;br /&gt;
&lt;br /&gt;
The Extension Wizard is a tool to simplify the process of creating and contributing extensions.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
If you already have git (or won't be using the operations that require git), the easiest way to let the Slicer superbuild build its own Python, which will also build the various required Python packages. For full functionality, you will also need [http://git-scm.com git] &amp;amp;ge; 1.7.10 (use [http://msysgit.github.io/ msys git] on Windows) and (to work with extensions using svn repositories) [https://subversion.apache.org/ subversion] &amp;amp;ge; 1.7.0.&lt;br /&gt;
&lt;br /&gt;
If you want to use your own (e.g. system) Python, you will need:&lt;br /&gt;
&lt;br /&gt;
* '''For all operations:'''&lt;br /&gt;
** [http://www.python.org/ Python] &amp;amp;ge; 2.6 ('python' should be in your &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt;)&lt;br /&gt;
* '''For full functionality:'''&lt;br /&gt;
** [http://git-scm.com git] &amp;amp;ge; 1.7.10 (use [http://msysgit.github.io/ msys git] on Windows)&lt;br /&gt;
** [https://subversion.apache.org/ subversion] &amp;amp;ge; 1.7.0&lt;br /&gt;
** [https://github.com/gitpython-developers/GitPython/ GitPython]&lt;br /&gt;
** [https://github.com/jacquev6/PyGithub PyGithub] = v1&lt;br /&gt;
** [https://github.com/chardet/chardet chardet]&lt;br /&gt;
&lt;br /&gt;
You should also ensure that the python interpreter ('&amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt;') is in your &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== OS/X ====&lt;br /&gt;
&lt;br /&gt;
Git is available via [http://www.macports.org/ MacPorts]:&lt;br /&gt;
&lt;br /&gt;
 sudo port install git-core&lt;br /&gt;
&lt;br /&gt;
For Python and the Python dependencies, use of a Python [http://www.virtualenv.org/en/latest/ Virtual Environment] is recommended.&lt;br /&gt;
&lt;br /&gt;
In your activated virtualenv, run:&lt;br /&gt;
&lt;br /&gt;
 pip install --pre gitpython&lt;br /&gt;
 pip install PyGithub&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
After obtaining and installing Python and git, run:&lt;br /&gt;
&lt;br /&gt;
 easy_install gitpython&lt;br /&gt;
 easy_install PyGithub&lt;br /&gt;
&lt;br /&gt;
==== Fedora ====&lt;br /&gt;
&lt;br /&gt;
 yum install git GitPython python-PyGithub&lt;br /&gt;
 # Python is already installed&lt;br /&gt;
&lt;br /&gt;
==== Other Linux ====&lt;br /&gt;
&lt;br /&gt;
Check your distribution for packages and/or use a virtualenv (see OS/X instructions).&lt;br /&gt;
&lt;br /&gt;
=== Invoking the Wizard ===&lt;br /&gt;
&lt;br /&gt;
In your favorite terminal program running a POSIX-compliant shell (on Windows, &amp;quot;git bash&amp;quot; is strongly recommended), run:&lt;br /&gt;
&lt;br /&gt;
 /path/to/slicer/bin/slicerExtensionWizard&lt;br /&gt;
&lt;br /&gt;
...replacing '&amp;lt;code&amp;gt;/path/to/slicer&amp;lt;/code&amp;gt;' with the (relative or absolute) path to your Slicer build or install.&lt;br /&gt;
&lt;br /&gt;
{{notice|You can also add '&amp;lt;code&amp;gt;''/path/to/slicer''/bin&amp;lt;/code&amp;gt;' to your &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt;. For the sake of brevity, we'll assume that you've done so for the remainder of this document.}}&lt;br /&gt;
&lt;br /&gt;
The launcher script will ensure that your Python and library paths are set correctly to find packages and libraries that are provided by Slicer, and will invoke the correct Python binary if provided by Slicer.&lt;br /&gt;
&lt;br /&gt;
== Creating Extensions ==&lt;br /&gt;
&lt;br /&gt;
The Extension Wizard simplifies the process of creating extensions by providing a mechanism to create extensions and modules from templates. This process will automatically create files for you with appropriate names, and make some crucial content substitutions within the templates in order to produce code that can be built immediately.&lt;br /&gt;
&lt;br /&gt;
=== Terminology ===&lt;br /&gt;
&lt;br /&gt;
; template : A directory containing files that are used to create a new entity (e.g. extension or module).&lt;br /&gt;
; templateKey : A text string that is used in both filename and identifiers inside the module. For Slicer-provided extensions, this is &amp;quot;TemplateKey&amp;quot;.&lt;br /&gt;
; destination : The directory under which you want the new code to be placed.&lt;br /&gt;
; name : The name of the new entity (e.g. extension, module) you want to create. The code will be placed in a subdirectory by this name, and the ''templateKey'' will be replaced with this name.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
 # List available templates&lt;br /&gt;
 slicerExtensionWizard --listTemplates&lt;br /&gt;
 &amp;lt;nowiki/&amp;gt;&lt;br /&gt;
 # Create an extension with two modules; one written in C++, and one in Python&lt;br /&gt;
 slicerExtensionWizard --create MyExtension ~/code/&lt;br /&gt;
 cd ~/code/MyExtension&lt;br /&gt;
 slicerExtensionWizard --addModule loadable:MyCppModule&lt;br /&gt;
 slicerExtensionWizard --addModule scripted:MyPythonModule&lt;br /&gt;
 &amp;lt;nowiki/&amp;gt;&lt;br /&gt;
 # Create a superbuild extension with a CLI module&lt;br /&gt;
 slicerExtensionWizard --create superbuild:MyCLIExtension ~/code/&lt;br /&gt;
 slicerExtensionWizard --addModule cli:MyCLI ~/code/MyCLIExtension&lt;br /&gt;
&lt;br /&gt;
The wizard attempts to update your extension CMakeLists.txt to include the new module. The stock module templates include a placeholder which indicates where the new &amp;lt;code&amp;gt;add_subdirectory&amp;lt;/code&amp;gt; should be inserted. (If this placeholder is not present, the wizard attempts to add the new &amp;lt;code&amp;gt;add_subdirectory&amp;lt;/code&amp;gt; after the last existing &amp;lt;code&amp;gt;add_subdirectory&amp;lt;/code&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
Note that the destination (extension) directory is optional, defaulting to the current directory. In the above example, we &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; into the newly created extension directory, which allows us to omit this argument for subsequent operations.&lt;br /&gt;
&lt;br /&gt;
Now is a good time to create a git repository to keep track of your work:&lt;br /&gt;
&lt;br /&gt;
 cd ~/code/MyExtension&lt;br /&gt;
 git init .&lt;br /&gt;
 git add .&lt;br /&gt;
 git commit&lt;br /&gt;
&lt;br /&gt;
After creating your extension or adding modules, you should edit the newly created files to update the extension or module information with your name, an appropriate description, and any acknowledgments. You may also wish to replace the extension icon with a 128x128 icon of your choosing.&lt;br /&gt;
&lt;br /&gt;
=== Stock Templates ===&lt;br /&gt;
&lt;br /&gt;
The following templates are provided with Slicer:&lt;br /&gt;
&lt;br /&gt;
==== Extensions ====&lt;br /&gt;
&lt;br /&gt;
; default : A basic extension.&lt;br /&gt;
; superbuild : An extension which is intended to be integrated with a Slicer superbuild.&lt;br /&gt;
&lt;br /&gt;
==== Modules ====&lt;br /&gt;
&lt;br /&gt;
; cli : A module which provides a custom command line interface.&lt;br /&gt;
; loadable : A C++ module which provides new functionality in Slicer.&lt;br /&gt;
; scripted : A Python module which provides new functionality in Slicer.&lt;br /&gt;
&lt;br /&gt;
More detailed information about the various module types in Slicer can be found [[Documentation/{{documentation/version}}/Developers/Modules|here]].&lt;br /&gt;
&lt;br /&gt;
=== Using Custom Templates ===&lt;br /&gt;
&lt;br /&gt;
By default, the Extension Wizard uses a set of templates that are provided with Slicer. You can add your own templates with the &amp;lt;code&amp;gt;--templatePath&amp;lt;/code&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
 # Add custom templates; expects to find subdirectories under the path matching&lt;br /&gt;
 # a template type, e.g. 'modules'&lt;br /&gt;
 slicerExtensionWizard --templatePath ~/code/Templates&lt;br /&gt;
 &amp;lt;nowiki/&amp;gt;&lt;br /&gt;
 # Add custom module templates&lt;br /&gt;
 slicerExtensionWizard --templatePath modules=~/code/Templates&lt;br /&gt;
&lt;br /&gt;
This can also be used to make a copy of an existing module. When doing so, you will likely also want to use the &amp;lt;code&amp;gt;--templateKey&amp;lt;/code&amp;gt; option to specify the text that should be replaced when making the copy:&lt;br /&gt;
&lt;br /&gt;
 # Make a copy of an existing module in the same extension&lt;br /&gt;
 slicerExtensionWizard --templatePath modules=~/code/MyExtension \&lt;br /&gt;
                       --templateKey ModuleOne=ModuleOne \&lt;br /&gt;
                       --addModule ModuleOne:ModuleTwo \&lt;br /&gt;
                       ~/code/MyExtension&lt;br /&gt;
&lt;br /&gt;
Note that these options apply only to the invocation of the wizard for which they are used.&lt;br /&gt;
&lt;br /&gt;
== Using Extensions ==&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
&lt;br /&gt;
If your extension is not pure Python, you will need to compile it in order to use it. (Even if it is, you may wish to build your extension in order to use it from the build tree.)&lt;br /&gt;
&lt;br /&gt;
Here is a simple recipe that will work in many cases (assumes you are on not-Windows or using the git-msys shell):&lt;br /&gt;
&lt;br /&gt;
 Slicer_DIR=/path/to/slicer/superbuild&lt;br /&gt;
 cd ~/code/MyExtension&lt;br /&gt;
 mkdir ../MyExtension-build&lt;br /&gt;
 cd ../MyExtension-build&lt;br /&gt;
 &amp;lt;nowiki/&amp;gt;&lt;br /&gt;
 # You may also want to pass '-G &amp;quot;&amp;amp;lt;generator&amp;amp;gt;&amp;quot;' here (required on Windows)&lt;br /&gt;
 cmake -DSlicer_DIR:PATH=${Slicer_DIR} ../MyExtension&lt;br /&gt;
 cmake --build .&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Installation&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
You don't need to &amp;quot;install&amp;quot; your extension, as such, but you do need to tell Slicer where to find it. After building your extension (if needed; you can skip this for pure-Python extensions), open Slicer's [[Documentation/{{documentation/version}}/SlicerApplication/ApplicationSettings|Application Settings]] dialog, select &amp;quot;Modules&amp;quot; from the list, and add additional module paths to point to the full path to your extension. For example:&lt;br /&gt;
&lt;br /&gt;
* ~/code/MyExtension/build/lib/Slicer-''&amp;lt;version&amp;gt;''/qt-loadable-modules&lt;br /&gt;
* ~/code/MyExtension/build/lib/Slicer-''&amp;lt;version&amp;gt;''/qt-scripted-modules&lt;br /&gt;
* ~/code/MyExtension/MyPythonModule&lt;br /&gt;
&lt;br /&gt;
The second item above is used for Python modules if you are building your extension (which may be convenient if you have several modules). The third item references a ''single'' Python module directly from the source tree. For a given extension, you should use one form or the other; not both.&lt;br /&gt;
&lt;br /&gt;
After restarting Slicer, your module should show up in the [[Documentation/{{documentation/version}}/SlicerApplication/MainApplicationGUI#Module_Selection_.26_Navigation|Module Navigation]] interface.&lt;br /&gt;
&lt;br /&gt;
== Contributing Extensions ==&lt;br /&gt;
&lt;br /&gt;
Once your extension is in a state that you want to make it available via Slicer's public [http://slicer.kitware.com/midas3/slicerappstore Extensions Catalog], you'll need to do two things:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Publish&amp;quot; your extension by making it available on a publicly accessible repository.&lt;br /&gt;
# Request that your extension be added to the [http://github.com/Slicer/ExtensionsIndex public extension index].&lt;br /&gt;
&lt;br /&gt;
Before you begin, you'll need a [http://github.com github] account.&lt;br /&gt;
&lt;br /&gt;
The wizard uses [http://git-scm.com/docs/gitcredentials.html git credentials] to manage your user name and password. This means it will e.g. honor &amp;lt;code&amp;gt;$GIT_ASKPASS&amp;lt;/code&amp;gt; when git would, and cache your login information if git is configured to do so.&lt;br /&gt;
&lt;br /&gt;
If you aren't using a password manager and want git to remember your user name, you may wish to run:&lt;br /&gt;
&lt;br /&gt;
 git config ''[''--global'']'' &amp;lt;nowiki&amp;gt;credential.https://github.com.username&amp;lt;/nowiki&amp;gt; ''&amp;lt;your_user_name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
{{notice|If the above leaves you scratching your head, don't worry; the default behavior if you haven't configured anything else is simply to prompt you for your user name and password. Setting up either a password manager or credential caching is recommended however, as some operations may otherwise require you to provide your password more than once.}}&lt;br /&gt;
&lt;br /&gt;
=== Publishing Extensions ===&lt;br /&gt;
&lt;br /&gt;
The Extension Wizard can be used to publish your extension to a github repository:&lt;br /&gt;
&lt;br /&gt;
 slicerExtensionWizard --publish ~/code/MyExtension&lt;br /&gt;
&lt;br /&gt;
This will:&lt;br /&gt;
&lt;br /&gt;
* Create a git repository, if your extension is not already managed by git.&lt;br /&gt;
* Create a github repository for your extension and add this as a remote of your local repository.&lt;br /&gt;
* Update your extension information so that the homepage and icon URL refer to the github repository.&lt;br /&gt;
* Commit the above changes (or make an initial commit, if you didn't already have a git repository).&lt;br /&gt;
* Push your extension to the github repository.&lt;br /&gt;
&lt;br /&gt;
{{notice|You should not use this command if your extension already has a public repository and/or is using Subversion for source code management.}}&lt;br /&gt;
&lt;br /&gt;
If you have already changed your extension's homepage or icon URL, the wizard will ask if you want to keep the current URL or use the new URL referring to the new github repository. Once your extension has a public repository, you should commit (svn) or push (git) changes using your SCM tool's usual workflow.&lt;br /&gt;
&lt;br /&gt;
=== Contributing Extensions to the Index ===&lt;br /&gt;
&lt;br /&gt;
When your extension is ready for wider distribution/use, you can request that it be added to the public extension catalog. To do this, run:&lt;br /&gt;
&lt;br /&gt;
 # First check that your extension description looks okay:&lt;br /&gt;
 slicerExtensionWizard --describe ~/code/MyExtension&lt;br /&gt;
 &amp;lt;nowiki/&amp;gt;&lt;br /&gt;
 # If it does:&lt;br /&gt;
 slicerExtensionWizard --contribute --target master ~/code/MyExtension&lt;br /&gt;
&lt;br /&gt;
This will fork and clone the [http://github.com/Slicer/ExtensionsIndex extension index repository], add your extension description, and create a pull request to merge your addition to the index to the primary (upstream) index. If your extension already exists, the description is instead updated, and the pull request will include a link to the changes that have been made to your extension since the existing upstream version.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--target&amp;lt;/code&amp;gt; option may be used to specify the branch of slicer for which your extension is intended, e.g. &amp;lt;code&amp;gt;4.3&amp;lt;/code&amp;gt;. This parameter is optional, defaulting to &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
By default, the extension index is cloned to a directory inside the &amp;lt;code&amp;gt;.git&amp;lt;/code&amp;gt; directory of your extension. The &amp;lt;code&amp;gt;--index&amp;lt;/code&amp;gt; option may be used to specify an alternate location or existing extension index clone.&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions&amp;diff=36913</id>
		<title>Documentation/Nightly/Developers/Build Instructions</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions&amp;diff=36913"/>
		<updated>2014-01-07T01:01:18Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Added install image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{:{{FULLPAGENAME}}/Prerequisites}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/CheckoutSourceCode}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/Configure}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/Compile}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RUN Slicer ==&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start a terminal.&lt;br /&gt;
{{pre2|scroll|&lt;br /&gt;
$ Slicer-SuperBuild/Slicer-build/Slicer}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start Windows Explorer. [http://www.wikihow.com/Open-Windows-Explorer Need help?]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Run &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build/Slicer.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* Linux Ubuntu: if you have odd rendering artifacts, try disabling visual effects (System/Appearance/Visual Effects)&lt;br /&gt;
* Windows: If build was OK, but it Slicer doesn't start (gives the error: [bin/Release/SlicerQT-real.exe] exit abnormally - Report the problem.) then one possible root cause is that you have a copy of Python26.dll in your windows system directory (e.g., c:\Windows\System32\python26.dll). The solution is to rename or remove the python dll in the system directory. See more details here: http://www.na-mic.org/Bug/view.php?id=1180&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PACKAGE Slicer ==&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX (Makefile)&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start a terminal.&lt;br /&gt;
{{pre2|scroll|&lt;br /&gt;
$ cd ~/Projects/Slicer-SuperBuild&lt;br /&gt;
$ cd Slicer-build&lt;br /&gt;
&lt;br /&gt;
$ make package}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start Windows Explorer. [http://www.wikihow.com/Open-Windows-Explorer Need help?]&lt;br /&gt;
&amp;lt;ol start=&amp;quot;1&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open &amp;lt;code&amp;gt;Slicer-SuperBuild\Slicer-build\Slicer.sln&amp;lt;/code&amp;gt; in Visual Studio&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select '''Release''' build configuration.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the Solution Explorer, right click on '''PACKAGE''' project and then select '''Build'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== DEBUG Slicer ==&lt;br /&gt;
&lt;br /&gt;
To be able to debug Slicer application, you are expected to build it with Debug symbols in a clean directory.&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Configure Slicer using &amp;lt;code&amp;gt;-DCMAKE_BUILD_TYPE:STRING=Debug&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Selecting &amp;lt;code&amp;gt;Debug&amp;lt;/code&amp;gt; configuration in Visual Studio.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{wip}} TBD&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;ol start=&amp;quot;1&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Press &amp;quot;Win-R,&amp;quot; type &amp;quot;cmd&amp;quot; and press &amp;quot;Enter&amp;quot; to open a Command Prompt session.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Start Visual Studio with Slicer environment:&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;pre&amp;gt;&amp;amp;gt; cd \path\to\Slicer-SuperBuild\Slicer-build&lt;br /&gt;
&amp;amp;gt; Slicer.exe --VisualStudio Slicer.sln&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common errors ==&lt;br /&gt;
&lt;br /&gt;
=== CMake complains during configuration ===&lt;br /&gt;
CMake may not directly show what's wrong; try to look for log files of the form BUILD/CMakeFiles/*.log (where BUILD is your build directory) to glean further information.&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Generating vtksysProcessFwd9xEnc.c&amp;quot; ===&lt;br /&gt;
 The application has failed to start because its side-by-side configuration is incorrect.&lt;br /&gt;
 Please see the application event log or use the command-line sxstrace.exe tool for more detail.&lt;br /&gt;
 Project : error PRJ0019: A tool returned an error code from &amp;quot;Generating&lt;br /&gt;
 vtksysProcessFwd9xEnc.c&amp;quot;&lt;br /&gt;
Install [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites#Windows|SP1 of Visual Studio]]&lt;br /&gt;
&lt;br /&gt;
=== error: ‘class QList&amp;lt;QString&amp;gt;’ has no member named ‘reserve’ ===&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qdatastream.h: In function ‘QDataStream&amp;amp; operator&amp;gt;&amp;gt;(QDataStream&amp;amp;, QList&amp;lt;T&amp;gt;&amp;amp;) [with T = QString]’:&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qstringlist.h:247:   instantiated from here&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qdatastream.h:246: error: ‘class QList&amp;lt;QString&amp;gt;’ has no member named ‘reserve’&lt;br /&gt;
You have multiple Qt versions installed on your machine. Try removing the Qt version installed on the system.&lt;br /&gt;
&lt;br /&gt;
=== libarchive.so: undefined reference to `SHA256_Update' ===&lt;br /&gt;
&lt;br /&gt;
 Linking CXX executable ../../../../../bin/MRMLLogicCxxTests&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Update'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Final'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Init'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `MD5_Init'&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
 cd Slicer-SuperBuild&lt;br /&gt;
 rm -rf LibArchive-*&lt;br /&gt;
 make -j4&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
* http://na-mic.org/Mantis/view.php?id=1616&lt;br /&gt;
* http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;amp;revision=18923&lt;br /&gt;
* http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;amp;revision=18969&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Performing configure step for ...&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
CMake has some problems building complex projects on Windows7. See more details in: http://cmake.org/Bug/view.php?id=12957&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;A fix has been already identified and soon will be available in an official CMake release (probably 2.8.8). Until then this unofficial version can be used (based on CMake-2.8.7): https://qshare.queensu.ca/Users01/lasso/public/cmake-2.8.7.12957-win32-x86.exe&amp;lt;/del&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
This issue has been fixed by commit [http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4fbdce2b 4fbdce2b] included in CMake &amp;gt;= 2.8.8. Download CMake version recommended in the [[Documentation/{{documentation/version}}/Developers/Build_Instructions#Windows|Prequisites]]&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Performing download step (git clone) for ...&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
CMake has problems cloning git repositories on Windows7. See more details in http://cmake.org/Bug/view.php?id=12564&lt;br /&gt;
&lt;br /&gt;
If you think the described problem is the same as you have, please add your specific error message to the bug report (the more people report the problem the sooner it will be fixed).&lt;br /&gt;
&lt;br /&gt;
=== No rule to make target `/usr/lib/x86_64-linux-gnu/libGL.so' ===&lt;br /&gt;
See http://techtidings.blogspot.com/2012/01/problem-with-libglso-on-64-bit-ubuntu.html&lt;br /&gt;
&lt;br /&gt;
=== X11 Window errors at start time ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x4200199&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x42001a6&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x42001b3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution: &lt;br /&gt;
* Reinstall Nvidia drivers (that also rewrite the xorg.conf file).&lt;br /&gt;
&lt;br /&gt;
=== error C2061: syntax error : identifier 'ssize_t' ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
4&amp;gt;1&amp;gt;Compiling...&lt;br /&gt;
4&amp;gt;1&amp;gt;version.c&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(585) : error C2061: syntax error : identifier 'ssize_t'&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(593) : error C2365: 'fread' : redefinition; previous definition was 'function'&lt;br /&gt;
4&amp;gt;1&amp;gt;        C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\stdio.h(248) : see declaration of 'fread'&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(610) : error C2059: syntax error : '}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
* See [[#A_tool_returned_an_error_code_from_.22Performing_configure_step_for_....22]]&lt;br /&gt;
&lt;br /&gt;
=== ld: framework not found QtWebKit ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
Linking CXX shared library libPythonQt.dylib&lt;br /&gt;
ld: framework not found QtWebKit&lt;br /&gt;
clang: error: linker command failed with exit code 1 (use -v to see invocation)&lt;br /&gt;
make[8]: *** [libPythonQt.dylib] Error 1&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See Slicer issue [http://na-mic.org/Mantis/view.php?id=2860 #2860]&lt;br /&gt;
&lt;br /&gt;
Workaround:&lt;br /&gt;
* See http://public.kitware.com/Bug/view.php?id=13765#c31824&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
* Use a [http://www.cmake.org/files/dev/?C=M;O=D recent nightly build of CMake]. It includes patch [http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cc676c3a cc676c3a]. Note also that the coming version of CMake 2.8.11 will work as expected.&lt;br /&gt;
&lt;br /&gt;
=== On MacOSX 10.8, CMake hangs forever ===&lt;br /&gt;
&lt;br /&gt;
Issue: http://www.na-mic.org/Bug/view.php?id=2957&lt;br /&gt;
&lt;br /&gt;
Solution: Use CMake build &amp;gt;= 2.8.10.20130220-g53b279. See http://www.cmake.org/files/dev/cmake-2.8.10.20130220-g53b279-Darwin-universal.tar.gz&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
&lt;br /&gt;
CMake folks (Thanks Brad King :)) fixed an issue that was preventing the most recent nightly from being used to successfully compile Slicer. The fix has been tested and is known to work. Tomorrow nightly build of CMake and by extension the coming release of CMake 2.8.11 will work.&lt;br /&gt;
&lt;br /&gt;
If you are curious about the details, check the commit message:&lt;br /&gt;
&lt;br /&gt;
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1df09e57 [^]&lt;br /&gt;
&lt;br /&gt;
The associated CMake test have also been updated: &lt;br /&gt;
&lt;br /&gt;
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bff3d9ce [^]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== svn: E175002: Unable to connect to a repository at URL XXX ===&lt;br /&gt;
&lt;br /&gt;
Issue: Cisco AnyConnect is installed with the &amp;quot;Web Security&amp;quot; option checked (default), which blocks Subversion checkouts even when inactive!&lt;br /&gt;
&lt;br /&gt;
Solution:  Uninstall and reinstall Cisco AnyConnect, deselecting the &amp;quot;Web Security&amp;quot; feature during install&lt;br /&gt;
&lt;br /&gt;
[[File:CiscoAnyConnectInstallOptions.png]]&lt;br /&gt;
&lt;br /&gt;
==Quick Build on Debian==&lt;br /&gt;
 sudo aptitude update&lt;br /&gt;
 sudo aptitude install subversion git gcc g++ make cmake-curses-gui libqt4-dev&lt;br /&gt;
 svn co http://svn.slicer.org/Slicer4/trunk Slicer&lt;br /&gt;
 mkdir Slicer-SuperBuild-Debug&lt;br /&gt;
 cd Slicer-SuperBuild-Debug&lt;br /&gt;
 cmake ../Slicer&lt;br /&gt;
 make -j5&lt;br /&gt;
 &lt;br /&gt;
 # runtime dependency:&lt;br /&gt;
 sudo aptitude install python-tk&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:CiscoAnyConnectInstallOptions.png&amp;diff=36912</id>
		<title>File:CiscoAnyConnectInstallOptions.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:CiscoAnyConnectInstallOptions.png&amp;diff=36912"/>
		<updated>2014-01-07T01:00:24Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions&amp;diff=36911</id>
		<title>Documentation/Nightly/Developers/Build Instructions</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions&amp;diff=36911"/>
		<updated>2014-01-07T00:59:46Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* svn: E175002: Unable to connect to a repository at URL XXX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{:{{FULLPAGENAME}}/Prerequisites}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/CheckoutSourceCode}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/Configure}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/Compile}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RUN Slicer ==&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start a terminal.&lt;br /&gt;
{{pre2|scroll|&lt;br /&gt;
$ Slicer-SuperBuild/Slicer-build/Slicer}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start Windows Explorer. [http://www.wikihow.com/Open-Windows-Explorer Need help?]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Run &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build/Slicer.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* Linux Ubuntu: if you have odd rendering artifacts, try disabling visual effects (System/Appearance/Visual Effects)&lt;br /&gt;
* Windows: If build was OK, but it Slicer doesn't start (gives the error: [bin/Release/SlicerQT-real.exe] exit abnormally - Report the problem.) then one possible root cause is that you have a copy of Python26.dll in your windows system directory (e.g., c:\Windows\System32\python26.dll). The solution is to rename or remove the python dll in the system directory. See more details here: http://www.na-mic.org/Bug/view.php?id=1180&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PACKAGE Slicer ==&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX (Makefile)&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start a terminal.&lt;br /&gt;
{{pre2|scroll|&lt;br /&gt;
$ cd ~/Projects/Slicer-SuperBuild&lt;br /&gt;
$ cd Slicer-build&lt;br /&gt;
&lt;br /&gt;
$ make package}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start Windows Explorer. [http://www.wikihow.com/Open-Windows-Explorer Need help?]&lt;br /&gt;
&amp;lt;ol start=&amp;quot;1&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open &amp;lt;code&amp;gt;Slicer-SuperBuild\Slicer-build\Slicer.sln&amp;lt;/code&amp;gt; in Visual Studio&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select '''Release''' build configuration.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the Solution Explorer, right click on '''PACKAGE''' project and then select '''Build'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== DEBUG Slicer ==&lt;br /&gt;
&lt;br /&gt;
To be able to debug Slicer application, you are expected to build it with Debug symbols in a clean directory.&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Configure Slicer using &amp;lt;code&amp;gt;-DCMAKE_BUILD_TYPE:STRING=Debug&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Selecting &amp;lt;code&amp;gt;Debug&amp;lt;/code&amp;gt; configuration in Visual Studio.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{wip}} TBD&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;ol start=&amp;quot;1&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Press &amp;quot;Win-R,&amp;quot; type &amp;quot;cmd&amp;quot; and press &amp;quot;Enter&amp;quot; to open a Command Prompt session.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Start Visual Studio with Slicer environment:&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;pre&amp;gt;&amp;amp;gt; cd \path\to\Slicer-SuperBuild\Slicer-build&lt;br /&gt;
&amp;amp;gt; Slicer.exe --VisualStudio Slicer.sln&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common errors ==&lt;br /&gt;
&lt;br /&gt;
=== CMake complains during configuration ===&lt;br /&gt;
CMake may not directly show what's wrong; try to look for log files of the form BUILD/CMakeFiles/*.log (where BUILD is your build directory) to glean further information.&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Generating vtksysProcessFwd9xEnc.c&amp;quot; ===&lt;br /&gt;
 The application has failed to start because its side-by-side configuration is incorrect.&lt;br /&gt;
 Please see the application event log or use the command-line sxstrace.exe tool for more detail.&lt;br /&gt;
 Project : error PRJ0019: A tool returned an error code from &amp;quot;Generating&lt;br /&gt;
 vtksysProcessFwd9xEnc.c&amp;quot;&lt;br /&gt;
Install [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites#Windows|SP1 of Visual Studio]]&lt;br /&gt;
&lt;br /&gt;
=== error: ‘class QList&amp;lt;QString&amp;gt;’ has no member named ‘reserve’ ===&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qdatastream.h: In function ‘QDataStream&amp;amp; operator&amp;gt;&amp;gt;(QDataStream&amp;amp;, QList&amp;lt;T&amp;gt;&amp;amp;) [with T = QString]’:&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qstringlist.h:247:   instantiated from here&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qdatastream.h:246: error: ‘class QList&amp;lt;QString&amp;gt;’ has no member named ‘reserve’&lt;br /&gt;
You have multiple Qt versions installed on your machine. Try removing the Qt version installed on the system.&lt;br /&gt;
&lt;br /&gt;
=== libarchive.so: undefined reference to `SHA256_Update' ===&lt;br /&gt;
&lt;br /&gt;
 Linking CXX executable ../../../../../bin/MRMLLogicCxxTests&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Update'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Final'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Init'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `MD5_Init'&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
 cd Slicer-SuperBuild&lt;br /&gt;
 rm -rf LibArchive-*&lt;br /&gt;
 make -j4&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
* http://na-mic.org/Mantis/view.php?id=1616&lt;br /&gt;
* http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;amp;revision=18923&lt;br /&gt;
* http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;amp;revision=18969&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Performing configure step for ...&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
CMake has some problems building complex projects on Windows7. See more details in: http://cmake.org/Bug/view.php?id=12957&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;A fix has been already identified and soon will be available in an official CMake release (probably 2.8.8). Until then this unofficial version can be used (based on CMake-2.8.7): https://qshare.queensu.ca/Users01/lasso/public/cmake-2.8.7.12957-win32-x86.exe&amp;lt;/del&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
This issue has been fixed by commit [http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4fbdce2b 4fbdce2b] included in CMake &amp;gt;= 2.8.8. Download CMake version recommended in the [[Documentation/{{documentation/version}}/Developers/Build_Instructions#Windows|Prequisites]]&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Performing download step (git clone) for ...&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
CMake has problems cloning git repositories on Windows7. See more details in http://cmake.org/Bug/view.php?id=12564&lt;br /&gt;
&lt;br /&gt;
If you think the described problem is the same as you have, please add your specific error message to the bug report (the more people report the problem the sooner it will be fixed).&lt;br /&gt;
&lt;br /&gt;
=== No rule to make target `/usr/lib/x86_64-linux-gnu/libGL.so' ===&lt;br /&gt;
See http://techtidings.blogspot.com/2012/01/problem-with-libglso-on-64-bit-ubuntu.html&lt;br /&gt;
&lt;br /&gt;
=== X11 Window errors at start time ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x4200199&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x42001a6&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x42001b3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution: &lt;br /&gt;
* Reinstall Nvidia drivers (that also rewrite the xorg.conf file).&lt;br /&gt;
&lt;br /&gt;
=== error C2061: syntax error : identifier 'ssize_t' ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
4&amp;gt;1&amp;gt;Compiling...&lt;br /&gt;
4&amp;gt;1&amp;gt;version.c&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(585) : error C2061: syntax error : identifier 'ssize_t'&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(593) : error C2365: 'fread' : redefinition; previous definition was 'function'&lt;br /&gt;
4&amp;gt;1&amp;gt;        C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\stdio.h(248) : see declaration of 'fread'&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(610) : error C2059: syntax error : '}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
* See [[#A_tool_returned_an_error_code_from_.22Performing_configure_step_for_....22]]&lt;br /&gt;
&lt;br /&gt;
=== ld: framework not found QtWebKit ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
Linking CXX shared library libPythonQt.dylib&lt;br /&gt;
ld: framework not found QtWebKit&lt;br /&gt;
clang: error: linker command failed with exit code 1 (use -v to see invocation)&lt;br /&gt;
make[8]: *** [libPythonQt.dylib] Error 1&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See Slicer issue [http://na-mic.org/Mantis/view.php?id=2860 #2860]&lt;br /&gt;
&lt;br /&gt;
Workaround:&lt;br /&gt;
* See http://public.kitware.com/Bug/view.php?id=13765#c31824&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
* Use a [http://www.cmake.org/files/dev/?C=M;O=D recent nightly build of CMake]. It includes patch [http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cc676c3a cc676c3a]. Note also that the coming version of CMake 2.8.11 will work as expected.&lt;br /&gt;
&lt;br /&gt;
=== On MacOSX 10.8, CMake hangs forever ===&lt;br /&gt;
&lt;br /&gt;
Issue: http://www.na-mic.org/Bug/view.php?id=2957&lt;br /&gt;
&lt;br /&gt;
Solution: Use CMake build &amp;gt;= 2.8.10.20130220-g53b279. See http://www.cmake.org/files/dev/cmake-2.8.10.20130220-g53b279-Darwin-universal.tar.gz&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
&lt;br /&gt;
CMake folks (Thanks Brad King :)) fixed an issue that was preventing the most recent nightly from being used to successfully compile Slicer. The fix has been tested and is known to work. Tomorrow nightly build of CMake and by extension the coming release of CMake 2.8.11 will work.&lt;br /&gt;
&lt;br /&gt;
If you are curious about the details, check the commit message:&lt;br /&gt;
&lt;br /&gt;
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1df09e57 [^]&lt;br /&gt;
&lt;br /&gt;
The associated CMake test have also been updated: &lt;br /&gt;
&lt;br /&gt;
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bff3d9ce [^]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== svn: E175002: Unable to connect to a repository at URL XXX ===&lt;br /&gt;
&lt;br /&gt;
Issue: Cisco AnyConnect is installed with the &amp;quot;Web Security&amp;quot; option checked (default), which blocks Subversion checkouts even when inactive!&lt;br /&gt;
&lt;br /&gt;
Solution:  Uninstall and reinstall Cisco AnyConnect, deselecting the &amp;quot;Web Security&amp;quot; feature during install&lt;br /&gt;
&lt;br /&gt;
==Quick Build on Debian==&lt;br /&gt;
 sudo aptitude update&lt;br /&gt;
 sudo aptitude install subversion git gcc g++ make cmake-curses-gui libqt4-dev&lt;br /&gt;
 svn co http://svn.slicer.org/Slicer4/trunk Slicer&lt;br /&gt;
 mkdir Slicer-SuperBuild-Debug&lt;br /&gt;
 cd Slicer-SuperBuild-Debug&lt;br /&gt;
 cmake ../Slicer&lt;br /&gt;
 make -j5&lt;br /&gt;
 &lt;br /&gt;
 # runtime dependency:&lt;br /&gt;
 sudo aptitude install python-tk&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions&amp;diff=36910</id>
		<title>Documentation/Nightly/Developers/Build Instructions</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions&amp;diff=36910"/>
		<updated>2014-01-07T00:58:57Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Common errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{:{{FULLPAGENAME}}/Prerequisites}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/CheckoutSourceCode}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/Configure}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:{{FULLPAGENAME}}/Compile}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RUN Slicer ==&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start a terminal.&lt;br /&gt;
{{pre2|scroll|&lt;br /&gt;
$ Slicer-SuperBuild/Slicer-build/Slicer}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start Windows Explorer. [http://www.wikihow.com/Open-Windows-Explorer Need help?]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Run &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build/Slicer.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* Linux Ubuntu: if you have odd rendering artifacts, try disabling visual effects (System/Appearance/Visual Effects)&lt;br /&gt;
* Windows: If build was OK, but it Slicer doesn't start (gives the error: [bin/Release/SlicerQT-real.exe] exit abnormally - Report the problem.) then one possible root cause is that you have a copy of Python26.dll in your windows system directory (e.g., c:\Windows\System32\python26.dll). The solution is to rename or remove the python dll in the system directory. See more details here: http://www.na-mic.org/Bug/view.php?id=1180&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PACKAGE Slicer ==&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX (Makefile)&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start a terminal.&lt;br /&gt;
{{pre2|scroll|&lt;br /&gt;
$ cd ~/Projects/Slicer-SuperBuild&lt;br /&gt;
$ cd Slicer-build&lt;br /&gt;
&lt;br /&gt;
$ make package}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Start Windows Explorer. [http://www.wikihow.com/Open-Windows-Explorer Need help?]&lt;br /&gt;
&amp;lt;ol start=&amp;quot;1&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open &amp;lt;code&amp;gt;Slicer-SuperBuild\Slicer-build\Slicer.sln&amp;lt;/code&amp;gt; in Visual Studio&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select '''Release''' build configuration.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the Solution Explorer, right click on '''PACKAGE''' project and then select '''Build'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== DEBUG Slicer ==&lt;br /&gt;
&lt;br /&gt;
To be able to debug Slicer application, you are expected to build it with Debug symbols in a clean directory.&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Configure Slicer using &amp;lt;code&amp;gt;-DCMAKE_BUILD_TYPE:STRING=Debug&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Selecting &amp;lt;code&amp;gt;Debug&amp;lt;/code&amp;gt; configuration in Visual Studio.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Linux or MacOSX&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;| Windows (Visual Studio)&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{wip}} TBD&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;ol start=&amp;quot;1&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Press &amp;quot;Win-R,&amp;quot; type &amp;quot;cmd&amp;quot; and press &amp;quot;Enter&amp;quot; to open a Command Prompt session.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Start Visual Studio with Slicer environment:&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;pre&amp;gt;&amp;amp;gt; cd \path\to\Slicer-SuperBuild\Slicer-build&lt;br /&gt;
&amp;amp;gt; Slicer.exe --VisualStudio Slicer.sln&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common errors ==&lt;br /&gt;
&lt;br /&gt;
=== CMake complains during configuration ===&lt;br /&gt;
CMake may not directly show what's wrong; try to look for log files of the form BUILD/CMakeFiles/*.log (where BUILD is your build directory) to glean further information.&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Generating vtksysProcessFwd9xEnc.c&amp;quot; ===&lt;br /&gt;
 The application has failed to start because its side-by-side configuration is incorrect.&lt;br /&gt;
 Please see the application event log or use the command-line sxstrace.exe tool for more detail.&lt;br /&gt;
 Project : error PRJ0019: A tool returned an error code from &amp;quot;Generating&lt;br /&gt;
 vtksysProcessFwd9xEnc.c&amp;quot;&lt;br /&gt;
Install [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites#Windows|SP1 of Visual Studio]]&lt;br /&gt;
&lt;br /&gt;
=== error: ‘class QList&amp;lt;QString&amp;gt;’ has no member named ‘reserve’ ===&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qdatastream.h: In function ‘QDataStream&amp;amp; operator&amp;gt;&amp;gt;(QDataStream&amp;amp;, QList&amp;lt;T&amp;gt;&amp;amp;) [with T = QString]’:&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qstringlist.h:247:   instantiated from here&lt;br /&gt;
 /nfs/Users/blowekamp/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qdatastream.h:246: error: ‘class QList&amp;lt;QString&amp;gt;’ has no member named ‘reserve’&lt;br /&gt;
You have multiple Qt versions installed on your machine. Try removing the Qt version installed on the system.&lt;br /&gt;
&lt;br /&gt;
=== libarchive.so: undefined reference to `SHA256_Update' ===&lt;br /&gt;
&lt;br /&gt;
 Linking CXX executable ../../../../../bin/MRMLLogicCxxTests&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Update'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Final'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `SHA256_Init'&lt;br /&gt;
 /home/benjaminlong/work/slicer/Slicer-SuperBuild-Debug/LibArchive-install/lib/libarchive.so: undefined reference to `MD5_Init'&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
 cd Slicer-SuperBuild&lt;br /&gt;
 rm -rf LibArchive-*&lt;br /&gt;
 make -j4&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
* http://na-mic.org/Mantis/view.php?id=1616&lt;br /&gt;
* http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;amp;revision=18923&lt;br /&gt;
* http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;amp;revision=18969&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Performing configure step for ...&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
CMake has some problems building complex projects on Windows7. See more details in: http://cmake.org/Bug/view.php?id=12957&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;A fix has been already identified and soon will be available in an official CMake release (probably 2.8.8). Until then this unofficial version can be used (based on CMake-2.8.7): https://qshare.queensu.ca/Users01/lasso/public/cmake-2.8.7.12957-win32-x86.exe&amp;lt;/del&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
This issue has been fixed by commit [http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4fbdce2b 4fbdce2b] included in CMake &amp;gt;= 2.8.8. Download CMake version recommended in the [[Documentation/{{documentation/version}}/Developers/Build_Instructions#Windows|Prequisites]]&lt;br /&gt;
&lt;br /&gt;
=== A tool returned an error code from &amp;quot;Performing download step (git clone) for ...&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
CMake has problems cloning git repositories on Windows7. See more details in http://cmake.org/Bug/view.php?id=12564&lt;br /&gt;
&lt;br /&gt;
If you think the described problem is the same as you have, please add your specific error message to the bug report (the more people report the problem the sooner it will be fixed).&lt;br /&gt;
&lt;br /&gt;
=== No rule to make target `/usr/lib/x86_64-linux-gnu/libGL.so' ===&lt;br /&gt;
See http://techtidings.blogspot.com/2012/01/problem-with-libglso-on-64-bit-ubuntu.html&lt;br /&gt;
&lt;br /&gt;
=== X11 Window errors at start time ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x4200199&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x42001a6&lt;br /&gt;
X Error: BadWindow (invalid Window parameter) 3&lt;br /&gt;
  Extension:    137 (Uknown extension)&lt;br /&gt;
  Minor opcode: 4 (Unknown request)&lt;br /&gt;
  Resource id:  0x42001b3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution: &lt;br /&gt;
* Reinstall Nvidia drivers (that also rewrite the xorg.conf file).&lt;br /&gt;
&lt;br /&gt;
=== error C2061: syntax error : identifier 'ssize_t' ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
4&amp;gt;1&amp;gt;Compiling...&lt;br /&gt;
4&amp;gt;1&amp;gt;version.c&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(585) : error C2061: syntax error : identifier 'ssize_t'&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(593) : error C2365: 'fread' : redefinition; previous definition was 'function'&lt;br /&gt;
4&amp;gt;1&amp;gt;        C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\stdio.h(248) : see declaration of 'fread'&lt;br /&gt;
4&amp;gt;1&amp;gt;c:\chene\winbin64\slicer4\cmcurl\urldata.h(610) : error C2059: syntax error : '}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
* See [[#A_tool_returned_an_error_code_from_.22Performing_configure_step_for_....22]]&lt;br /&gt;
&lt;br /&gt;
=== ld: framework not found QtWebKit ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
Linking CXX shared library libPythonQt.dylib&lt;br /&gt;
ld: framework not found QtWebKit&lt;br /&gt;
clang: error: linker command failed with exit code 1 (use -v to see invocation)&lt;br /&gt;
make[8]: *** [libPythonQt.dylib] Error 1&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See Slicer issue [http://na-mic.org/Mantis/view.php?id=2860 #2860]&lt;br /&gt;
&lt;br /&gt;
Workaround:&lt;br /&gt;
* See http://public.kitware.com/Bug/view.php?id=13765#c31824&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
* Use a [http://www.cmake.org/files/dev/?C=M;O=D recent nightly build of CMake]. It includes patch [http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cc676c3a cc676c3a]. Note also that the coming version of CMake 2.8.11 will work as expected.&lt;br /&gt;
&lt;br /&gt;
=== On MacOSX 10.8, CMake hangs forever ===&lt;br /&gt;
&lt;br /&gt;
Issue: http://www.na-mic.org/Bug/view.php?id=2957&lt;br /&gt;
&lt;br /&gt;
Solution: Use CMake build &amp;gt;= 2.8.10.20130220-g53b279. See http://www.cmake.org/files/dev/cmake-2.8.10.20130220-g53b279-Darwin-universal.tar.gz&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
&lt;br /&gt;
CMake folks (Thanks Brad King :)) fixed an issue that was preventing the most recent nightly from being used to successfully compile Slicer. The fix has been tested and is known to work. Tomorrow nightly build of CMake and by extension the coming release of CMake 2.8.11 will work.&lt;br /&gt;
&lt;br /&gt;
If you are curious about the details, check the commit message:&lt;br /&gt;
&lt;br /&gt;
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1df09e57 [^]&lt;br /&gt;
&lt;br /&gt;
The associated CMake test have also been updated: &lt;br /&gt;
&lt;br /&gt;
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bff3d9ce [^]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Error: svn: E175002: Unable to connect to a repository at URL  ===&lt;br /&gt;
&lt;br /&gt;
Issue: Cisco AnyConnect is installed with the &amp;quot;Web Security&amp;quot; option checked (default), which blocks Subversion checkouts even when inactive!&lt;br /&gt;
&lt;br /&gt;
Solution:  Uninstall and reinstall Cisco AnyConnect, deselecting the &amp;quot;Web Security&amp;quot; feature during install&lt;br /&gt;
&lt;br /&gt;
==Quick Build on Debian==&lt;br /&gt;
 sudo aptitude update&lt;br /&gt;
 sudo aptitude install subversion git gcc g++ make cmake-curses-gui libqt4-dev&lt;br /&gt;
 svn co http://svn.slicer.org/Slicer4/trunk Slicer&lt;br /&gt;
 mkdir Slicer-SuperBuild-Debug&lt;br /&gt;
 cd Slicer-SuperBuild-Debug&lt;br /&gt;
 cmake ../Slicer&lt;br /&gt;
 make -j5&lt;br /&gt;
 &lt;br /&gt;
 # runtime dependency:&lt;br /&gt;
 sudo aptitude install python-tk&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/ModulesMetadata&amp;diff=32114</id>
		<title>Documentation/4.1/ModulesMetadata</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/ModulesMetadata&amp;diff=32114"/>
		<updated>2013-06-13T21:42:03Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Updated BRAINSStandAlone to BRAINSTools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
Name, XMLDescriptionURL&lt;br /&gt;
ACPCTransform, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ACPCTransform/ACPCTransform.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
AddScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AddScalarVolumes/AddScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
AffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AffineRegistration/AffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Annotations, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Annotations/Documentation/Annotations.xml?revision=19892&amp;amp;view=co&lt;br /&gt;
BRAINSDemonWarp, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSDemonWarp/BRAINSDemonWarp.xml&lt;br /&gt;
BRAINSFit, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSFit/BRAINSFit.xml&lt;br /&gt;
BRAINSResample, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSResample/BRAINSResample.xml&lt;br /&gt;
BSplineDeformableRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineDeformableRegistration/BSplineDeformableRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
BSplineToDeformationField, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineToDeformationField/BSplineToDeformationField.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Cameras, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/Cameras/Documentation/Cameras.xml?revision=19238&amp;amp;view=co&lt;br /&gt;
CastScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CastScalarVolume/CastScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
CheckerBoardFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CheckerBoardFilter/CheckerBoardFilter.xml?revision=19170&amp;amp;view=co&lt;br /&gt;
CreateDICOMSeries, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CreateDICOMSeries/CreateDICOMSeries.xml?revision=19171&amp;amp;view=co&lt;br /&gt;
CurvatureAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CurvatureAnisotropicDiffusion/CurvatureAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
Data, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Data/Documentation/Data.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
DICOM, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/DICOM.xml?revision=19903&amp;amp;view=co&lt;br /&gt;
DicomToNrrdConverter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/DicomToNrrdConverter.xml?revision=19089&amp;amp;view=co&lt;br /&gt;
DiffusionTensorScalarMeasurements, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionTensorScalarMeasurements/DiffusionTensorScalarMeasurements.xml?revision=19172&amp;amp;view=co&lt;br /&gt;
DiffusionWeightedVolumeMasking, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionWeightedVolumeMasking/DiffusionWeightedVolumeMasking.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
DTIExport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIexport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DTIImport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIimport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DWICompare, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/ExtendedTesting/DWICompare.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
DWIJointRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIJointRicianLMMSEFilter/DWIJointRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIRicianLMMSEFilter/DWIRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIToDTIEstimation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIToDTIEstimation/DWIToDTIEstimation.xml?revision=19201&amp;amp;view=co&lt;br /&gt;
DWIUnbiasedNonLocalMeansFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIUnbiasedNonLocalMeansFilter/DWIUnbiasedNonLocalMeansFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
EMSegment_Command-line, http://viewvc.slicer.org/viewvc.cgi/Slicer3/trunk/Modules/EMSegment/CommandLineApplication/EMSegmentCommandLine.xml?revision=16924&amp;amp;view=co&lt;br /&gt;
Endoscopy, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/Endoscopy.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
EventBroker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/EventBroker/Documentation/EventBroker.xml?revision=19045&amp;amp;view=co&lt;br /&gt;
ExecutionModelTour, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExecutionModelTour/ExecutionModelTour.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ExpertAutomatedRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExpertAutomatedRegistration/ExpertAutomatedRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ExtractSkeleton, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExtractSkeleton/ExtractSkeleton.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
FiducialRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FiducialRegistration/FiducialRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ForegroundMasking, https://raw.github.com/BRAINSia/BRAINSStandAlone/master/BRAINSROIAuto/BRAINSROIAuto.xml&lt;br /&gt;
FreesurferSurfaceSectionExtraction, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FreesurferSurfaceSectionExtraction/FreesurferSurfaceSectionExtraction.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GaussianBlurImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GaussianBlurImageFilter/GaussianBlurImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GradientAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GradientAnisotropicDiffusion/GradientAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GrayscaleFillHoleImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleFillHoleImageFilter/GrayscaleFillHoleImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleGrindPeakImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleGrindPeakImageFilter/GrayscaleGrindPeakImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleModelMaker/GrayscaleModelMaker.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
HistogramMatching, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/HistogramMatching/HistogramMatching.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
ImageLabelCombine, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ImageLabelCombine/ImageLabelCombine.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LabelMapSmoothing, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LabelMapSmoothing/LabelMapSmoothing.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LinearRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LinearRegistration/LinearRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MaskScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MaskScalarVolume/MaskScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MedianImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MedianImageFilter/MedianImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MergeModels, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MergeModels/MergeModels.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MeshContourSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MeshContourSegmentation/MeshContourSegmentation.xml?revision=19175&amp;amp;view=co&lt;br /&gt;
ModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelMaker/ModelMaker.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
Models, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Models/Documentation/Models.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
ModelToLabelMap, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelToLabelMap/ModelToLabelMap.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MRIBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MRIBiasFieldCorrection/MRIBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
MultiplyScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiplyScalarVolumes/MultiplyScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MultiResolutionAffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiResolutionAffineRegistration/MultiResolutionAffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
N4ITKBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/N4ITKBiasFieldCorrection/N4ITKBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
OrientScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OrientScalarVolume/OrientScalarVolume.xml?revision=19193&amp;amp;view=co&lt;br /&gt;
OtsuThresholdImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdImageFilter/OtsuThresholdImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
OtsuThresholdSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdSegmentation/OtsuThresholdSegmentation.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
PETStandardUptakeValueComputation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/PETStandardUptakeValueComputation/PETStandardUptakeValueComputation.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
ProbeVolumeWithModel, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ProbeVolumeWithModel/ProbeVolumeWithModel.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Reformat, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Reformat/Documentation/Reformat.xml?revision=19165&amp;amp;view=co&lt;br /&gt;
ResampleDTIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleDTIVolume/ResampleDTIVolume.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
ResampleScalarVectorDWIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVectorDWIVolume/ResampleScalarVectorDWIVolume.xml?revision=19186&amp;amp;view=co&lt;br /&gt;
ResampleScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVolume/ResampleScalarVolume.xml?revision=19185&amp;amp;view=co&lt;br /&gt;
RigidRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RigidRegistration/RigidRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
RobustStatisticsSegmenter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RobustStatisticsSegmenter/RobustStatisticsSegmenter.xml?revision=19198&amp;amp;view=co&lt;br /&gt;
SceneViews, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/SceneViews/Documentation/SceneViews.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
SimpleRegionGrowingSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SimpleRegionGrowingSegmentation/SimpleRegionGrowingSegmentation.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
SubtractScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SubtractScalarVolumes/SubtractScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ThresholdScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ThresholdScalarVolume/ThresholdScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
TractographyLabelMapSeeding, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/TractographyLabelMapSeeding/TractographyLabelMapSeeding.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Transforms, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Transforms/Documentation/Transforms.xml?revision=19899&amp;amp;view=co&lt;br /&gt;
ViewControllers, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/ViewControllers/Documentation/ViewControllers.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VolumeRendering, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/VolumeRendering/Documentation/VolumeRendering.xml?revision=19029&amp;amp;view=co&lt;br /&gt;
Volumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/Documentation/Volumes.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VotingBinaryHoleFillingImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/VotingBinaryHoleFillingImageFilter/VotingBinaryHoleFillingImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header|data=name=Name,xmldescriptionurl=XMLDescriptionURL}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! XMLDescriptionURL {{#for_external_table:&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{{name}}}&lt;br /&gt;
{{!}} {{{xmldescriptionurl}}} }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header&lt;br /&gt;
|data=GaussianBlurImageFilterXMLDescriptionURL=XMLDescriptionURL&lt;br /&gt;
|filters=Name=GaussianBlurImageFilter&lt;br /&gt;
}}&lt;br /&gt;
* {{#external_value:GaussianBlurImageFilterXMLDescriptionURL}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/ModulesMetadata&amp;diff=32113</id>
		<title>Documentation/4.2/ModulesMetadata</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/ModulesMetadata&amp;diff=32113"/>
		<updated>2013-06-13T21:38:53Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Fixed BRAINSTools link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
Name, XMLDescriptionURL&lt;br /&gt;
ACPCTransform, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ACPCTransform/ACPCTransform.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
AddScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AddScalarVolumes/AddScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
AffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AffineRegistration/AffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Annotations, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Annotations/Documentation/Annotations.xml?revision=19892&amp;amp;view=co&lt;br /&gt;
BRAINSDemonWarp, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSDemonWarp/BRAINSDemonWarp.xml&lt;br /&gt;
BRAINSFit, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSFit/BRAINSFit.xml&lt;br /&gt;
BRAINSResample, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSResample/BRAINSResample.xml&lt;br /&gt;
BSplineDeformableRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineDeformableRegistration/BSplineDeformableRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
BSplineToDeformationField, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineToDeformationField/BSplineToDeformationField.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Cameras, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/Cameras/Documentation/Cameras.xml?revision=19238&amp;amp;view=co&lt;br /&gt;
CastScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CastScalarVolume/CastScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
CheckerBoardFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CheckerBoardFilter/CheckerBoardFilter.xml?revision=19170&amp;amp;view=co&lt;br /&gt;
CreateDICOMSeries, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CreateDICOMSeries/CreateDICOMSeries.xml?revision=19171&amp;amp;view=co&lt;br /&gt;
CurvatureAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CurvatureAnisotropicDiffusion/CurvatureAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
Data, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Data/Documentation/Data.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
DICOM, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/DICOM.xml?revision=19903&amp;amp;view=co&lt;br /&gt;
DicomToNrrdConverter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/DicomToNrrdConverter.xml?revision=19089&amp;amp;view=co&lt;br /&gt;
DiffusionTensorScalarMeasurements, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionTensorScalarMeasurements/DiffusionTensorScalarMeasurements.xml?revision=19172&amp;amp;view=co&lt;br /&gt;
DiffusionWeightedVolumeMasking, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionWeightedVolumeMasking/DiffusionWeightedVolumeMasking.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
DTIExport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIexport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DTIImport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIimport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DWICompare, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/ExtendedTesting/DWICompare.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
DWIJointRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIJointRicianLMMSEFilter/DWIJointRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIRicianLMMSEFilter/DWIRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIToDTIEstimation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIToDTIEstimation/DWIToDTIEstimation.xml?revision=19201&amp;amp;view=co&lt;br /&gt;
DWIUnbiasedNonLocalMeansFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIUnbiasedNonLocalMeansFilter/DWIUnbiasedNonLocalMeansFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
EMSegment_Command-line, http://viewvc.slicer.org/viewvc.cgi/Slicer3/trunk/Modules/EMSegment/CommandLineApplication/EMSegmentCommandLine.xml?revision=16924&amp;amp;view=co&lt;br /&gt;
Endoscopy, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/Endoscopy.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
EventBroker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/EventBroker/Documentation/EventBroker.xml?revision=19045&amp;amp;view=co&lt;br /&gt;
ExecutionModelTour, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExecutionModelTour/ExecutionModelTour.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ExpertAutomatedRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExpertAutomatedRegistration/ExpertAutomatedRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ExtractSkeleton, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExtractSkeleton/ExtractSkeleton.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
FiducialRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FiducialRegistration/FiducialRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ForegroundMasking, https://raw.github.com/BRAINSia/BRAINSStandAlone/master/BRAINSROIAuto/BRAINSROIAuto.xml&lt;br /&gt;
FreesurferSurfaceSectionExtraction, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FreesurferSurfaceSectionExtraction/FreesurferSurfaceSectionExtraction.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GaussianBlurImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GaussianBlurImageFilter/GaussianBlurImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GradientAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GradientAnisotropicDiffusion/GradientAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GrayscaleFillHoleImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleFillHoleImageFilter/GrayscaleFillHoleImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleGrindPeakImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleGrindPeakImageFilter/GrayscaleGrindPeakImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleModelMaker/GrayscaleModelMaker.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
HistogramMatching, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/HistogramMatching/HistogramMatching.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
ImageLabelCombine, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ImageLabelCombine/ImageLabelCombine.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LabelMapSmoothing, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LabelMapSmoothing/LabelMapSmoothing.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LinearRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LinearRegistration/LinearRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MaskScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MaskScalarVolume/MaskScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MedianImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MedianImageFilter/MedianImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MergeModels, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MergeModels/MergeModels.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MeshContourSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MeshContourSegmentation/MeshContourSegmentation.xml?revision=19175&amp;amp;view=co&lt;br /&gt;
ModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelMaker/ModelMaker.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
Models, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Models/Documentation/Models.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
ModelToLabelMap, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelToLabelMap/ModelToLabelMap.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MRIBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MRIBiasFieldCorrection/MRIBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
MultiplyScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiplyScalarVolumes/MultiplyScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MultiResolutionAffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiResolutionAffineRegistration/MultiResolutionAffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
N4ITKBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/N4ITKBiasFieldCorrection/N4ITKBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
OrientScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OrientScalarVolume/OrientScalarVolume.xml?revision=19193&amp;amp;view=co&lt;br /&gt;
OtsuThresholdImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdImageFilter/OtsuThresholdImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
OtsuThresholdSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdSegmentation/OtsuThresholdSegmentation.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
PETStandardUptakeValueComputation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/PETStandardUptakeValueComputation/PETStandardUptakeValueComputation.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
ProbeVolumeWithModel, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ProbeVolumeWithModel/ProbeVolumeWithModel.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Reformat, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Reformat/Documentation/Reformat.xml?revision=19165&amp;amp;view=co&lt;br /&gt;
ResampleDTIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleDTIVolume/ResampleDTIVolume.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
ResampleScalarVectorDWIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVectorDWIVolume/ResampleScalarVectorDWIVolume.xml?revision=19186&amp;amp;view=co&lt;br /&gt;
ResampleScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVolume/ResampleScalarVolume.xml?revision=19185&amp;amp;view=co&lt;br /&gt;
RigidRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RigidRegistration/RigidRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
RobustStatisticsSegmenter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RobustStatisticsSegmenter/RobustStatisticsSegmenter.xml?revision=19198&amp;amp;view=co&lt;br /&gt;
SceneViews, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/SceneViews/Documentation/SceneViews.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
SimpleRegionGrowingSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SimpleRegionGrowingSegmentation/SimpleRegionGrowingSegmentation.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
SubtractScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SubtractScalarVolumes/SubtractScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ThresholdScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ThresholdScalarVolume/ThresholdScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
TractographyLabelMapSeeding, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/TractographyLabelMapSeeding/TractographyLabelMapSeeding.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Transforms, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Transforms/Documentation/Transforms.xml?revision=19899&amp;amp;view=co&lt;br /&gt;
ViewControllers, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/ViewControllers/Documentation/ViewControllers.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VolumeRendering, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/VolumeRendering/Documentation/VolumeRendering.xml?revision=19029&amp;amp;view=co&lt;br /&gt;
Volumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/Documentation/Volumes.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VotingBinaryHoleFillingImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/VotingBinaryHoleFillingImageFilter/VotingBinaryHoleFillingImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header|data=name=Name,xmldescriptionurl=XMLDescriptionURL}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! XMLDescriptionURL {{#for_external_table:&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{{name}}}&lt;br /&gt;
{{!}} {{{xmldescriptionurl}}} }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header&lt;br /&gt;
|data=GaussianBlurImageFilterXMLDescriptionURL=XMLDescriptionURL&lt;br /&gt;
|filters=Name=GaussianBlurImageFilter&lt;br /&gt;
}}&lt;br /&gt;
* {{#external_value:GaussianBlurImageFilterXMLDescriptionURL}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/ModulesMetadata&amp;diff=32112</id>
		<title>Documentation/Nightly/ModulesMetadata</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/ModulesMetadata&amp;diff=32112"/>
		<updated>2013-06-13T21:36:04Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
Name, XMLDescriptionURL&lt;br /&gt;
ACPCTransform, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ACPCTransform/ACPCTransform.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
AddScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AddScalarVolumes/AddScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
AffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AffineRegistration/AffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Annotations, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Annotations/Documentation/Annotations.xml?revision=19892&amp;amp;view=co&lt;br /&gt;
BRAINSDemonWarp, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSDemonWarp/BRAINSDemonWarp.xml&lt;br /&gt;
BRAINSFit, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSFit/BRAINSFit.xml&lt;br /&gt;
BRAINSResample, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSResample/BRAINSResample.xml&lt;br /&gt;
BSplineDeformableRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineDeformableRegistration/BSplineDeformableRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
BSplineToDeformationField, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineToDeformationField/BSplineToDeformationField.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Cameras, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/Cameras/Documentation/Cameras.xml?revision=19238&amp;amp;view=co&lt;br /&gt;
CastScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CastScalarVolume/CastScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
CheckerBoardFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CheckerBoardFilter/CheckerBoardFilter.xml?revision=19170&amp;amp;view=co&lt;br /&gt;
CreateDICOMSeries, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CreateDICOMSeries/CreateDICOMSeries.xml?revision=19171&amp;amp;view=co&lt;br /&gt;
CurvatureAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CurvatureAnisotropicDiffusion/CurvatureAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
Data, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Data/Documentation/Data.xml?revision=21646&amp;amp;view=co&lt;br /&gt;
DICOM, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/DICOM.xml?revision=19903&amp;amp;view=co&lt;br /&gt;
DicomToNrrdConverter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/DicomToNrrdConverter.xml?revision=19089&amp;amp;view=co&lt;br /&gt;
DiffusionTensorScalarMeasurements, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionTensorScalarMeasurements/DiffusionTensorScalarMeasurements.xml?revision=19172&amp;amp;view=co&lt;br /&gt;
DiffusionWeightedVolumeMasking, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionWeightedVolumeMasking/DiffusionWeightedVolumeMasking.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
DTIExport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIexport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DTIImport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIimport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DWICompare, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/ExtendedTesting/DWICompare.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
DWIJointRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIJointRicianLMMSEFilter/DWIJointRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIRicianLMMSEFilter/DWIRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIToDTIEstimation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIToDTIEstimation/DWIToDTIEstimation.xml?revision=19201&amp;amp;view=co&lt;br /&gt;
DWIUnbiasedNonLocalMeansFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIUnbiasedNonLocalMeansFilter/DWIUnbiasedNonLocalMeansFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
EMSegment_Command-line, http://viewvc.slicer.org/viewvc.cgi/Slicer3/trunk/Modules/EMSegment/CommandLineApplication/EMSegmentCommandLine.xml?revision=16924&amp;amp;view=co&lt;br /&gt;
Endoscopy, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/Endoscopy.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
EventBroker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/EventBroker/Documentation/EventBroker.xml?revision=19045&amp;amp;view=co&lt;br /&gt;
ExecutionModelTour, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExecutionModelTour/ExecutionModelTour.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ExpertAutomatedRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExpertAutomatedRegistration/ExpertAutomatedRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ExtractSkeleton, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExtractSkeleton/ExtractSkeleton.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
FiducialRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FiducialRegistration/FiducialRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ForegroundMasking, https://raw.github.com/BRAINSia/BRAINSTools/master/BRAINSROIAuto/BRAINSROIAuto.xml&lt;br /&gt;
FreesurferSurfaceSectionExtraction, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FreesurferSurfaceSectionExtraction/FreesurferSurfaceSectionExtraction.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GaussianBlurImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GaussianBlurImageFilter/GaussianBlurImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GradientAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GradientAnisotropicDiffusion/GradientAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GrayscaleFillHoleImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleFillHoleImageFilter/GrayscaleFillHoleImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleGrindPeakImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleGrindPeakImageFilter/GrayscaleGrindPeakImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleModelMaker/GrayscaleModelMaker.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
HistogramMatching, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/HistogramMatching/HistogramMatching.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
ImageLabelCombine, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ImageLabelCombine/ImageLabelCombine.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LabelMapSmoothing, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LabelMapSmoothing/LabelMapSmoothing.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LinearRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LinearRegistration/LinearRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MaskScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MaskScalarVolume/MaskScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MedianImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MedianImageFilter/MedianImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MergeModels, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MergeModels/MergeModels.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MeshContourSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MeshContourSegmentation/MeshContourSegmentation.xml?revision=19175&amp;amp;view=co&lt;br /&gt;
ModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelMaker/ModelMaker.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
Models, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Models/Documentation/Models.xml?revision=21908&amp;amp;view=co&lt;br /&gt;
ModelToLabelMap, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelToLabelMap/ModelToLabelMap.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MRIBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MRIBiasFieldCorrection/MRIBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
MultiplyScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiplyScalarVolumes/MultiplyScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MultiResolutionAffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiResolutionAffineRegistration/MultiResolutionAffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
N4ITKBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/N4ITKBiasFieldCorrection/N4ITKBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
OrientScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OrientScalarVolume/OrientScalarVolume.xml?revision=19193&amp;amp;view=co&lt;br /&gt;
OtsuThresholdImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdImageFilter/OtsuThresholdImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
OtsuThresholdSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdSegmentation/OtsuThresholdSegmentation.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
PETStandardUptakeValueComputation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/PETStandardUptakeValueComputation/PETStandardUptakeValueComputation.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
ProbeVolumeWithModel, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ProbeVolumeWithModel/ProbeVolumeWithModel.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Reformat, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Reformat/Documentation/Reformat.xml?revision=19165&amp;amp;view=co&lt;br /&gt;
ResampleDTIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleDTIVolume/ResampleDTIVolume.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
ResampleScalarVectorDWIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVectorDWIVolume/ResampleScalarVectorDWIVolume.xml?revision=19186&amp;amp;view=co&lt;br /&gt;
ResampleScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVolume/ResampleScalarVolume.xml?revision=19185&amp;amp;view=co&lt;br /&gt;
RigidRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RigidRegistration/RigidRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
RobustStatisticsSegmenter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RobustStatisticsSegmenter/RobustStatisticsSegmenter.xml?revision=19198&amp;amp;view=co&lt;br /&gt;
SceneViews, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/SceneViews/Documentation/SceneViews.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
SimpleRegionGrowingSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SimpleRegionGrowingSegmentation/SimpleRegionGrowingSegmentation.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
SubtractScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SubtractScalarVolumes/SubtractScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ThresholdScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ThresholdScalarVolume/ThresholdScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
TractographyLabelMapSeeding, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/TractographyLabelMapSeeding/TractographyLabelMapSeeding.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Transforms, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Transforms/Documentation/Transforms.xml?revision=19899&amp;amp;view=co&lt;br /&gt;
ViewControllers, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/ViewControllers/Documentation/ViewControllers.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VolumeRendering, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/VolumeRendering/Documentation/VolumeRendering.xml?revision=19029&amp;amp;view=co&lt;br /&gt;
Volumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/Documentation/Volumes.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VotingBinaryHoleFillingImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/VotingBinaryHoleFillingImageFilter/VotingBinaryHoleFillingImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header|data=name=Name,xmldescriptionurl=XMLDescriptionURL}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! XMLDescriptionURL {{#for_external_table:&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{{name}}}&lt;br /&gt;
{{!}} {{{xmldescriptionurl}}} }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header&lt;br /&gt;
|data=GaussianBlurImageFilterXMLDescriptionURL=XMLDescriptionURL&lt;br /&gt;
|filters=Name=GaussianBlurImageFilter&lt;br /&gt;
}}&lt;br /&gt;
* {{#external_value:GaussianBlurImageFilterXMLDescriptionURL}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/ModulesMetadata&amp;diff=32111</id>
		<title>Documentation/Nightly/ModulesMetadata</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/ModulesMetadata&amp;diff=32111"/>
		<updated>2013-06-13T21:09:08Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Pointing github pages to view (raw is unaccessible w/o authentication)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
Name, XMLDescriptionURL&lt;br /&gt;
ACPCTransform, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ACPCTransform/ACPCTransform.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
AddScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AddScalarVolumes/AddScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
AffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AffineRegistration/AffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Annotations, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Annotations/Documentation/Annotations.xml?revision=19892&amp;amp;view=co&lt;br /&gt;
BRAINSDemonWarp, https://github.com/BRAINSia/BRAINSTools/master/BRAINSDemonWarp/BRAINSDemonWarp.xml&lt;br /&gt;
BRAINSFit, https://github.com/BRAINSia/BRAINSTools/blob/master/BRAINSFit/BRAINSFit.xml&lt;br /&gt;
BRAINSResample, https://github.com/BRAINSia/BRAINSTools/master/BRAINSResample/BRAINSResample.xml&lt;br /&gt;
BSplineDeformableRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineDeformableRegistration/BSplineDeformableRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
BSplineToDeformationField, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineToDeformationField/BSplineToDeformationField.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Cameras, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/Cameras/Documentation/Cameras.xml?revision=19238&amp;amp;view=co&lt;br /&gt;
CastScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CastScalarVolume/CastScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
CheckerBoardFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CheckerBoardFilter/CheckerBoardFilter.xml?revision=19170&amp;amp;view=co&lt;br /&gt;
CreateDICOMSeries, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CreateDICOMSeries/CreateDICOMSeries.xml?revision=19171&amp;amp;view=co&lt;br /&gt;
CurvatureAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CurvatureAnisotropicDiffusion/CurvatureAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
Data, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Data/Documentation/Data.xml?revision=21646&amp;amp;view=co&lt;br /&gt;
DICOM, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/DICOM.xml?revision=19903&amp;amp;view=co&lt;br /&gt;
DicomToNrrdConverter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/DicomToNrrdConverter.xml?revision=19089&amp;amp;view=co&lt;br /&gt;
DiffusionTensorScalarMeasurements, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionTensorScalarMeasurements/DiffusionTensorScalarMeasurements.xml?revision=19172&amp;amp;view=co&lt;br /&gt;
DiffusionWeightedVolumeMasking, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionWeightedVolumeMasking/DiffusionWeightedVolumeMasking.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
DTIExport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIexport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DTIImport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIimport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DWICompare, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/ExtendedTesting/DWICompare.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
DWIJointRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIJointRicianLMMSEFilter/DWIJointRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIRicianLMMSEFilter/DWIRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIToDTIEstimation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIToDTIEstimation/DWIToDTIEstimation.xml?revision=19201&amp;amp;view=co&lt;br /&gt;
DWIUnbiasedNonLocalMeansFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIUnbiasedNonLocalMeansFilter/DWIUnbiasedNonLocalMeansFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
EMSegment_Command-line, http://viewvc.slicer.org/viewvc.cgi/Slicer3/trunk/Modules/EMSegment/CommandLineApplication/EMSegmentCommandLine.xml?revision=16924&amp;amp;view=co&lt;br /&gt;
Endoscopy, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/Endoscopy.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
EventBroker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/EventBroker/Documentation/EventBroker.xml?revision=19045&amp;amp;view=co&lt;br /&gt;
ExecutionModelTour, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExecutionModelTour/ExecutionModelTour.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ExpertAutomatedRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExpertAutomatedRegistration/ExpertAutomatedRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ExtractSkeleton, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExtractSkeleton/ExtractSkeleton.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
FiducialRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FiducialRegistration/FiducialRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ForegroundMasking, https://raw.github.com/BRAINSia/BRAINSTools/master/BRAINSROIAuto/BRAINSROIAuto.xml&lt;br /&gt;
FreesurferSurfaceSectionExtraction, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FreesurferSurfaceSectionExtraction/FreesurferSurfaceSectionExtraction.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GaussianBlurImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GaussianBlurImageFilter/GaussianBlurImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GradientAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GradientAnisotropicDiffusion/GradientAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GrayscaleFillHoleImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleFillHoleImageFilter/GrayscaleFillHoleImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleGrindPeakImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleGrindPeakImageFilter/GrayscaleGrindPeakImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleModelMaker/GrayscaleModelMaker.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
HistogramMatching, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/HistogramMatching/HistogramMatching.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
ImageLabelCombine, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ImageLabelCombine/ImageLabelCombine.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LabelMapSmoothing, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LabelMapSmoothing/LabelMapSmoothing.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LinearRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LinearRegistration/LinearRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MaskScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MaskScalarVolume/MaskScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MedianImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MedianImageFilter/MedianImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MergeModels, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MergeModels/MergeModels.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MeshContourSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MeshContourSegmentation/MeshContourSegmentation.xml?revision=19175&amp;amp;view=co&lt;br /&gt;
ModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelMaker/ModelMaker.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
Models, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Models/Documentation/Models.xml?revision=21908&amp;amp;view=co&lt;br /&gt;
ModelToLabelMap, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelToLabelMap/ModelToLabelMap.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MRIBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MRIBiasFieldCorrection/MRIBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
MultiplyScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiplyScalarVolumes/MultiplyScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MultiResolutionAffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiResolutionAffineRegistration/MultiResolutionAffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
N4ITKBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/N4ITKBiasFieldCorrection/N4ITKBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
OrientScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OrientScalarVolume/OrientScalarVolume.xml?revision=19193&amp;amp;view=co&lt;br /&gt;
OtsuThresholdImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdImageFilter/OtsuThresholdImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
OtsuThresholdSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdSegmentation/OtsuThresholdSegmentation.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
PETStandardUptakeValueComputation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/PETStandardUptakeValueComputation/PETStandardUptakeValueComputation.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
ProbeVolumeWithModel, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ProbeVolumeWithModel/ProbeVolumeWithModel.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Reformat, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Reformat/Documentation/Reformat.xml?revision=19165&amp;amp;view=co&lt;br /&gt;
ResampleDTIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleDTIVolume/ResampleDTIVolume.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
ResampleScalarVectorDWIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVectorDWIVolume/ResampleScalarVectorDWIVolume.xml?revision=19186&amp;amp;view=co&lt;br /&gt;
ResampleScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVolume/ResampleScalarVolume.xml?revision=19185&amp;amp;view=co&lt;br /&gt;
RigidRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RigidRegistration/RigidRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
RobustStatisticsSegmenter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RobustStatisticsSegmenter/RobustStatisticsSegmenter.xml?revision=19198&amp;amp;view=co&lt;br /&gt;
SceneViews, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/SceneViews/Documentation/SceneViews.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
SimpleRegionGrowingSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SimpleRegionGrowingSegmentation/SimpleRegionGrowingSegmentation.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
SubtractScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SubtractScalarVolumes/SubtractScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ThresholdScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ThresholdScalarVolume/ThresholdScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
TractographyLabelMapSeeding, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/TractographyLabelMapSeeding/TractographyLabelMapSeeding.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Transforms, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Transforms/Documentation/Transforms.xml?revision=19899&amp;amp;view=co&lt;br /&gt;
ViewControllers, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/ViewControllers/Documentation/ViewControllers.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VolumeRendering, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/VolumeRendering/Documentation/VolumeRendering.xml?revision=19029&amp;amp;view=co&lt;br /&gt;
Volumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/Documentation/Volumes.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VotingBinaryHoleFillingImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/VotingBinaryHoleFillingImageFilter/VotingBinaryHoleFillingImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header|data=name=Name,xmldescriptionurl=XMLDescriptionURL}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! XMLDescriptionURL {{#for_external_table:&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{{name}}}&lt;br /&gt;
{{!}} {{{xmldescriptionurl}}} }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header&lt;br /&gt;
|data=GaussianBlurImageFilterXMLDescriptionURL=XMLDescriptionURL&lt;br /&gt;
|filters=Name=GaussianBlurImageFilter&lt;br /&gt;
}}&lt;br /&gt;
* {{#external_value:GaussianBlurImageFilterXMLDescriptionURL}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/ModulesMetadata&amp;diff=32108</id>
		<title>Documentation/Nightly/ModulesMetadata</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/ModulesMetadata&amp;diff=32108"/>
		<updated>2013-06-13T18:59:59Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Updated BRAINSStandAlone to BRAINSTools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
Name, XMLDescriptionURL&lt;br /&gt;
ACPCTransform, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ACPCTransform/ACPCTransform.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
AddScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AddScalarVolumes/AddScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
AffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/AffineRegistration/AffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Annotations, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Annotations/Documentation/Annotations.xml?revision=19892&amp;amp;view=co&lt;br /&gt;
BRAINSDemonWarp, https://raw.github.com/BRAINSia/BRAINSTools/master/BRAINSDemonWarp/BRAINSDemonWarp.xml&lt;br /&gt;
BRAINSFit, https://raw.github.com/BRAINSia/BRAINSTools/master/BRAINSFit/BRAINSFit.xml&lt;br /&gt;
BRAINSResample, https://raw.github.com/BRAINSia/BRAINSTools/master/BRAINSResample/BRAINSResample.xml&lt;br /&gt;
BSplineDeformableRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineDeformableRegistration/BSplineDeformableRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
BSplineToDeformationField, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/BSplineToDeformationField/BSplineToDeformationField.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Cameras, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/Cameras/Documentation/Cameras.xml?revision=19238&amp;amp;view=co&lt;br /&gt;
CastScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CastScalarVolume/CastScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
CheckerBoardFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CheckerBoardFilter/CheckerBoardFilter.xml?revision=19170&amp;amp;view=co&lt;br /&gt;
CreateDICOMSeries, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CreateDICOMSeries/CreateDICOMSeries.xml?revision=19171&amp;amp;view=co&lt;br /&gt;
CurvatureAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/CurvatureAnisotropicDiffusion/CurvatureAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
Data, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Data/Documentation/Data.xml?revision=21646&amp;amp;view=co&lt;br /&gt;
DICOM, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/DICOM.xml?revision=19903&amp;amp;view=co&lt;br /&gt;
DicomToNrrdConverter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/DicomToNrrdConverter.xml?revision=19089&amp;amp;view=co&lt;br /&gt;
DiffusionTensorScalarMeasurements, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionTensorScalarMeasurements/DiffusionTensorScalarMeasurements.xml?revision=19172&amp;amp;view=co&lt;br /&gt;
DiffusionWeightedVolumeMasking, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DiffusionWeightedVolumeMasking/DiffusionWeightedVolumeMasking.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
DTIExport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIexport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DTIImport, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DTIImportExport/DTIimport.xml?revision=19928&amp;amp;view=co&lt;br /&gt;
DWICompare, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DicomToNrrdConverter/ExtendedTesting/DWICompare.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
DWIJointRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIJointRicianLMMSEFilter/DWIJointRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIRicianLMMSEFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIRicianLMMSEFilter/DWIRicianLMMSEFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
DWIToDTIEstimation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIToDTIEstimation/DWIToDTIEstimation.xml?revision=19201&amp;amp;view=co&lt;br /&gt;
DWIUnbiasedNonLocalMeansFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/DWIUnbiasedNonLocalMeansFilter/DWIUnbiasedNonLocalMeansFilter.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
EMSegment_Command-line, http://viewvc.slicer.org/viewvc.cgi/Slicer3/trunk/Modules/EMSegment/CommandLineApplication/EMSegmentCommandLine.xml?revision=16924&amp;amp;view=co&lt;br /&gt;
Endoscopy, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/Scripts/Endoscopy.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
EventBroker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Core/EventBroker/Documentation/EventBroker.xml?revision=19045&amp;amp;view=co&lt;br /&gt;
ExecutionModelTour, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExecutionModelTour/ExecutionModelTour.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ExpertAutomatedRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExpertAutomatedRegistration/ExpertAutomatedRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ExtractSkeleton, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ExtractSkeleton/ExtractSkeleton.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
FiducialRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FiducialRegistration/FiducialRegistration.xml?revision=19173&amp;amp;view=co&lt;br /&gt;
ForegroundMasking, https://raw.github.com/BRAINSia/BRAINSTools/master/BRAINSROIAuto/BRAINSROIAuto.xml&lt;br /&gt;
FreesurferSurfaceSectionExtraction, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/FreesurferSurfaceSectionExtraction/FreesurferSurfaceSectionExtraction.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GaussianBlurImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GaussianBlurImageFilter/GaussianBlurImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GradientAnisotropicDiffusion, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GradientAnisotropicDiffusion/GradientAnisotropicDiffusion.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
GrayscaleFillHoleImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleFillHoleImageFilter/GrayscaleFillHoleImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleGrindPeakImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleGrindPeakImageFilter/GrayscaleGrindPeakImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
GrayscaleModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/GrayscaleModelMaker/GrayscaleModelMaker.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
HistogramMatching, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/HistogramMatching/HistogramMatching.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
ImageLabelCombine, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ImageLabelCombine/ImageLabelCombine.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LabelMapSmoothing, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LabelMapSmoothing/LabelMapSmoothing.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
LinearRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/LinearRegistration/LinearRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MaskScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MaskScalarVolume/MaskScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MedianImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MedianImageFilter/MedianImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MergeModels, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MergeModels/MergeModels.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MeshContourSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MeshContourSegmentation/MeshContourSegmentation.xml?revision=19175&amp;amp;view=co&lt;br /&gt;
ModelMaker, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelMaker/ModelMaker.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
Models, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Models/Documentation/Models.xml?revision=21908&amp;amp;view=co&lt;br /&gt;
ModelToLabelMap, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ModelToLabelMap/ModelToLabelMap.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
MRIBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MRIBiasFieldCorrection/MRIBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
MultiplyScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiplyScalarVolumes/MultiplyScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
MultiResolutionAffineRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/MultiResolutionAffineRegistration/MultiResolutionAffineRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
N4ITKBiasFieldCorrection, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/N4ITKBiasFieldCorrection/N4ITKBiasFieldCorrection.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
OrientScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OrientScalarVolume/OrientScalarVolume.xml?revision=19193&amp;amp;view=co&lt;br /&gt;
OtsuThresholdImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdImageFilter/OtsuThresholdImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
OtsuThresholdSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/OtsuThresholdSegmentation/OtsuThresholdSegmentation.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
PETStandardUptakeValueComputation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/PETStandardUptakeValueComputation/PETStandardUptakeValueComputation.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
ProbeVolumeWithModel, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ProbeVolumeWithModel/ProbeVolumeWithModel.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Reformat, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Reformat/Documentation/Reformat.xml?revision=19165&amp;amp;view=co&lt;br /&gt;
ResampleDTIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleDTIVolume/ResampleDTIVolume.xml?revision=19197&amp;amp;view=co&lt;br /&gt;
ResampleScalarVectorDWIVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVectorDWIVolume/ResampleScalarVectorDWIVolume.xml?revision=19186&amp;amp;view=co&lt;br /&gt;
ResampleScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ResampleScalarVolume/ResampleScalarVolume.xml?revision=19185&amp;amp;view=co&lt;br /&gt;
RigidRegistration, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RigidRegistration/RigidRegistration.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
RobustStatisticsSegmenter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/RobustStatisticsSegmenter/RobustStatisticsSegmenter.xml?revision=19198&amp;amp;view=co&lt;br /&gt;
SceneViews, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/SceneViews/Documentation/SceneViews.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
SimpleRegionGrowingSegmentation, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SimpleRegionGrowingSegmentation/SimpleRegionGrowingSegmentation.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
SubtractScalarVolumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/SubtractScalarVolumes/SubtractScalarVolumes.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
ThresholdScalarVolume, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ThresholdScalarVolume/ThresholdScalarVolume.xml?revision=19608&amp;amp;view=co&lt;br /&gt;
TractographyLabelMapSeeding, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/TractographyLabelMapSeeding/TractographyLabelMapSeeding.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
Transforms, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Transforms/Documentation/Transforms.xml?revision=19899&amp;amp;view=co&lt;br /&gt;
ViewControllers, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/ViewControllers/Documentation/ViewControllers.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VolumeRendering, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/VolumeRendering/Documentation/VolumeRendering.xml?revision=19029&amp;amp;view=co&lt;br /&gt;
Volumes, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Volumes/Documentation/Volumes.xml?revision=18864&amp;amp;view=co&lt;br /&gt;
VotingBinaryHoleFillingImageFilter, http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/VotingBinaryHoleFillingImageFilter/VotingBinaryHoleFillingImageFilter.xml?revision=19194&amp;amp;view=co&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header|data=name=Name,xmldescriptionurl=XMLDescriptionURL}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! XMLDescriptionURL {{#for_external_table:&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{{name}}}&lt;br /&gt;
{{!}} {{{xmldescriptionurl}}} }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{#get_web_data:&lt;br /&gt;
url={{fullurl:Special:GetData/Documentation/{{documentation/version}}/ModulesMetadata}}&lt;br /&gt;
|format=CSV with header&lt;br /&gt;
|data=GaussianBlurImageFilterXMLDescriptionURL=XMLDescriptionURL&lt;br /&gt;
|filters=Name=GaussianBlurImageFilter&lt;br /&gt;
}}&lt;br /&gt;
* {{#external_value:GaussianBlurImageFilterXMLDescriptionURL}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Developer_Meetings/20130514&amp;diff=31667</id>
		<title>Developer Meetings/20130514</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Developer_Meetings/20130514&amp;diff=31667"/>
		<updated>2013-05-14T18:06:25Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* To discuss */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== To discuss ==&lt;br /&gt;
* Enable SimpleITK!?!&lt;br /&gt;
** mac, linux seem fine, but windows debug build gives link error looking for python27_d.lib&lt;br /&gt;
*** CMake PythonLibs?&lt;br /&gt;
* Can we get a green dashboard?&lt;br /&gt;
** Five failing tests on ubuntu [http://slicer.cdash.org/viewTest.php?onlyfailed&amp;amp;buildid=96806], ten if debug leaks is turned on [http://slicer.cdash.org/viewTest.php?onlyfailed&amp;amp;buildid=96798]&lt;br /&gt;
** Fifteen on mac [http://slicer.cdash.org/testDetails.php?test=3858925&amp;amp;build=96804], eighteen if debug leaks is turned on [http://slicer.cdash.org/viewTest.php?onlyfailed&amp;amp;buildid=96799]&lt;br /&gt;
* Events&lt;br /&gt;
** [http://www.commontk.org/index.php/CTK-Hackfest-May-2013 CTK Hackfest next week]&lt;br /&gt;
** [http://www.na-mic.org/Wiki/index.php/2013_Summer_Project_Week NA-MIC Project week next month]&lt;br /&gt;
* Discussed build issue reported by Laurent: http://slicer-devel.65872.n3.nabble.com/Slicer4-not-building-tt4028220.html#a4028640&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Modules&amp;diff=30530</id>
		<title>Documentation/Nightly/Developers/Modules</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Modules&amp;diff=30530"/>
		<updated>2013-02-18T19:03:04Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Command Line Interface (CLI) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Slicer supports three types of modules. While the developer has to choose between one of the three types to implement its module, the end user won't notice the difference as they all share the same look &amp;amp; feel. The choice for a given type of module is usually based on the type of inputs/parameters for a given module.&lt;br /&gt;
&lt;br /&gt;
= Command Line Interface (CLI) =&lt;br /&gt;
CLIs are standalone executables with a limited input/output arguments complexity (simple argument types, no user interactions...). They are typically implemented using [http://www.itk.org ITK].&lt;br /&gt;
* Shared lib or executable&lt;br /&gt;
* UI automatically generated&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
** [[Slicer3:Execution_Model_Documentation|Slicer3 execution model]] (Slicer4 is very similar)&lt;br /&gt;
** [http://www.na-mic.org/Wiki/index.php/File:Slicer4_CLI.ppt CLI in Slicer4] (presentation of 2012 NAMIC AHM)&lt;br /&gt;
&lt;br /&gt;
= Loadable Modules =&lt;br /&gt;
Loadable modules are [http://en.wikipedia.org/wiki/C%2B%2B C++] plugins that are built against Slicer. They define custom GUIs for their specific behavior as they have full control over the application.&lt;br /&gt;
* C++ shared library&lt;br /&gt;
* Full control over the UI (based on [http://qt.nokia.com/products/ Qt]) and Slicer internals (MRML, logics, display managers...)&lt;br /&gt;
* Optimized for heavy computations&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
**[http://www.na-mic.org/Wiki/index.php/File:LoadableModules.pptx Loadable modules] (presentation of 2012 NAMIC AHM)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Developers/Tutorials/CreateLoadableModule|How to write a loadable module]]&lt;br /&gt;
&lt;br /&gt;
= Scripted Modules =&lt;br /&gt;
Scripted modules are written in [http://www.python.org/ Python] and typically but not necessarily use the high level API of Slicer and toolkits.   &lt;br /&gt;
* Python Console&lt;br /&gt;
* Full access to the API: [http://www.vtk.org VTK], [http://www.itk.org ITK], MRML, [http://qt.nokia.com/products/ Qt] and Slicer are fully wrapped&lt;br /&gt;
* Recommended for fast prototyping&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
** [http://www.slicer.org/slicerWiki/index.php/Documentation/{{documentation/version}}/Developers/Python_scripting Python Scripting]&lt;br /&gt;
** [[Documentation/{{documentation/version}}/Training#Slicer4_Programming_Tutorial|Python Scripting Tutorial]]&lt;br /&gt;
&lt;br /&gt;
=Module Factory=&lt;br /&gt;
Loading modules into slicer happens in multiple steps:&lt;br /&gt;
*module factories must be registered into the factory manager&lt;br /&gt;
* directories where the modules to load are located must be passed to the factory manager&lt;br /&gt;
* Optionally specify module names to ignore&lt;br /&gt;
* scan the directories and test which file is a module and register it (not instantiated yet) &lt;br /&gt;
* Instantiate all the register modules&lt;br /&gt;
* Connect each module with the scene and the application&lt;br /&gt;
More details can be found in the [http://slicer.org/doc/html/classqSlicerAbstractModuleFactoryManager.html online doc]&lt;br /&gt;
&lt;br /&gt;
==ToDo==&lt;br /&gt;
* Transform all core modules into Loadable modules.&lt;br /&gt;
** the factory manager only support file based modules, core modules are not file based (linked into the core factory itself)&lt;br /&gt;
* Move factory registration in qSlicerApplication (or a general application library) to support module discovery/loading without needing to instantiate Slicer.&lt;br /&gt;
** Currently can't be moved into qSlicerApplication as the CLI factories that are in QTCLI depend on QTGUI&lt;br /&gt;
** QtTesting is also limited with the QTCLI dependency on QtGUI (-&amp;gt;qSlicerApplication would need to access QtTesting code from QtCli)&lt;br /&gt;
** Proposed architecture&lt;br /&gt;
 Base&lt;br /&gt;
   Application -&amp;gt; classes that are useful to build an application (mix of qSlicerCoreApplication, qSlicerApplication, Main.cxx...)&lt;br /&gt;
   Core -&amp;gt; formally QtCore&lt;br /&gt;
   Modules -&amp;gt; contains the factories and module specific code&lt;br /&gt;
      Loadable&lt;br /&gt;
      CLI&lt;br /&gt;
      Scripted&lt;br /&gt;
   Scripted -&amp;gt; all that is python specific&lt;br /&gt;
      Cxx&lt;br /&gt;
      Python&lt;br /&gt;
   Widgets -&amp;gt; formally QtGUI&lt;br /&gt;
* Add category hierarchy in the Settings module panel&lt;br /&gt;
* Register factory settings/command-options(e.g. disable-loadable-modules) when registering module factories&lt;br /&gt;
** To have the settings panel be generic but have the code proper of each registered factory somewhere else&lt;br /&gt;
* Add mechanism for modules to register dialogs (toolbars that open dialogs),  e.g. the sceneview module needs to register the sceneView dialog into an icon.&lt;br /&gt;
* Ignore modules from the launcher command line.&lt;br /&gt;
* cloning&amp;quot; of module panels at run time. See [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008965.html &amp;quot;here] and [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008039.html here]&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Modules&amp;diff=30529</id>
		<title>Documentation/Nightly/Developers/Modules</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Modules&amp;diff=30529"/>
		<updated>2013-02-18T19:02:49Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Scripted Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Slicer supports three types of modules. While the developer has to choose between one of the three types to implement its module, the end user won't notice the difference as they all share the same look &amp;amp; feel. The choice for a given type of module is usually based on the type of inputs/parameters for a given module.&lt;br /&gt;
&lt;br /&gt;
= Command Line Interface (CLI) =&lt;br /&gt;
CLIs are standalone executables with a limited input/output arguments complexity (simple argument types, no user interactions...). They are typically implemented using [http://www.itk.org ITK].&lt;br /&gt;
* Shared lib or executable&lt;br /&gt;
* UI automatically generated&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from existing [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
** [[Slicer3:Execution_Model_Documentation|Slicer3 execution model]] (Slicer4 is very similar)&lt;br /&gt;
** [http://www.na-mic.org/Wiki/index.php/File:Slicer4_CLI.ppt CLI in Slicer4] (presentation of 2012 NAMIC AHM)&lt;br /&gt;
&lt;br /&gt;
= Loadable Modules =&lt;br /&gt;
Loadable modules are [http://en.wikipedia.org/wiki/C%2B%2B C++] plugins that are built against Slicer. They define custom GUIs for their specific behavior as they have full control over the application.&lt;br /&gt;
* C++ shared library&lt;br /&gt;
* Full control over the UI (based on [http://qt.nokia.com/products/ Qt]) and Slicer internals (MRML, logics, display managers...)&lt;br /&gt;
* Optimized for heavy computations&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
**[http://www.na-mic.org/Wiki/index.php/File:LoadableModules.pptx Loadable modules] (presentation of 2012 NAMIC AHM)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Developers/Tutorials/CreateLoadableModule|How to write a loadable module]]&lt;br /&gt;
&lt;br /&gt;
= Scripted Modules =&lt;br /&gt;
Scripted modules are written in [http://www.python.org/ Python] and typically but not necessarily use the high level API of Slicer and toolkits.   &lt;br /&gt;
* Python Console&lt;br /&gt;
* Full access to the API: [http://www.vtk.org VTK], [http://www.itk.org ITK], MRML, [http://qt.nokia.com/products/ Qt] and Slicer are fully wrapped&lt;br /&gt;
* Recommended for fast prototyping&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
** [http://www.slicer.org/slicerWiki/index.php/Documentation/{{documentation/version}}/Developers/Python_scripting Python Scripting]&lt;br /&gt;
** [[Documentation/{{documentation/version}}/Training#Slicer4_Programming_Tutorial|Python Scripting Tutorial]]&lt;br /&gt;
&lt;br /&gt;
=Module Factory=&lt;br /&gt;
Loading modules into slicer happens in multiple steps:&lt;br /&gt;
*module factories must be registered into the factory manager&lt;br /&gt;
* directories where the modules to load are located must be passed to the factory manager&lt;br /&gt;
* Optionally specify module names to ignore&lt;br /&gt;
* scan the directories and test which file is a module and register it (not instantiated yet) &lt;br /&gt;
* Instantiate all the register modules&lt;br /&gt;
* Connect each module with the scene and the application&lt;br /&gt;
More details can be found in the [http://slicer.org/doc/html/classqSlicerAbstractModuleFactoryManager.html online doc]&lt;br /&gt;
&lt;br /&gt;
==ToDo==&lt;br /&gt;
* Transform all core modules into Loadable modules.&lt;br /&gt;
** the factory manager only support file based modules, core modules are not file based (linked into the core factory itself)&lt;br /&gt;
* Move factory registration in qSlicerApplication (or a general application library) to support module discovery/loading without needing to instantiate Slicer.&lt;br /&gt;
** Currently can't be moved into qSlicerApplication as the CLI factories that are in QTCLI depend on QTGUI&lt;br /&gt;
** QtTesting is also limited with the QTCLI dependency on QtGUI (-&amp;gt;qSlicerApplication would need to access QtTesting code from QtCli)&lt;br /&gt;
** Proposed architecture&lt;br /&gt;
 Base&lt;br /&gt;
   Application -&amp;gt; classes that are useful to build an application (mix of qSlicerCoreApplication, qSlicerApplication, Main.cxx...)&lt;br /&gt;
   Core -&amp;gt; formally QtCore&lt;br /&gt;
   Modules -&amp;gt; contains the factories and module specific code&lt;br /&gt;
      Loadable&lt;br /&gt;
      CLI&lt;br /&gt;
      Scripted&lt;br /&gt;
   Scripted -&amp;gt; all that is python specific&lt;br /&gt;
      Cxx&lt;br /&gt;
      Python&lt;br /&gt;
   Widgets -&amp;gt; formally QtGUI&lt;br /&gt;
* Add category hierarchy in the Settings module panel&lt;br /&gt;
* Register factory settings/command-options(e.g. disable-loadable-modules) when registering module factories&lt;br /&gt;
** To have the settings panel be generic but have the code proper of each registered factory somewhere else&lt;br /&gt;
* Add mechanism for modules to register dialogs (toolbars that open dialogs),  e.g. the sceneview module needs to register the sceneView dialog into an icon.&lt;br /&gt;
* Ignore modules from the launcher command line.&lt;br /&gt;
* cloning&amp;quot; of module panels at run time. See [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008965.html &amp;quot;here] and [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008039.html here]&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Modules&amp;diff=30528</id>
		<title>Documentation/Nightly/Developers/Modules</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Modules&amp;diff=30528"/>
		<updated>2013-02-18T19:01:45Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Loadable Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Slicer supports three types of modules. While the developer has to choose between one of the three types to implement its module, the end user won't notice the difference as they all share the same look &amp;amp; feel. The choice for a given type of module is usually based on the type of inputs/parameters for a given module.&lt;br /&gt;
&lt;br /&gt;
= Command Line Interface (CLI) =&lt;br /&gt;
CLIs are standalone executables with a limited input/output arguments complexity (simple argument types, no user interactions...). They are typically implemented using [http://www.itk.org ITK].&lt;br /&gt;
* Shared lib or executable&lt;br /&gt;
* UI automatically generated&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from existing [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
** [[Slicer3:Execution_Model_Documentation|Slicer3 execution model]] (Slicer4 is very similar)&lt;br /&gt;
** [http://www.na-mic.org/Wiki/index.php/File:Slicer4_CLI.ppt CLI in Slicer4] (presentation of 2012 NAMIC AHM)&lt;br /&gt;
&lt;br /&gt;
= Loadable Modules =&lt;br /&gt;
Loadable modules are [http://en.wikipedia.org/wiki/C%2B%2B C++] plugins that are built against Slicer. They define custom GUIs for their specific behavior as they have full control over the application.&lt;br /&gt;
* C++ shared library&lt;br /&gt;
* Full control over the UI (based on [http://qt.nokia.com/products/ Qt]) and Slicer internals (MRML, logics, display managers...)&lt;br /&gt;
* Optimized for heavy computations&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
**[http://www.na-mic.org/Wiki/index.php/File:LoadableModules.pptx Loadable modules] (presentation of 2012 NAMIC AHM)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Developers/Tutorials/CreateLoadableModule|How to write a loadable module]]&lt;br /&gt;
&lt;br /&gt;
= Scripted Modules =&lt;br /&gt;
Scripted modules are written in [http://www.python.org/ Python] and typically but not necessarily use the high level API of Slicer and toolkits.   &lt;br /&gt;
* Python Console&lt;br /&gt;
* Full access to the API: [http://www.vtk.org VTK], [http://www.itk.org ITK], MRML, [http://qt.nokia.com/products/ Qt] and Slicer are fully wrapped&lt;br /&gt;
* Recommended for fast prototyping&lt;br /&gt;
* Where to start ?&lt;br /&gt;
# Create initial skeleton using [[Documentation/{{documentation/version}}/Developers/ModuleWizard|module wizard]]&lt;br /&gt;
# Read [[Documentation/{{documentation/version}}/Developers/Build_Module|Compiling slicer modules outside of the slicer source tree.]]&lt;br /&gt;
# Learn from existing [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Scripted/ existing modules]&lt;br /&gt;
* Links:&lt;br /&gt;
** [http://www.slicer.org/slicerWiki/index.php/Documentation/{{documentation/version}}/Developers/Python_scripting Python Scripting]&lt;br /&gt;
** [[Documentation/{{documentation/version}}/Training#Slicer4_Programming_Tutorial|Python Scripting Tutorial]]&lt;br /&gt;
&lt;br /&gt;
=Module Factory=&lt;br /&gt;
Loading modules into slicer happens in multiple steps:&lt;br /&gt;
*module factories must be registered into the factory manager&lt;br /&gt;
* directories where the modules to load are located must be passed to the factory manager&lt;br /&gt;
* Optionally specify module names to ignore&lt;br /&gt;
* scan the directories and test which file is a module and register it (not instantiated yet) &lt;br /&gt;
* Instantiate all the register modules&lt;br /&gt;
* Connect each module with the scene and the application&lt;br /&gt;
More details can be found in the [http://slicer.org/doc/html/classqSlicerAbstractModuleFactoryManager.html online doc]&lt;br /&gt;
&lt;br /&gt;
==ToDo==&lt;br /&gt;
* Transform all core modules into Loadable modules.&lt;br /&gt;
** the factory manager only support file based modules, core modules are not file based (linked into the core factory itself)&lt;br /&gt;
* Move factory registration in qSlicerApplication (or a general application library) to support module discovery/loading without needing to instantiate Slicer.&lt;br /&gt;
** Currently can't be moved into qSlicerApplication as the CLI factories that are in QTCLI depend on QTGUI&lt;br /&gt;
** QtTesting is also limited with the QTCLI dependency on QtGUI (-&amp;gt;qSlicerApplication would need to access QtTesting code from QtCli)&lt;br /&gt;
** Proposed architecture&lt;br /&gt;
 Base&lt;br /&gt;
   Application -&amp;gt; classes that are useful to build an application (mix of qSlicerCoreApplication, qSlicerApplication, Main.cxx...)&lt;br /&gt;
   Core -&amp;gt; formally QtCore&lt;br /&gt;
   Modules -&amp;gt; contains the factories and module specific code&lt;br /&gt;
      Loadable&lt;br /&gt;
      CLI&lt;br /&gt;
      Scripted&lt;br /&gt;
   Scripted -&amp;gt; all that is python specific&lt;br /&gt;
      Cxx&lt;br /&gt;
      Python&lt;br /&gt;
   Widgets -&amp;gt; formally QtGUI&lt;br /&gt;
* Add category hierarchy in the Settings module panel&lt;br /&gt;
* Register factory settings/command-options(e.g. disable-loadable-modules) when registering module factories&lt;br /&gt;
** To have the settings panel be generic but have the code proper of each registered factory somewhere else&lt;br /&gt;
* Add mechanism for modules to register dialogs (toolbars that open dialogs),  e.g. the sceneview module needs to register the sceneView dialog into an icon.&lt;br /&gt;
* Ignore modules from the launcher command line.&lt;br /&gt;
* cloning&amp;quot; of module panels at run time. See [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008965.html &amp;quot;here] and [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008039.html here]&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=ITKv4_Migration_plan&amp;diff=29478</id>
		<title>ITKv4 Migration plan</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=ITKv4_Migration_plan&amp;diff=29478"/>
		<updated>2012-12-05T15:11:45Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Slicer4#Plan| Back to Slicer]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
This page is designed to identify and track the work that needs to be done during the month of 2012-12-01 to 2012-12-31 in order to transition Slicer to a solid and uniform ITKv4 platform. Originally this document, created following the NAMIC Engineering TCon of July 28th [http://wiki.na-mic.org/Wiki/index.php/Engineering:TCON_2011#2011-07-28], discuss the element that should be considered before transitioning Slicer to ITKv4.&lt;br /&gt;
&lt;br /&gt;
Historical and other old pages with possibly outdated information. If the information on these other pages is relevant, they need to be pushed here.&lt;br /&gt;
&lt;br /&gt;
* http://www.slicer.org/slicerWiki/index.php/ITKv4_Migration_plan&lt;br /&gt;
* http://www.slicer.org/slicerWiki/index.php/Developer_Meetings/20121106#ITKv4&lt;br /&gt;
* http://wiki.na-mic.org/Wiki/index.php/Engineering:TCON_2011#2011-07-28&lt;br /&gt;
&lt;br /&gt;
== Issue To Address ==&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;color:firebrick; background-color:ltgrey;&amp;quot; cellpadding=&amp;quot;5&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Issues for migration to ITKv4&lt;br /&gt;
|-&lt;br /&gt;
! _Due_Date_ &lt;br /&gt;
! Progress Status&lt;br /&gt;
! Team Members &lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| 2012-12-31 &lt;br /&gt;
| Started&lt;br /&gt;
| Hans J., Steve P., JC, Bill L., Matt M., Kent W.&lt;br /&gt;
| http://www.na-mic.org/Bug/search.php?project_id=3&amp;amp;amp;sticky_issues=on&amp;amp;amp;sortby=last_updated&amp;amp;amp;dir=DESC&amp;amp;amp;hide_status_id=80&amp;amp;amp;tag_string=ITKv4&lt;br /&gt;
|-&lt;br /&gt;
|  2012-12-05&lt;br /&gt;
|&lt;br /&gt;
| Steve P., Bill L., Matt M., Kent W.&lt;br /&gt;
| Test Slicer/ITKv4 on all platforms, especially 64bit VS2008.  ( see comments in table below for checkout information:  2012-12-01 )&lt;br /&gt;
|-&lt;br /&gt;
| 2012-12-05&lt;br /&gt;
|&lt;br /&gt;
| Matt M., Bill L.&lt;br /&gt;
| Look into reducing the number of ITKv4 Modules enabled when building&lt;br /&gt;
|-&lt;br /&gt;
| N/A to ITKv4&lt;br /&gt;
|&lt;br /&gt;
| Matt M., Steve P., Bill L., Matt M.&lt;br /&gt;
| Slicer modules to reduce load time on Windows&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;color:green; background-color:white;&amp;quot; cellpadding=&amp;quot;10&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Timeline for ITKv4&lt;br /&gt;
|-&lt;br /&gt;
! _Due_Date_ &lt;br /&gt;
! Progress Status &lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| 2012-12-01&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| Done&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot; |Hans provides a first pass reference set of patches that build on Mac and demonstrates that nearly all functionality is maintained identically between ITKv3 and ITKv4&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| I've successfully created a mac dmg package. &amp;amp;quot;CPack: - package: /Users/johnsonhj/src/Slicer-git-itkv4/Slicer-build/Slicer-4.2.0-macosx-amd64.dmg generated.&amp;amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
The package is not yet completely successful though :(.&amp;amp;nbsp; It seems to run just fine on the machine I used to build the package, but when running on my wifes laptop, it can not find a Qt library in /usr/local/lib/&lt;br /&gt;
&lt;br /&gt;
This is probably something best left for discussion next Wednesday.&lt;br /&gt;
&lt;br /&gt;
I am building on 10.8 with a private build of clang 3.1 tagged as stable from svn.&amp;lt;br/&amp;gt;&lt;br /&gt;
I also installed homebrew, and from that installed QT 4.8.3. ( I manually set the required Qt version to 4.8.3)&lt;br /&gt;
&lt;br /&gt;
*FROM THE SAME SOURCE TREE* I also am building Slicer built with ITKv3, and that also seems to be building a reasonable package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;&lt;br /&gt;
git clone git@github.com:BRAINSia/Slicer43.git&lt;br /&gt;
cd  Slicer43&lt;br /&gt;
git checkout origin/AddDWIConvert &amp;amp;ndash;b AddDWIConvert&lt;br /&gt;
cd ../ &amp;amp;amp;&amp;amp;amp; mkdir sl-itkv3  &amp;amp;amp;&amp;amp;amp; sl-itkv3  &amp;amp;amp;&amp;amp;amp; CC=/opt/clang31/bin/clang CXX=/opt/clang31/bin/clang++ ccmake &amp;amp;ndash;DITK_VERSION_MAJOR:STRING=3 ../Slicer43&lt;br /&gt;
cd ../ &amp;amp;amp;&amp;amp;amp; mkdir sl-itkv4  &amp;amp;amp;&amp;amp;amp; sl-itkv4  &amp;amp;amp;&amp;amp;amp; CC=/opt/clang31/bin/clang CXX=/opt/clang31/bin/clang++ ccmake &amp;amp;ndash;DITK_VERSION_MAJOR:STRING=4 ../Slicer43&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| 2012-12-05&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| Matt McCormick coordinates a Google Hang out&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| In preparation for the upcoming Slicer 4.3 and the NA-MIC Winter Project Week, we are planning a hackathon to help with migration to ITKv4 as the default version of ITK in Slicer.&amp;amp;nbsp; For some time, 	community members such as Hans Johnson, Bill Lorensen, and Jean-Christophe Fillion-Robin have made sure ITKv4 works well with Slicer, and we hope to gather and focus on remaining issues that should be addressed.&lt;br /&gt;
&lt;br /&gt;
The hackathon will take place on:&amp;amp;nbsp; &amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:Yellow;&amp;quot;&amp;gt;&lt;br /&gt;
* Wednesday, December 5th from 10AM Eastern Time until we run out of energy :-). &amp;lt;br\&amp;gt;&lt;br /&gt;
* Primary Connection Information: Google Hangout to be announce at 10AM Eastern time on the ITK and Slicer mailing lists.  The link to join the hangout:   https://plus.google.com/hangouts/_/a52d596290231e5806eec50e14ab2dcddad72fcd?authuser=2&amp;amp;eid=106512397331641956186&amp;amp;hl=en&lt;br /&gt;
* Fallback/Auxiliary connection information:  GoTo Meeting for sharing screens with mouse control:   &amp;lt;br\&amp;gt;&lt;br /&gt;
Please join my meeting, Dec 5, 2012 at 9:00 AM CST. &amp;lt;br\&amp;gt;&lt;br /&gt;
https://www1.gotomeeting.com/join/739397184 &amp;lt;br\&amp;gt;&lt;br /&gt;
Meeting ID: 739-397-184&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;The hackathon will take place on a Google+ Hangout.&amp;amp;nbsp; I will follow up with the link to the hangout on this email thread when we starts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Issues to address at Google Hangout:&lt;br /&gt;
&lt;br /&gt;
Issues in the Slicer bug tracker with the ITKv4 tag:  ( See table above )&lt;br /&gt;
&lt;br /&gt;
If there are other issues to address, please report them in the Slicer bug tracker and reply to this thread.&lt;br /&gt;
&lt;br /&gt;
Work will occur on the following repository on Github.&amp;amp;nbsp;&amp;amp;nbsp; https://github.com/BRAINSia/Slicer43&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| 2012-12-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| 2012-12-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| 2012-12-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| 2012-12-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| 2012-12-&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;background-color: orange;&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Historical (and probably outdated) information =&lt;br /&gt;
&lt;br /&gt;
== Consensus as of 2011 ==&lt;br /&gt;
&lt;br /&gt;
* Slicer RSNA 2011 will be built against ITKv3&lt;br /&gt;
&lt;br /&gt;
* External module requiring ITKv4 will be linked statically against ITKv4&lt;br /&gt;
** Associated command line module will be built as executable only. Indeed having both ITKv3 and ITKv4 in the same process will most likely result in some weird symbol clash.&lt;br /&gt;
&lt;br /&gt;
=== Questions ===&lt;br /&gt;
&lt;br /&gt;
* Should each extension depending on ITKv4 download and build its own copy of ITKv4 or should Slicer build and expose both ITKv3 and ITKv4 ?&lt;br /&gt;
&lt;br /&gt;
== Custom MetaIO in SlicerITK ==&lt;br /&gt;
&lt;br /&gt;
* To minimize memory usage and increase efficiency of Command line module execution, itkImageFileReader.txx in SlicerITK has been patched. See https://github.com/Slicer/ITK/commit/8c73dc57e4ae67328ff8e44934b72fd4cc5d4dd3 and https://github.com/Slicer/ITK/commit/12349021b152ac6546c2caf09bbbee4266baddad&lt;br /&gt;
&lt;br /&gt;
* Bill mentioned it should be possible to avoid patching SlicerITK by creating a custom Factory / plugins. &lt;br /&gt;
&lt;br /&gt;
* From Bradley Lowekamp - ITK mailing list - Sun, Jul 17, 2011 at 11:33 AM  subject '''Re: [Insight-developers] ITK 3 tag to use with slicer? Fwd: Slicer release schedule'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Stephen,&lt;br /&gt;
&lt;br /&gt;
If I understand this change correctly, this patch allows the usage of a buffer allocated by the ImageIO to be passed &lt;br /&gt;
all the way to the Image class if  all the types match up. The is accomplished by adding the following &lt;br /&gt;
methods: ImageIO::CanUseOwnBuffer, ImageIO::ReadUsingOwnBuffer() and ImageIO::GetOwnBuffer.&lt;br /&gt;
&lt;br /&gt;
I assume that this change is for the MemoryImageFileReader that is used with Slicer. ( can see how this could be &lt;br /&gt;
quite advantageous ( and also the potential for scary alias when combined with InPlace filters ). But as not one &lt;br /&gt;
single ITK ImageIO has support for these methods. I'd like to question if they should be brought into the ITK main repo, &lt;br /&gt;
as they don't appear to currently provide any benefit to ITK and only complicate as already complicated interface to the &lt;br /&gt;
ImageIO. If these changes are desired in ITK, then I would strongly encourage better documentation for the new methods in &lt;br /&gt;
ImageIO, to enable new developers with add this feature to ImageIO classes.&lt;br /&gt;
&lt;br /&gt;
Brad&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From Bill - Thu, Jul 28, 2011 at 5:19 PM '''Re: [slicer-devel] Engineering:TCON 2011 - NAMIC'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
I checked the patches. Two classes are patched: ImageIOBase and ImageFileReader. Now I do not think my factory idea is worthwhile. &lt;br /&gt;
We should to bring the changes into ITK, and convert ITK's Meta and Nifti ImageIO's to use it.&lt;br /&gt;
&lt;br /&gt;
Bill&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* In the na-mic tcon it was discussed that nrrd and nifti readers also perform the memcpy since the native libraries perform the Information and Read steps in a single API call.  Therefor if the feature existed at the ITK level, then several readers could take advantage of it.&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/WidgetWriting&amp;diff=27605</id>
		<title>Documentation/4.1/Developers/Tutorials/WidgetWriting</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/WidgetWriting&amp;diff=27605"/>
		<updated>2012-07-11T17:47:26Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Coding style */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a custom widget in Slicer=&lt;br /&gt;
==Intro==&lt;br /&gt;
A custom widget is a specialization of another widget or a group of widgets working together. Custom widgets are usually created when you need to add new functionality to existing widgets or groups of widgets. If you simply want a collection of widgets in a special configuration it can be easily done in QtDesigner and probably doesn't require to be a custom widget. &lt;br /&gt;
&lt;br /&gt;
In the following we will assume you are familiar with Qt.&amp;lt;br&amp;gt;&lt;br /&gt;
Here are some useful links:&lt;br /&gt;
*http://doc.trolltech.com/how-to-learn-qt.html&lt;br /&gt;
*http://doc.trolltech.com/object.html&lt;br /&gt;
*http://doc.trolltech.com/properties.html&lt;br /&gt;
&lt;br /&gt;
==Before starting==&lt;br /&gt;
There are 2 locations where custom widgets can be. You first have to decide where your custom widget should go:&lt;br /&gt;
*&amp;lt;i&amp;gt;CTK&amp;lt;/i&amp;gt;: Qt and/or VTK only&lt;br /&gt;
*&amp;lt;i&amp;gt;Slicer3/Libs/qMRMLWidgets&amp;lt;/i&amp;gt;: MRML-aware widgets (Slicer3)&lt;br /&gt;
*&amp;lt;i&amp;gt;Slicer/Libs/MRML/Widgets&amp;lt;/i&amp;gt;: MRML-aware widgets (Slicer4)&lt;br /&gt;
A good practice is to split (as possible) your custom widget in 2: a QT-only widget and a MRML-aware widget where the MRML-aware widgets inherits from the Qt-only widget. An intermediate level can be added for Qt and VTK widgets.&amp;lt;br&amp;gt;&lt;br /&gt;
It is important to keep the widgets basic. If you think someone else can use your custom widget differently, or if someone would need less features than the custom widget currently have, it is probably a good idea to split the widget in 2 widgets linked with an IS-A relationship.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding style==&lt;br /&gt;
The name of the custom widgets must follow the pattern: &amp;lt;code&amp;gt;qMRML[customName][baseQtWidget]&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;[baseQtWidget]&amp;lt;/code&amp;gt; is the name of the qt widget your custom widget inherits from (i.e. &amp;lt;code&amp;gt;ComboBox&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Slider&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Dialog&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Widget&amp;lt;/code&amp;gt;...), and &amp;lt;code&amp;gt;[customName]&amp;lt;/code&amp;gt; is a descriptive name. Examples:&lt;br /&gt;
*&amp;lt;code&amp;gt;qMRMLLinearTransformSlider&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;qMRMLMatrix&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt; vs. &amp;lt;code&amp;gt;qMRMLMatrixWidget&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
*When you create your widget, make sure you use the [http://doc.trolltech.com/4.5/properties.html Qt property system], it allow the customization of the widgets in [http://doc.trolltech.com/4.6/designer-manual.html Qt Designer].&lt;br /&gt;
&lt;br /&gt;
==Step by step==&lt;br /&gt;
*Create your widget files (.h and .cxx) in the &amp;lt;i&amp;gt;Libs/MRML/Widgets&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
**If you use a &amp;lt;i&amp;gt;.ui&amp;lt;/i&amp;gt; file, add it in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/UI&amp;lt;/i&amp;gt; directory&lt;br /&gt;
**If you use icon files, add them in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/Icons&amp;lt;/i&amp;gt; directory and update the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/qMRMLWidgets.qrc&amp;lt;/i&amp;gt; file accordingly&lt;br /&gt;
*Update the &amp;lt;i&amp;gt;Libs/MRML/Widgets/CMakeLists.txt&amp;lt;/i&amp;gt; file with your widget files.&lt;br /&gt;
** add the &amp;lt;i&amp;gt;.h&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;.cxx&amp;lt;/i&amp;gt; files in the &amp;lt;code&amp;gt;qMRMLWidgets_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
** add the &amp;lt;i&amp;gt;.h&amp;lt;/i&amp;gt; file in the &amp;lt;code&amp;gt;qMRMLWidgets_MOC_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
** if any, add the &amp;lt;i&amp;gt;.ui&amp;lt;/i&amp;gt; file in the &amp;lt;code&amp;gt;qMRMLWidgets_UI_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
* compile with your favorite compiler.&lt;br /&gt;
Congratulations, you just added a custom widget in Slicer. The widget can now be used anywhere in Slicer.&amp;lt;br&amp;gt;&lt;br /&gt;
However the widget doesn't show up in QDesigner, let's create the associated widget plugin for QDesigner.&lt;br /&gt;
&lt;br /&gt;
=Create a widget for the designer=&lt;br /&gt;
For a general presentation to create custom widgets for Qt Designer, see http://doc.trolltech.com/designer-creating-custom-widgets.html&lt;br /&gt;
==Step by step==&lt;br /&gt;
*Copy paste this template in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Plugins&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifndef __qMRMLCustomWidgetPlugin_h&lt;br /&gt;
#define __qMRMLCustomWidgetPlugin_h&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;qMRMLWidgetsAbstractPlugin.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class QMRML_WIDGETS_PLUGIN_EXPORT qMRMLCustomWidgetPlugin : public QObject,&lt;br /&gt;
                                public qMRMLWidgetsAbstractPlugin&lt;br /&gt;
{&lt;br /&gt;
  Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
  qMRMLCustomWidgetPlugin(QObject *_parent = 0);&lt;br /&gt;
  &lt;br /&gt;
  QWidget *createWidget(QWidget *_parent);&lt;br /&gt;
  QString domXml() const;&lt;br /&gt;
  QString includeFile() const;&lt;br /&gt;
  bool isContainer() const;&lt;br /&gt;
  QString name() const;&lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Rename the file &amp;lt;i&amp;gt;qMRML[name of your widget]Plugin.h&amp;lt;/i&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
*Replace &amp;lt;i&amp;gt;CustomWidget&amp;lt;/i&amp;gt; with the name of your widget&lt;br /&gt;
*Copy-paste the following template in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;pre&amp;gt;#include &amp;quot;qMRMLCustomWidgetPlugin.h&amp;quot;&lt;br /&gt;
#include &amp;quot;qMRMLCustomWidget.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
qMRMLCustomWidgetPlugin::qMRMLCustomWidgetPlugin(QObject *_parent)&lt;br /&gt;
        : QObject(_parent)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QWidget *qMRMLCustomWidgetPlugin::createWidget(QWidget *_parent)&lt;br /&gt;
{&lt;br /&gt;
  qMRMLCustomWidget* _widget = new qMRMLCustomWidget(_parent);&lt;br /&gt;
  return _widget;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::domXml() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;&amp;lt;widget class=\&amp;quot;qMRMLCustomWidget\&amp;quot; \&lt;br /&gt;
          name=\&amp;quot;MRMLCustomWidget\&amp;quot;&amp;gt;\n&amp;quot;&lt;br /&gt;
          &amp;quot;&amp;lt;/widget&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::includeFile() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;qMRMLCustomWidget.h&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
bool qMRMLCustomWidgetPlugin::isContainer() const&lt;br /&gt;
{&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::name() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;qMRMLCustomWidget&amp;quot;;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the file qMRML[name of your widget]Plugin.cxx&lt;br /&gt;
|}&lt;br /&gt;
*Replace &amp;lt;i&amp;gt;CustomWidget&amp;lt;/i&amp;gt; by the name of your widget &lt;br /&gt;
*If the widget is a container, return &amp;lt;code&amp;gt;true&amp;lt;/code in the method &amp;lt;code&amp;gt;isContainer()&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You can customize how the widget is instantiated in the designer by reimplementing the method &amp;lt;code&amp;gt;domxml()&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Update &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins/CMakeLists.txt&amp;lt;/i&amp;gt; by adding your widget plugin files. &lt;br /&gt;
** add the files &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.h&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.cxx&amp;lt;/i&amp;gt; in the variable &amp;lt;code&amp;gt;qMRMLWidgetsPlugin_SRCS&amp;lt;/code&amp;gt;&lt;br /&gt;
** add the file &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.h&amp;lt;/i&amp;gt; in the variable &amp;lt;code&amp;gt;qMRMLWidgetsPlugin_MOC_SRCS&amp;lt;/code&amp;gt; &lt;br /&gt;
*Finally add your widget in the method &amp;lt;code&amp;gt;qMRMLWidgetsPlugins::customWidgets()&amp;lt;/code&amp;gt; of the file &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins/qMRMLWidgetsPlugins.h&amp;lt;/i&amp;gt;&lt;br /&gt;
*compile&lt;br /&gt;
Congratulations, you just added a custom widget in a plugin that can be read by QDesigner. Read the [[Documentation/4.1/Developers/Tutorials/QtDesigner |QtDesigner tutorial]] to learn how you can use the widget in [http://qt.nokia.com/products/developer-tools/ Qt Designer].&amp;lt;br&amp;gt;&lt;br /&gt;
'''Coding style:'''&lt;br /&gt;
For a better code readability, make sure you respect the alphabetical order of the files in &amp;lt;i&amp;gt;CMakeLists.txt&amp;lt;/i&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:MainApplicationGUI-Documentation&amp;diff=27604</id>
		<title>Modules:MainApplicationGUI-Documentation</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:MainApplicationGUI-Documentation&amp;diff=27604"/>
		<updated>2012-07-11T15:04:36Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Undo revision 27601 by Dmwelch (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation|Return to Slicer Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;3&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;200px&amp;quot;&amp;gt;&lt;br /&gt;
Image:AppGUIMap.png | '''Figure A.''' Schematic of the [[ Modules:MainApplicationGUI-Documentation#Main_Application_GUI_organization | main application GUI ]]&lt;br /&gt;
Image:AppToolbarMap.png | '''Figure B.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#Application_Toolbar | Application Toolbar ]]&lt;br /&gt;
Image:SCGUIMap.png | '''Figure C.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#Slice_Viewer_Control_Panel | Controller for all Slice Viewers ]]&lt;br /&gt;
Image:VCGUIMap.png | '''Figure D.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#3D_Viewer_Control_Panel | Controller for the 3D Viewer ]]&lt;br /&gt;
image:SliceGUIMap.png | '''Figure E.''' Schematic of a [[Modules:MainApplicationGUI-Documentation#Slice_Viewers_.26_Controllers | Slice Viewer and Slice Controller]]&lt;br /&gt;
Image:SliceGUIMoreMap.png | '''Figure F.''' Schematic of [[Modules:MainApplicationGUI-Documentation#Slice_Viewers_.26_Controllers | Slice Viewer additional options ]]&lt;br /&gt;
Image:AppSettingsGUIMap.png | '''Figure G.''' Schematics of the [[Modules:MainApplicationGUI-Documentation#View-.3EApplication_Settings_Interface: | Application Settings Interface ]]&lt;br /&gt;
Image:RemoteIOGUIMap.png | '''Figure H.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#View-.3ECache_.26_RemoteIO_Manager: | Remote Data Handling Interface ]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Main Application GUI organization=&lt;br /&gt;
Slicer3's main desktop interface provides top-level access to most commonly-used features, and organizes them into logical groupings. These groups of features are presented in a number of interface panels on the GUI, as is illustrated in the basic layout below. The interface is designed to be easy to learn and remember, to ease navigation of Slicer's large (and growing) functionality, and to easily collapse and hide when you don't need to see it. Figures A through H in the gallery at the top of this page provide richer detail and will be described in sections below.&lt;br /&gt;
&lt;br /&gt;
[[image:SlicerGUIIntro.png ]]&lt;br /&gt;
&lt;br /&gt;
As shown above, the logical groupings of Slicer's interface elements include:&lt;br /&gt;
* The Application Menubar&lt;br /&gt;
* The Application Toolbar&lt;br /&gt;
* The Main GUI Panel, which consists of:&lt;br /&gt;
** Slicer's Logo Panel&lt;br /&gt;
** The Module GUI Panel&lt;br /&gt;
** The Slice Viewer Controls&lt;br /&gt;
** The 3D Viewer Controls&lt;br /&gt;
* The 3D Viewer&lt;br /&gt;
* Three Main Slice Viewers (Red, Yellow, and Green)and additional Slice Viewers&lt;br /&gt;
* The Message Bar and Progress Gauge&lt;br /&gt;
* And the Error Log Button&lt;br /&gt;
&lt;br /&gt;
An overview of the functionality provided in each of these interface elements is provided below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Application Menubar ==&lt;br /&gt;
The Application menubar is at the very top of Slicer3's main window, as noted above and in Figure A. Its menus and functionality are briefly listed below.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
===='''File-&amp;gt;Load Scene:'''==== &lt;br /&gt;
This command raises a file browser (shown below). Slicer's file browser has a 'favorites' icon that allows you to save often-visited directories on the browser's left panel. Other features, including icons that allow you to navigate your browsing history, pop up a level in the directory structure (or folder hierarchy) and create new folders. To load a scene, navigate to a file of the appropriate format (.mrml, .xcat (XCEDE catalog file), or .xml (Slicer2 scene file) and select it for loading into Slicer. The command first clears any existing scene in Slicer and resets the application state.&lt;br /&gt;
&lt;br /&gt;
[[image:FileBrowser.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Import Scene:'''==== &lt;br /&gt;
This command raises a file browser to that you can navigate to a scene file and select it to be added to the existing Slicer scene. (The existing scene is not cleared).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Add Data:'''==== &lt;br /&gt;
This command raises an &amp;quot;Add Data&amp;quot; widget (shown below) that allows you to select individual datasets to add to the existing scene. It exposes the following functionality:&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Add Directory&amp;quot; button adds all files within the selected directory to the file list.&lt;br /&gt;
* The &amp;quot;Add File(s)&amp;quot; button adds all selected files to the file list.&lt;br /&gt;
* The array of buttons across the top allow you to select and deselect files in the file list, remove selected files from the list, or describe how files should be loaded.&lt;br /&gt;
* The &amp;quot;Apply&amp;quot; button loads all datasets in the list, and&lt;br /&gt;
* The &amp;quot;Cancel&amp;quot; button aborts the entire load.&lt;br /&gt;
&lt;br /&gt;
[[image:AppAddData.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Add Volume:'''==== &lt;br /&gt;
This command raises an &amp;quot;Add Volume&amp;quot; widget (shown below) that allows you to select a volumetric dataset to add to the existing scene. The &amp;quot;Volume Options&amp;quot; panel can be used to clarify how a selected dataset should be loaded and displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:AppAddVolume.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Save:'''==== &lt;br /&gt;
This command displays the &amp;quot;Save Data&amp;quot; widget, which offers many options for saving a scene and/or individual datasets. The widget includes a &amp;quot;Save Scene&amp;quot; panel and a &amp;quot;Save Data&amp;quot; panel beneath it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Specifying a scene file to save:''' The ''Scene File'' button raises a file browser from which a file can be selected or a new scene file can be specified. If a scene has already been loaded from a MRML file, then its filename is presented as the default choice. To save the scene into a new MRML file, first select the directory/folder and then provide a file name. The ''Save Scene'' checkbox just below must be selected in order to save the scene file; otherwise, only selected datasets will be saved. &lt;br /&gt;
&lt;br /&gt;
'''Indicating new and unsaved datasets:''' When the panel is first displayed, all datasets which have been newly created or modified since the scene was saved are checked by default in the &amp;quot;Save Data&amp;quot; panel's ''Save'' column. Any datasets in the scene can be checked/unchecked for saving/not saving using the checkboxes provided in this column. The ''Save All'' and ''Save None'' buttons check or uncheck all listed datasets, respectively. Any dataset's filepath and filename may be edited to save the dataset in a location different from that specified. To save an individual model/volume, first select it for storing and THEN select the directory/folder.&lt;br /&gt;
&lt;br /&gt;
'''Converting to other data formats:''' Any dataset can be converted to a different (supported) format by editing the filename extension. Click at the end of the filepath/name string and edit. (nrrd is for nrrd files).&lt;br /&gt;
&lt;br /&gt;
'''Supported formats:''' Formats that can be saved include (list here).&lt;br /&gt;
&lt;br /&gt;
'''Saving data:''' Finally, selecting the ''Save'' button will launch the scene/data saving process, and ''Cancel'' will abort it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:AppSaveData.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Close Scene:'''==== &lt;br /&gt;
This command closes the current scene and resets the application state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Exit'''==== &lt;br /&gt;
This command exits Slicer.&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Set Home'''==== This command sets a user's 'home module', which is the module displayed by default each time the Slicer application is started. The home module is saved in the Application Registry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Undo'''==== &lt;br /&gt;
This command undoes the history of undoable commands, from last to first. &lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Redo'''==== &lt;br /&gt;
This command re-does the history of commands most recently undone, from last to first.&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Edit Box'''==== &lt;br /&gt;
This command raises the Edit-box, a lightweight image editing tool.&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;New Fiducial List'''==== &lt;br /&gt;
This command creates a new list of fiducial points.&lt;br /&gt;
&lt;br /&gt;
===View menu ===&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Module Search:'''====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Cache &amp;amp; RemoteIO Manager:'''==== &lt;br /&gt;
The Cache and Remote Data Handling interface provides status and information about all remote data transfers, and allows some control over the local cache. Remote I/O and Cache preferences can also be set in the Application Settings Interface, described next. Whether you set preferences here or there, they are saved in the Application Registry so that your settings are preserved each time you start up the Slicer Application.&lt;br /&gt;
&lt;br /&gt;
The pop-up interface is shown below. Checkbuttons at the top left provide choices about download and caching behavior, and the cache directory, cache size limit, and cache free space buffer can be set at the interface bottom. Icon buttons at the top right allow global operations on all data transfers (cache clearing and transfer cancellation) and display updates (transfer panel cleanup and cache report refreshing). Each data transfer is listed in the transfer panel along with some information about its type and status. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' In version 3.2 of Slicer, downloads of datasets represented by multiple data files (such as DICOM) or separate data and header files (like Analyze) are '''not yet supported'''.&lt;br /&gt;
&lt;br /&gt;
[[image:RemoteIOGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
Below, all of the Cache &amp;amp; Remote Data I/O Manager icons are listed and described:&lt;br /&gt;
&lt;br /&gt;
[[image:RemoteIOIcons.png]]&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Application Settings Interface:'''==== &lt;br /&gt;
The Application Settings interface provides options for saving many of Slicer's Interface and Remote Data Handling options to the Application Registry, so they are preserved across sessions. The first time you start the application, it is recommended that you browse these settings and select options that you prefer. Some of the options provided in the interface are listed below:&lt;br /&gt;
&lt;br /&gt;
* ''Slicer Settings'' allow you to specify whether Slicer should confirm on delete, and set the location for other applications that Slicer may need to use (Firefox, Zip, ''etc.''). &lt;br /&gt;
* ''Font Settings'' options allows you to choose among several fonts and relative font sizes to be displayed in the GUI.&lt;br /&gt;
* ''Module Settings'' options allow you to select a Temporary directory, a home module (that will be displayed each time Slicer starts up) and whether Slicer should include loadable and command-line modules on startup.&lt;br /&gt;
* ''Remote Data Handling Settings'' options allow the specification of Cache and Remote Data I/O settings which are also configurable from the Cache and Remote Data I/O Manager described above.&lt;br /&gt;
&lt;br /&gt;
[[image:AppSettingsGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
===Window menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Hide/Show Main Panel (Hotkey = F5):'''==== &lt;br /&gt;
This command collapses or expands the GUI panel and allows Slicer's viewers to occupy the entire application window, as shown below in Application Layouts figure C.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Hide/Show Bottom Panel (Hotkey = F6):'''==== &lt;br /&gt;
This command collapses or expands the bottom split-panel in which Slice viewers are conventionally displayed, allowing the 3D view to occupy the vertical extent of the application window. The behavior of this command will vary, and may not be appropriate, depending on the selected layout (-- available layouts are described below.)&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Toolbars:'''==== &lt;br /&gt;
This command allows hiding or exposing sub-toolbars in the application toolbars, including the Load/Save toolbar, the undo/redo toolbar, the layout configuration, and the mouse mode toolbar.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Log Window (Hotkey = Ctrl+Alt+E):'''==== &lt;br /&gt;
This command raises the error log display.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Tcl Interactor (Hotkey = Ctrl+T):'''==== &lt;br /&gt;
This command raises the Tcl interactor for scripted interaction with Slicer data:&lt;br /&gt;
&lt;br /&gt;
[[image:TclInteractor.png]]&lt;br /&gt;
&lt;br /&gt;
===Help menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Help-&amp;gt;Browse Tutorials:'''==== &lt;br /&gt;
This functionality is being developed.&lt;br /&gt;
&lt;br /&gt;
===='''Help-&amp;gt;About Slicer3:'''==== &lt;br /&gt;
Provides a description of the Slicer3 effort and its support.&lt;br /&gt;
&lt;br /&gt;
===Feedback menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Report a Bug:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that any bug you encounter can quickly and easily be reported. Be sure to select the appropriate category for the bug and estimate its severity. It's recommended that you provide as much information as you can so that the bug can be reproduced by the development team.&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Report a Usability Issue:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that any usability issue you encounter can quickly be captured. Be sure to select the &amp;quot;usability&amp;quot; category for the issue and estimate its severity. We request that you describe the way in which the usability issue is impacting your work so that the usability and development team can address the issue appropriately. Suggestions and ideas are welcome!&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Make a Feature Request:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that community feature requests can easily be collected. We request that you clearly mark your submission as a &amp;quot;feature request&amp;quot; in the description field of the form.&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Community:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.slicer.org/slicerWiki/index.php/Slicer3:VisualBlog where you can post screenshots of interesting ways you are using the Slicer3 software package in your research and share them with the Slicer community.&lt;br /&gt;
&lt;br /&gt;
== Application Toolbar ==&lt;br /&gt;
&lt;br /&gt;
Slicer's toolbar provides quick access to centralized load / save functionality, options for searching for and navigating among modules, undo/redo capability, ability to select different application layouts and change among mouse modes. Using and indicating mouse modes in Slicer is still under development, so this part of the toolbar will likely change in future releases. For now, &amp;quot;Mouse place&amp;quot; is used to create new objects, like fiducial points. &amp;quot;Mouse pick&amp;quot; is intended for selecting objects. &amp;quot;Transform view&amp;quot; is the default mode, used to pan, zoom and rotate the camera in the 3D viewer. Individual icons in the toolbar are labeled below.&lt;br /&gt;
&lt;br /&gt;
[[image:AppToolbarMap.png]]&lt;br /&gt;
&lt;br /&gt;
The Windows-&amp;gt;Toolbars submenu allows showing/hiding parts of this toolbar, including the Load/Save toolbar, the undo/redo toolbar, the layout configuration, and the mouse mode toolbar.&lt;br /&gt;
&lt;br /&gt;
== Module GUI Panel ==&lt;br /&gt;
===='''Conventions and window position:'''==== &lt;br /&gt;
By default, the Module GUI panel is located on the left of the application window. The panel that contains the Module GUI, Slices Control GUI and 3D Viewer Control GUI (both described below) can be moved to the right side also by selecting that option from the layout menu on the toolbar, if that working configuration is found to be more convenient. Each Slicer module populates the Module GUI panel with its interface; all modules have a Help &amp;amp; Acknowledgement frame that presents brief help text and pointers to additional information, and appropriate acknowledgement for the work as shown in the figure below. &lt;br /&gt;
&lt;br /&gt;
===='''Collapsing and expanding frames:'''==== &lt;br /&gt;
Each module GUI contains its functionality inside collapsing and expanding frames, also shown below, to minimize the need to scroll among individual blocks of functionality within a module. The frames can be collapsed or expanded by clicking in the title frame. The Slices Control and 3D Viewer Control GUI panels also can be collapsed to make more space for a module GUI. &lt;br /&gt;
&lt;br /&gt;
[[image:ModuleGUIPanel.png]]&lt;br /&gt;
&lt;br /&gt;
== Slice Viewer Control Panel ==&lt;br /&gt;
The Slice Viewer Control Panel allows configuration of all Slice GUIs at once. The functionality represented by icons in Slicer Version 3.2 is described below:&lt;br /&gt;
&lt;br /&gt;
[[image:SCGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
== 3D Viewer Control Panel ==&lt;br /&gt;
&lt;br /&gt;
The 3D Viewer Control Panel provides many options for configuring the 3D viewer. The left-most panel allows the view to be oriented along any of the principle axes. Axes highlight on mouse-over. The functionality included in the panel represented by icons and checkboxes is described in the diagram below. Finally, the right most viewer duals as a birds-eye-view display of the entire scene, or a slice magnifier window when the mouse moves over any of the slice windows.&lt;br /&gt;
&lt;br /&gt;
[[image:VCGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
==== Stereoscopic and Kinetic Depth ====&lt;br /&gt;
The 3D Viewer provides a number of options for assessing depth and layout in complicated scenes. The stereo viewing pull-down menu, labeled &amp;quot;M&amp;quot; in the diagram above, provides several stereo viewing options, and the view rock (labeled &amp;quot;O&amp;quot;) and view spin (labeled &amp;quot;N&amp;quot;) animate the scene to help clarify feature shape, depth and layout.&lt;br /&gt;
&lt;br /&gt;
==== Scene Snapshots====&lt;br /&gt;
Scene snapshots provide a way to record particular compositions of a scene. These compositions are saved with the scene and can be restored for later inspection. Among the things recorded in each snapshot are: &lt;br /&gt;
* Model visibility,&lt;br /&gt;
* Volume display threshold, window and level settings, &lt;br /&gt;
* Slice visibility in the 3D view.&lt;br /&gt;
&lt;br /&gt;
To create or restore a scene snapshot:&lt;br /&gt;
* Click on the camera icon (labeled &amp;quot;H&amp;quot; in the diagram below) to record a scenesnapshot. &lt;br /&gt;
* Use the pull down menu (labeled &amp;quot;L&amp;quot; in the diagram below) to select from a list of existing snapshots. &lt;br /&gt;
* Click on the arrow icon to restore the snapshot.&lt;br /&gt;
* You can also click on the trashcan icon to delete the snapshot.&lt;br /&gt;
&lt;br /&gt;
[[image:SceneSnapshots.png]]&lt;br /&gt;
&lt;br /&gt;
== Main 3D Viewer ==&lt;br /&gt;
&lt;br /&gt;
== Slice Viewers &amp;amp; Controllers ==&lt;br /&gt;
&lt;br /&gt;
====Slice orientation and Oblique reformats====&lt;br /&gt;
On each viewer, there is a menu button in the upper left of the control pane that usually says &amp;quot;axial&amp;quot;, &amp;quot;coronal&amp;quot;, or &amp;quot;sagittal&amp;quot;.  There is a forth option that one can select from the button which is &amp;quot;reformat&amp;quot;. Slice viewers can be used to specify oblique reformats using the 'Reformat' orientation (instead of axial, coronal, sagittal) and CTRL-Right-Button-Move (subject to change).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:SliceGUIMap.png]] [[image:SliceGUIMoreMap.png]]&lt;br /&gt;
&lt;br /&gt;
== Window and layout configurations ==&lt;br /&gt;
&lt;br /&gt;
[[image:AppGUIBasicConfigure.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:AppLayouts.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Application Hot-keys (keyboard accelerators) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Key(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Action bound to key(s)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+O'''&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Load a new scene (clears existing scene)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+A''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Import a scene (does not clear existing scene)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+W''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Close a scene&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+H ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Set the current module to be the &amp;quot;home&amp;quot; module -- the module that's exposed when Slicer starts up.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Z ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Undo the last undoable action&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Y ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Redo the last redoable action&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Space-key ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Toggles the display of Slicer's Edit Box.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+P ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Display the Python console&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+L ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Create a new fiducial list.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Slice Viewer Hot-keys (keyboard accelerators) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Key(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Action bound to key(s)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''` (back-tick key)'''&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Navigate to next fiducial in the active Slice Viewer, or in all viewers if they are linked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Navigate to next fiducial in all Slice Viewers, independent of their linked state&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Shift+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Navigate to the previous fiducial in the active Slice Viewer, or in all viewers if they are linked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Shift+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Navigate to the previous fiducial in all Slice Viewers, independent of their linked state&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''p-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Place a new fiducial in the active Slice Viewer(adds to the current fiducial list, or creates a list if there are none)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''o-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Turn on the Slice Plane reformat widget in the active Slice Viewer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''v-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Toggles the slice plane visibility in the main 3D Viewer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''r-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Fits the slice view to the volume extents in the active Slice Viewer, or in all viewers if they are linked (the first non-none volume will be used in order of Background, Foreground and Label layers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''b-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Decrement slice in the active Slice Viewer (left or down) by one unit of background pixel spacing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''f-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Increment slice in the active Slice Viewer (right or up) by one unit of backgroun dpixel spacing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Backspace-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | When the mouse is hovering over a fiducial in the Slice Viewer (turning it yellow), delete that fiducial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Delete-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | When the mouse is hovering over a fiducial in the Slice Viewer (turning it yellow), delete that fiducial&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error Log ==&lt;br /&gt;
&lt;br /&gt;
[[image:RaiseErrorLog.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:ErrorLog.png]]&lt;br /&gt;
&lt;br /&gt;
== Message and Progress Bar ==&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:MainApplicationGUI-Documentation&amp;diff=27603</id>
		<title>Modules:MainApplicationGUI-Documentation</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:MainApplicationGUI-Documentation&amp;diff=27603"/>
		<updated>2012-07-11T15:04:20Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Undo revision 27602 by Dmwelch (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation|Return to Slicer Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;3&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;200px&amp;quot;&amp;gt;&lt;br /&gt;
Image:AppGUIMap.png | '''Figure A.''' Schematic of the [[ Modules:MainApplicationGUI-Documentation#Main_Application_GUI_organization | main application GUI ]]&lt;br /&gt;
Image:AppToolbarMap.png | '''Figure B.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#Application_Toolbar | Application Toolbar ]]&lt;br /&gt;
Image:SCGUIMap.png | '''Figure C.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#Slice_Viewer_Control_Panel | Controller for all Slice Viewers ]]&lt;br /&gt;
Image:VCGUIMap.png | '''Figure D.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#3D_Viewer_Control_Panel | Controller for the 3D Viewer ]]&lt;br /&gt;
image:SliceGUIMap.png | '''Figure E.''' Schematic of a [[Modules:MainApplicationGUI-Documentation#Slice_Viewers_.26_Controllers | Slice Viewer and Slice Controller]]&lt;br /&gt;
Image:SliceGUIMoreMap.png | '''Figure F.''' Schematic of [[Modules:MainApplicationGUI-Documentation#Slice_Viewers_.26_Controllers | Slice Viewer additional options ]]&lt;br /&gt;
Image:AppSettingsGUIMap.png | '''Figure G.''' Schematics of the [[Modules:MainApplicationGUI-Documentation#View-.3EApplication_Settings_Interface: | Application Settings Interface ]]&lt;br /&gt;
Image:RemoteIOGUIMap.png | '''Figure H.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#View-.3ECache_.26_RemoteIO_Manager: | Remote Data Handling Interface ]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Main Application GUI organization=&lt;br /&gt;
Slicer3's main desktop interface provides top-level access to most commonly-used features, and organizes them into logical groupings. These groups of features are presented in a number of interface panels on the GUI, as is illustrated in the basic layout below. The interface is designed to be easy to learn and remember, to ease navigation of Slicer's large (and growing) functionality, and to easily collapse and hide when you don't need to see it. Figures A through H in the gallery at the top of this page provide richer detail and will be described in sections below.&lt;br /&gt;
&lt;br /&gt;
[[image:SlicerGUIIntro.png ]]&lt;br /&gt;
&lt;br /&gt;
As shown above, the logical groupings of Slicer's interface elements include:&lt;br /&gt;
* The Application Menubar&lt;br /&gt;
* The Application Toolbar&lt;br /&gt;
* The Main GUI Panel, which consists of:&lt;br /&gt;
** Slicer's Logo Panel&lt;br /&gt;
** The Module GUI Panel&lt;br /&gt;
** The Slice Viewer Controls&lt;br /&gt;
** The 3D Viewer Controls&lt;br /&gt;
* The 3D Viewer&lt;br /&gt;
* Three Main Slice Viewers (Red, Yellow, and Green)and additional Slice Viewers&lt;br /&gt;
* The Message Bar and Progress Gauge&lt;br /&gt;
* And the Error Log Button&lt;br /&gt;
&lt;br /&gt;
An overview of the functionality provided in each of these interface elements is provided below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Application Menubar ==&lt;br /&gt;
The Application menubar is at the very top of Slicer3's main window, as noted above and in Figure A. Its menus and functionality are briefly listed below.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
===='''File-&amp;gt;Load Scene:'''==== &lt;br /&gt;
This command raises a file browser (shown below). Slicer's file browser has a 'favorites' icon that allows you to save often-visited directories on the browser's left panel. Other features, including icons that allow you to navigate your browsing history, pop up a level in the directory structure (or folder hierarchy) and create new folders. To load a scene, navigate to a file of the appropriate format (.mrml, .xcat (XCEDE catalog file), or .xml (Slicer2 scene file) and select it for loading into Slicer. The command first clears any existing scene in Slicer and resets the application state.&lt;br /&gt;
&lt;br /&gt;
[[image:FileBrowser.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Import Scene:'''==== &lt;br /&gt;
This command raises a file browser to that you can navigate to a scene file and select it to be added to the existing Slicer scene. (The existing scene is not cleared).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Add Data:'''==== &lt;br /&gt;
This command raises an &amp;quot;Add Data&amp;quot; widget (shown below) that allows you to select individual datasets to add to the existing scene. It exposes the following functionality:&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Add Directory&amp;quot; button adds all files within the selected directory to the file list.&lt;br /&gt;
* The &amp;quot;Add File(s)&amp;quot; button adds all selected files to the file list.&lt;br /&gt;
* The array of buttons across the top allow you to select and deselect files in the file list, remove selected files from the list, or describe how files should be loaded.&lt;br /&gt;
* The &amp;quot;Apply&amp;quot; button loads all datasets in the list, and&lt;br /&gt;
* The &amp;quot;Cancel&amp;quot; button aborts the entire load.&lt;br /&gt;
&lt;br /&gt;
[[image:AppAddData.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Add Volume:'''==== &lt;br /&gt;
This command raises an &amp;quot;Add Volume&amp;quot; widget (shown below) that allows you to select a volumetric dataset to add to the existing scene. The &amp;quot;Volume Options&amp;quot; panel can be used to clarify how a selected dataset should be loaded and displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:AppAddVolume.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Save:'''==== &lt;br /&gt;
This command displays the &amp;quot;Save Data&amp;quot; widget, which offers many options for saving a scene and/or individual datasets. The widget includes a &amp;quot;Save Scene&amp;quot; panel and a &amp;quot;Save Data&amp;quot; panel beneath it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Specifying a scene file to save:''' The ''Scene File'' button raises a file browser from which a file can be selected or a new scene file can be specified. If a scene has already been loaded from a MRML file, then its filename is presented as the default choice. To save the scene into a new MRML file, first select the directory/folder and then provide a file name. The ''Save Scene'' checkbox just below must be selected in order to save the scene file; otherwise, only selected datasets will be saved. &lt;br /&gt;
&lt;br /&gt;
'''Indicating new and unsaved datasets:''' When the panel is first displayed, all datasets which have been newly created or modified since the scene was saved are checked by default in the &amp;quot;Save Data&amp;quot; panel's ''Save'' column. Any datasets in the scene can be checked/unchecked for saving/not saving using the checkboxes provided in this column. The ''Save All'' and ''Save None'' buttons check or uncheck all listed datasets, respectively. Any dataset's filepath and filename may be edited to save the dataset in a location different from that specified. To save an individual model/volume, first select it for storing and THEN select the directory/folder.&lt;br /&gt;
&lt;br /&gt;
'''Converting to other data formats:''' Any dataset can be converted to a different (supported) format by editing the filename extension. Click at the end of the filepath/name string and edit. (nrrd is for nrrd files).&lt;br /&gt;
&lt;br /&gt;
'''Supported formats:''' Formats that can be saved include (list here).&lt;br /&gt;
&lt;br /&gt;
'''Saving data:''' Finally, selecting the ''Save'' button will launch the scene/data saving process, and ''Cancel'' will abort it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:AppSaveData.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Close Scene:'''==== &lt;br /&gt;
This command closes the current scene and resets the application state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Exit'''==== &lt;br /&gt;
This command exits Slicer.&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Set Home'''==== This command sets a user's 'home module', which is the module displayed by default each time the Slicer application is started. The home module is saved in the Application Registry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Undo'''==== &lt;br /&gt;
This command undoes the history of undoable commands, from last to first. &lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Redo'''==== &lt;br /&gt;
This command re-does the history of commands most recently undone, from last to first.&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Edit Box'''==== &lt;br /&gt;
This command raises the Edit-box, a lightweight image editing tool.&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;New Fiducial List'''==== &lt;br /&gt;
This command creates a new list of fiducial points.&lt;br /&gt;
&lt;br /&gt;
===View menu ===&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Module Search:'''====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Cache &amp;amp; RemoteIO Manager:'''==== &lt;br /&gt;
The Cache and Remote Data Handling interface provides status and information about all remote data transfers, and allows some control over the local cache. Remote I/O and Cache preferences can also be set in the Application Settings Interface, described next. Whether you set preferences here or there, they are saved in the Application Registry so that your settings are preserved each time you start up the Slicer Application.&lt;br /&gt;
&lt;br /&gt;
The pop-up interface is shown below. Checkbuttons at the top left provide choices about download and caching behavior, and the cache directory, cache size limit, and cache free space buffer can be set at the interface bottom. Icon buttons at the top right allow global operations on all data transfers (cache clearing and transfer cancellation) and display updates (transfer panel cleanup and cache report refreshing). Each data transfer is listed in the transfer panel along with some information about its type and status. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' In version 3.2 of Slicer, downloads of datasets represented by multiple data files (such as DICOM) or separate data and header files (like Analyze) are '''not yet supported'''.&lt;br /&gt;
&lt;br /&gt;
[[image:RemoteIOGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
Below, all of the Cache &amp;amp; Remote Data I/O Manager icons are listed and described:&lt;br /&gt;
&lt;br /&gt;
[[image:RemoteIOIcons.png]]&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Application Settings Interface:'''==== &lt;br /&gt;
The Application Settings interface provides options for saving many of Slicer's Interface and Remote Data Handling options to the Application Registry, so they are preserved across sessions. The first time you start the application, it is recommended that you browse these settings and select options that you prefer. Some of the options provided in the interface are listed below:&lt;br /&gt;
&lt;br /&gt;
* ''Slicer Settings'' allow you to specify whether Slicer should confirm on delete, and set the location for other applications that Slicer may need to use (Firefox, Zip, ''etc.''). &lt;br /&gt;
* ''Font Settings'' options allows you to choose among several fonts and relative font sizes to be displayed in the GUI.&lt;br /&gt;
* ''Module Settings'' options allow you to select a Temporary directory, a home module (that will be displayed each time Slicer starts up) and whether Slicer should include loadable and command-line modules on startup.&lt;br /&gt;
* ''Remote Data Handling Settings'' options allow the specification of Cache and Remote Data I/O settings which are also configurable from the Cache and Remote Data I/O Manager described above.&lt;br /&gt;
&lt;br /&gt;
[[image:AppSettingsGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
===Window menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Hide/Show Main Panel (Hotkey = F5):'''==== &lt;br /&gt;
This command collapses or expands the GUI panel and allows Slicer's viewers to occupy the entire application window, as shown below in Application Layouts figure C.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Hide/Show Bottom Panel (Hotkey = F6):'''==== &lt;br /&gt;
This command collapses or expands the bottom split-panel in which Slice viewers are conventionally displayed, allowing the 3D view to occupy the vertical extent of the application window. The behavior of this command will vary, and may not be appropriate, depending on the selected layout (-- available layouts are described below.)&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Toolbars:'''==== &lt;br /&gt;
This command allows hiding or exposing sub-toolbars in the application toolbars, including the Load/Save toolbar, the undo/redo toolbar, the layout configuration, and the mouse mode toolbar.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Log Window (Hotkey = Ctrl+Alt+e):'''==== &lt;br /&gt;
This command raises the error log display.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Tcl Interactor (Hotkey = Ctrl+T):'''==== &lt;br /&gt;
This command raises the Tcl interactor for scripted interaction with Slicer data:&lt;br /&gt;
&lt;br /&gt;
[[image:TclInteractor.png]]&lt;br /&gt;
&lt;br /&gt;
===Help menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Help-&amp;gt;Browse Tutorials:'''==== &lt;br /&gt;
This functionality is being developed.&lt;br /&gt;
&lt;br /&gt;
===='''Help-&amp;gt;About Slicer3:'''==== &lt;br /&gt;
Provides a description of the Slicer3 effort and its support.&lt;br /&gt;
&lt;br /&gt;
===Feedback menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Report a Bug:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that any bug you encounter can quickly and easily be reported. Be sure to select the appropriate category for the bug and estimate its severity. It's recommended that you provide as much information as you can so that the bug can be reproduced by the development team.&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Report a Usability Issue:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that any usability issue you encounter can quickly be captured. Be sure to select the &amp;quot;usability&amp;quot; category for the issue and estimate its severity. We request that you describe the way in which the usability issue is impacting your work so that the usability and development team can address the issue appropriately. Suggestions and ideas are welcome!&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Make a Feature Request:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that community feature requests can easily be collected. We request that you clearly mark your submission as a &amp;quot;feature request&amp;quot; in the description field of the form.&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Community:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.slicer.org/slicerWiki/index.php/Slicer3:VisualBlog where you can post screenshots of interesting ways you are using the Slicer3 software package in your research and share them with the Slicer community.&lt;br /&gt;
&lt;br /&gt;
== Application Toolbar ==&lt;br /&gt;
&lt;br /&gt;
Slicer's toolbar provides quick access to centralized load / save functionality, options for searching for and navigating among modules, undo/redo capability, ability to select different application layouts and change among mouse modes. Using and indicating mouse modes in Slicer is still under development, so this part of the toolbar will likely change in future releases. For now, &amp;quot;Mouse place&amp;quot; is used to create new objects, like fiducial points. &amp;quot;Mouse pick&amp;quot; is intended for selecting objects. &amp;quot;Transform view&amp;quot; is the default mode, used to pan, zoom and rotate the camera in the 3D viewer. Individual icons in the toolbar are labeled below.&lt;br /&gt;
&lt;br /&gt;
[[image:AppToolbarMap.png]]&lt;br /&gt;
&lt;br /&gt;
The Windows-&amp;gt;Toolbars submenu allows showing/hiding parts of this toolbar, including the Load/Save toolbar, the undo/redo toolbar, the layout configuration, and the mouse mode toolbar.&lt;br /&gt;
&lt;br /&gt;
== Module GUI Panel ==&lt;br /&gt;
===='''Conventions and window position:'''==== &lt;br /&gt;
By default, the Module GUI panel is located on the left of the application window. The panel that contains the Module GUI, Slices Control GUI and 3D Viewer Control GUI (both described below) can be moved to the right side also by selecting that option from the layout menu on the toolbar, if that working configuration is found to be more convenient. Each Slicer module populates the Module GUI panel with its interface; all modules have a Help &amp;amp; Acknowledgement frame that presents brief help text and pointers to additional information, and appropriate acknowledgement for the work as shown in the figure below. &lt;br /&gt;
&lt;br /&gt;
===='''Collapsing and expanding frames:'''==== &lt;br /&gt;
Each module GUI contains its functionality inside collapsing and expanding frames, also shown below, to minimize the need to scroll among individual blocks of functionality within a module. The frames can be collapsed or expanded by clicking in the title frame. The Slices Control and 3D Viewer Control GUI panels also can be collapsed to make more space for a module GUI. &lt;br /&gt;
&lt;br /&gt;
[[image:ModuleGUIPanel.png]]&lt;br /&gt;
&lt;br /&gt;
== Slice Viewer Control Panel ==&lt;br /&gt;
The Slice Viewer Control Panel allows configuration of all Slice GUIs at once. The functionality represented by icons in Slicer Version 3.2 is described below:&lt;br /&gt;
&lt;br /&gt;
[[image:SCGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
== 3D Viewer Control Panel ==&lt;br /&gt;
&lt;br /&gt;
The 3D Viewer Control Panel provides many options for configuring the 3D viewer. The left-most panel allows the view to be oriented along any of the principle axes. Axes highlight on mouse-over. The functionality included in the panel represented by icons and checkboxes is described in the diagram below. Finally, the right most viewer duals as a birds-eye-view display of the entire scene, or a slice magnifier window when the mouse moves over any of the slice windows.&lt;br /&gt;
&lt;br /&gt;
[[image:VCGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
==== Stereoscopic and Kinetic Depth ====&lt;br /&gt;
The 3D Viewer provides a number of options for assessing depth and layout in complicated scenes. The stereo viewing pull-down menu, labeled &amp;quot;M&amp;quot; in the diagram above, provides several stereo viewing options, and the view rock (labeled &amp;quot;O&amp;quot;) and view spin (labeled &amp;quot;N&amp;quot;) animate the scene to help clarify feature shape, depth and layout.&lt;br /&gt;
&lt;br /&gt;
==== Scene Snapshots====&lt;br /&gt;
Scene snapshots provide a way to record particular compositions of a scene. These compositions are saved with the scene and can be restored for later inspection. Among the things recorded in each snapshot are: &lt;br /&gt;
* Model visibility,&lt;br /&gt;
* Volume display threshold, window and level settings, &lt;br /&gt;
* Slice visibility in the 3D view.&lt;br /&gt;
&lt;br /&gt;
To create or restore a scene snapshot:&lt;br /&gt;
* Click on the camera icon (labeled &amp;quot;H&amp;quot; in the diagram below) to record a scenesnapshot. &lt;br /&gt;
* Use the pull down menu (labeled &amp;quot;L&amp;quot; in the diagram below) to select from a list of existing snapshots. &lt;br /&gt;
* Click on the arrow icon to restore the snapshot.&lt;br /&gt;
* You can also click on the trashcan icon to delete the snapshot.&lt;br /&gt;
&lt;br /&gt;
[[image:SceneSnapshots.png]]&lt;br /&gt;
&lt;br /&gt;
== Main 3D Viewer ==&lt;br /&gt;
&lt;br /&gt;
== Slice Viewers &amp;amp; Controllers ==&lt;br /&gt;
&lt;br /&gt;
====Slice orientation and Oblique reformats====&lt;br /&gt;
On each viewer, there is a menu button in the upper left of the control pane that usually says &amp;quot;axial&amp;quot;, &amp;quot;coronal&amp;quot;, or &amp;quot;sagittal&amp;quot;.  There is a forth option that one can select from the button which is &amp;quot;reformat&amp;quot;. Slice viewers can be used to specify oblique reformats using the 'Reformat' orientation (instead of axial, coronal, sagittal) and CTRL-Right-Button-Move (subject to change).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:SliceGUIMap.png]] [[image:SliceGUIMoreMap.png]]&lt;br /&gt;
&lt;br /&gt;
== Window and layout configurations ==&lt;br /&gt;
&lt;br /&gt;
[[image:AppGUIBasicConfigure.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:AppLayouts.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Application Hot-keys (keyboard accelerators) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Key(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Action bound to key(s)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+O'''&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Load a new scene (clears existing scene)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+A''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Import a scene (does not clear existing scene)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+W''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Close a scene&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+H ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Set the current module to be the &amp;quot;home&amp;quot; module -- the module that's exposed when Slicer starts up.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Z ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Undo the last undoable action&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Y ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Redo the last redoable action&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Space-key ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Toggles the display of Slicer's Edit Box.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+P ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Display the Python console&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+L ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Create a new fiducial list.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Slice Viewer Hot-keys (keyboard accelerators) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Key(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Action bound to key(s)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''` (back-tick key)'''&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Navigate to next fiducial in the active Slice Viewer, or in all viewers if they are linked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Navigate to next fiducial in all Slice Viewers, independent of their linked state&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Shift+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Navigate to the previous fiducial in the active Slice Viewer, or in all viewers if they are linked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Shift+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Navigate to the previous fiducial in all Slice Viewers, independent of their linked state&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''p-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Place a new fiducial in the active Slice Viewer(adds to the current fiducial list, or creates a list if there are none)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''o-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Turn on the Slice Plane reformat widget in the active Slice Viewer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''v-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Toggles the slice plane visibility in the main 3D Viewer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''r-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Fits the slice view to the volume extents in the active Slice Viewer, or in all viewers if they are linked (the first non-none volume will be used in order of Background, Foreground and Label layers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''b-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Decrement slice in the active Slice Viewer (left or down) by one unit of background pixel spacing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''f-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Increment slice in the active Slice Viewer (right or up) by one unit of backgroun dpixel spacing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Backspace-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | When the mouse is hovering over a fiducial in the Slice Viewer (turning it yellow), delete that fiducial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Delete-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | When the mouse is hovering over a fiducial in the Slice Viewer (turning it yellow), delete that fiducial&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error Log ==&lt;br /&gt;
&lt;br /&gt;
[[image:RaiseErrorLog.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:ErrorLog.png]]&lt;br /&gt;
&lt;br /&gt;
== Message and Progress Bar ==&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:MainApplicationGUI-Documentation&amp;diff=27602</id>
		<title>Modules:MainApplicationGUI-Documentation</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:MainApplicationGUI-Documentation&amp;diff=27602"/>
		<updated>2012-07-11T14:59:41Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Window-&amp;gt;Tcl Interactor (Hotkey = Ctrl+T): */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation|Return to Slicer Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;3&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;200px&amp;quot;&amp;gt;&lt;br /&gt;
Image:AppGUIMap.png | '''Figure A.''' Schematic of the [[ Modules:MainApplicationGUI-Documentation#Main_Application_GUI_organization | main application GUI ]]&lt;br /&gt;
Image:AppToolbarMap.png | '''Figure B.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#Application_Toolbar | Application Toolbar ]]&lt;br /&gt;
Image:SCGUIMap.png | '''Figure C.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#Slice_Viewer_Control_Panel | Controller for all Slice Viewers ]]&lt;br /&gt;
Image:VCGUIMap.png | '''Figure D.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#3D_Viewer_Control_Panel | Controller for the 3D Viewer ]]&lt;br /&gt;
image:SliceGUIMap.png | '''Figure E.''' Schematic of a [[Modules:MainApplicationGUI-Documentation#Slice_Viewers_.26_Controllers | Slice Viewer and Slice Controller]]&lt;br /&gt;
Image:SliceGUIMoreMap.png | '''Figure F.''' Schematic of [[Modules:MainApplicationGUI-Documentation#Slice_Viewers_.26_Controllers | Slice Viewer additional options ]]&lt;br /&gt;
Image:AppSettingsGUIMap.png | '''Figure G.''' Schematics of the [[Modules:MainApplicationGUI-Documentation#View-.3EApplication_Settings_Interface: | Application Settings Interface ]]&lt;br /&gt;
Image:RemoteIOGUIMap.png | '''Figure H.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#View-.3ECache_.26_RemoteIO_Manager: | Remote Data Handling Interface ]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Main Application GUI organization=&lt;br /&gt;
Slicer3's main desktop interface provides top-level access to most commonly-used features, and organizes them into logical groupings. These groups of features are presented in a number of interface panels on the GUI, as is illustrated in the basic layout below. The interface is designed to be easy to learn and remember, to ease navigation of Slicer's large (and growing) functionality, and to easily collapse and hide when you don't need to see it. Figures A through H in the gallery at the top of this page provide richer detail and will be described in sections below.&lt;br /&gt;
&lt;br /&gt;
[[image:SlicerGUIIntro.png ]]&lt;br /&gt;
&lt;br /&gt;
As shown above, the logical groupings of Slicer's interface elements include:&lt;br /&gt;
* The Application Menubar&lt;br /&gt;
* The Application Toolbar&lt;br /&gt;
* The Main GUI Panel, which consists of:&lt;br /&gt;
** Slicer's Logo Panel&lt;br /&gt;
** The Module GUI Panel&lt;br /&gt;
** The Slice Viewer Controls&lt;br /&gt;
** The 3D Viewer Controls&lt;br /&gt;
* The 3D Viewer&lt;br /&gt;
* Three Main Slice Viewers (Red, Yellow, and Green)and additional Slice Viewers&lt;br /&gt;
* The Message Bar and Progress Gauge&lt;br /&gt;
* And the Error Log Button&lt;br /&gt;
&lt;br /&gt;
An overview of the functionality provided in each of these interface elements is provided below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Application Menubar ==&lt;br /&gt;
The Application menubar is at the very top of Slicer3's main window, as noted above and in Figure A. Its menus and functionality are briefly listed below.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
===='''File-&amp;gt;Load Scene:'''==== &lt;br /&gt;
This command raises a file browser (shown below). Slicer's file browser has a 'favorites' icon that allows you to save often-visited directories on the browser's left panel. Other features, including icons that allow you to navigate your browsing history, pop up a level in the directory structure (or folder hierarchy) and create new folders. To load a scene, navigate to a file of the appropriate format (.mrml, .xcat (XCEDE catalog file), or .xml (Slicer2 scene file) and select it for loading into Slicer. The command first clears any existing scene in Slicer and resets the application state.&lt;br /&gt;
&lt;br /&gt;
[[image:FileBrowser.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Import Scene:'''==== &lt;br /&gt;
This command raises a file browser to that you can navigate to a scene file and select it to be added to the existing Slicer scene. (The existing scene is not cleared).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Add Data:'''==== &lt;br /&gt;
This command raises an &amp;quot;Add Data&amp;quot; widget (shown below) that allows you to select individual datasets to add to the existing scene. It exposes the following functionality:&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Add Directory&amp;quot; button adds all files within the selected directory to the file list.&lt;br /&gt;
* The &amp;quot;Add File(s)&amp;quot; button adds all selected files to the file list.&lt;br /&gt;
* The array of buttons across the top allow you to select and deselect files in the file list, remove selected files from the list, or describe how files should be loaded.&lt;br /&gt;
* The &amp;quot;Apply&amp;quot; button loads all datasets in the list, and&lt;br /&gt;
* The &amp;quot;Cancel&amp;quot; button aborts the entire load.&lt;br /&gt;
&lt;br /&gt;
[[image:AppAddData.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Add Volume:'''==== &lt;br /&gt;
This command raises an &amp;quot;Add Volume&amp;quot; widget (shown below) that allows you to select a volumetric dataset to add to the existing scene. The &amp;quot;Volume Options&amp;quot; panel can be used to clarify how a selected dataset should be loaded and displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:AppAddVolume.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Save:'''==== &lt;br /&gt;
This command displays the &amp;quot;Save Data&amp;quot; widget, which offers many options for saving a scene and/or individual datasets. The widget includes a &amp;quot;Save Scene&amp;quot; panel and a &amp;quot;Save Data&amp;quot; panel beneath it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Specifying a scene file to save:''' The ''Scene File'' button raises a file browser from which a file can be selected or a new scene file can be specified. If a scene has already been loaded from a MRML file, then its filename is presented as the default choice. To save the scene into a new MRML file, first select the directory/folder and then provide a file name. The ''Save Scene'' checkbox just below must be selected in order to save the scene file; otherwise, only selected datasets will be saved. &lt;br /&gt;
&lt;br /&gt;
'''Indicating new and unsaved datasets:''' When the panel is first displayed, all datasets which have been newly created or modified since the scene was saved are checked by default in the &amp;quot;Save Data&amp;quot; panel's ''Save'' column. Any datasets in the scene can be checked/unchecked for saving/not saving using the checkboxes provided in this column. The ''Save All'' and ''Save None'' buttons check or uncheck all listed datasets, respectively. Any dataset's filepath and filename may be edited to save the dataset in a location different from that specified. To save an individual model/volume, first select it for storing and THEN select the directory/folder.&lt;br /&gt;
&lt;br /&gt;
'''Converting to other data formats:''' Any dataset can be converted to a different (supported) format by editing the filename extension. Click at the end of the filepath/name string and edit. (nrrd is for nrrd files).&lt;br /&gt;
&lt;br /&gt;
'''Supported formats:''' Formats that can be saved include (list here).&lt;br /&gt;
&lt;br /&gt;
'''Saving data:''' Finally, selecting the ''Save'' button will launch the scene/data saving process, and ''Cancel'' will abort it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:AppSaveData.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Close Scene:'''==== &lt;br /&gt;
This command closes the current scene and resets the application state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Exit'''==== &lt;br /&gt;
This command exits Slicer.&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Set Home'''==== This command sets a user's 'home module', which is the module displayed by default each time the Slicer application is started. The home module is saved in the Application Registry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Undo'''==== &lt;br /&gt;
This command undoes the history of undoable commands, from last to first. &lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Redo'''==== &lt;br /&gt;
This command re-does the history of commands most recently undone, from last to first.&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Edit Box'''==== &lt;br /&gt;
This command raises the Edit-box, a lightweight image editing tool.&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;New Fiducial List'''==== &lt;br /&gt;
This command creates a new list of fiducial points.&lt;br /&gt;
&lt;br /&gt;
===View menu ===&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Module Search:'''====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Cache &amp;amp; RemoteIO Manager:'''==== &lt;br /&gt;
The Cache and Remote Data Handling interface provides status and information about all remote data transfers, and allows some control over the local cache. Remote I/O and Cache preferences can also be set in the Application Settings Interface, described next. Whether you set preferences here or there, they are saved in the Application Registry so that your settings are preserved each time you start up the Slicer Application.&lt;br /&gt;
&lt;br /&gt;
The pop-up interface is shown below. Checkbuttons at the top left provide choices about download and caching behavior, and the cache directory, cache size limit, and cache free space buffer can be set at the interface bottom. Icon buttons at the top right allow global operations on all data transfers (cache clearing and transfer cancellation) and display updates (transfer panel cleanup and cache report refreshing). Each data transfer is listed in the transfer panel along with some information about its type and status. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' In version 3.2 of Slicer, downloads of datasets represented by multiple data files (such as DICOM) or separate data and header files (like Analyze) are '''not yet supported'''.&lt;br /&gt;
&lt;br /&gt;
[[image:RemoteIOGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
Below, all of the Cache &amp;amp; Remote Data I/O Manager icons are listed and described:&lt;br /&gt;
&lt;br /&gt;
[[image:RemoteIOIcons.png]]&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Application Settings Interface:'''==== &lt;br /&gt;
The Application Settings interface provides options for saving many of Slicer's Interface and Remote Data Handling options to the Application Registry, so they are preserved across sessions. The first time you start the application, it is recommended that you browse these settings and select options that you prefer. Some of the options provided in the interface are listed below:&lt;br /&gt;
&lt;br /&gt;
* ''Slicer Settings'' allow you to specify whether Slicer should confirm on delete, and set the location for other applications that Slicer may need to use (Firefox, Zip, ''etc.''). &lt;br /&gt;
* ''Font Settings'' options allows you to choose among several fonts and relative font sizes to be displayed in the GUI.&lt;br /&gt;
* ''Module Settings'' options allow you to select a Temporary directory, a home module (that will be displayed each time Slicer starts up) and whether Slicer should include loadable and command-line modules on startup.&lt;br /&gt;
* ''Remote Data Handling Settings'' options allow the specification of Cache and Remote Data I/O settings which are also configurable from the Cache and Remote Data I/O Manager described above.&lt;br /&gt;
&lt;br /&gt;
[[image:AppSettingsGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
===Window menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Hide/Show Main Panel (Hotkey = F5):'''==== &lt;br /&gt;
This command collapses or expands the GUI panel and allows Slicer's viewers to occupy the entire application window, as shown below in Application Layouts figure C.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Hide/Show Bottom Panel (Hotkey = F6):'''==== &lt;br /&gt;
This command collapses or expands the bottom split-panel in which Slice viewers are conventionally displayed, allowing the 3D view to occupy the vertical extent of the application window. The behavior of this command will vary, and may not be appropriate, depending on the selected layout (-- available layouts are described below.)&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Toolbars:'''==== &lt;br /&gt;
This command allows hiding or exposing sub-toolbars in the application toolbars, including the Load/Save toolbar, the undo/redo toolbar, the layout configuration, and the mouse mode toolbar.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Log Window (Hotkey = Ctrl+Alt+e):'''==== &lt;br /&gt;
This command raises the error log display.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Tcl Interactor (Hotkey = Ctrl+t):'''==== &lt;br /&gt;
This command raises the Tcl interactor for scripted interaction with Slicer data:&lt;br /&gt;
&lt;br /&gt;
[[image:TclInteractor.png]]&lt;br /&gt;
&lt;br /&gt;
===Help menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Help-&amp;gt;Browse Tutorials:'''==== &lt;br /&gt;
This functionality is being developed.&lt;br /&gt;
&lt;br /&gt;
===='''Help-&amp;gt;About Slicer3:'''==== &lt;br /&gt;
Provides a description of the Slicer3 effort and its support.&lt;br /&gt;
&lt;br /&gt;
===Feedback menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Report a Bug:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that any bug you encounter can quickly and easily be reported. Be sure to select the appropriate category for the bug and estimate its severity. It's recommended that you provide as much information as you can so that the bug can be reproduced by the development team.&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Report a Usability Issue:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that any usability issue you encounter can quickly be captured. Be sure to select the &amp;quot;usability&amp;quot; category for the issue and estimate its severity. We request that you describe the way in which the usability issue is impacting your work so that the usability and development team can address the issue appropriately. Suggestions and ideas are welcome!&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Make a Feature Request:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that community feature requests can easily be collected. We request that you clearly mark your submission as a &amp;quot;feature request&amp;quot; in the description field of the form.&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Community:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.slicer.org/slicerWiki/index.php/Slicer3:VisualBlog where you can post screenshots of interesting ways you are using the Slicer3 software package in your research and share them with the Slicer community.&lt;br /&gt;
&lt;br /&gt;
== Application Toolbar ==&lt;br /&gt;
&lt;br /&gt;
Slicer's toolbar provides quick access to centralized load / save functionality, options for searching for and navigating among modules, undo/redo capability, ability to select different application layouts and change among mouse modes. Using and indicating mouse modes in Slicer is still under development, so this part of the toolbar will likely change in future releases. For now, &amp;quot;Mouse place&amp;quot; is used to create new objects, like fiducial points. &amp;quot;Mouse pick&amp;quot; is intended for selecting objects. &amp;quot;Transform view&amp;quot; is the default mode, used to pan, zoom and rotate the camera in the 3D viewer. Individual icons in the toolbar are labeled below.&lt;br /&gt;
&lt;br /&gt;
[[image:AppToolbarMap.png]]&lt;br /&gt;
&lt;br /&gt;
The Windows-&amp;gt;Toolbars submenu allows showing/hiding parts of this toolbar, including the Load/Save toolbar, the undo/redo toolbar, the layout configuration, and the mouse mode toolbar.&lt;br /&gt;
&lt;br /&gt;
== Module GUI Panel ==&lt;br /&gt;
===='''Conventions and window position:'''==== &lt;br /&gt;
By default, the Module GUI panel is located on the left of the application window. The panel that contains the Module GUI, Slices Control GUI and 3D Viewer Control GUI (both described below) can be moved to the right side also by selecting that option from the layout menu on the toolbar, if that working configuration is found to be more convenient. Each Slicer module populates the Module GUI panel with its interface; all modules have a Help &amp;amp; Acknowledgement frame that presents brief help text and pointers to additional information, and appropriate acknowledgement for the work as shown in the figure below. &lt;br /&gt;
&lt;br /&gt;
===='''Collapsing and expanding frames:'''==== &lt;br /&gt;
Each module GUI contains its functionality inside collapsing and expanding frames, also shown below, to minimize the need to scroll among individual blocks of functionality within a module. The frames can be collapsed or expanded by clicking in the title frame. The Slices Control and 3D Viewer Control GUI panels also can be collapsed to make more space for a module GUI. &lt;br /&gt;
&lt;br /&gt;
[[image:ModuleGUIPanel.png]]&lt;br /&gt;
&lt;br /&gt;
== Slice Viewer Control Panel ==&lt;br /&gt;
The Slice Viewer Control Panel allows configuration of all Slice GUIs at once. The functionality represented by icons in Slicer Version 3.2 is described below:&lt;br /&gt;
&lt;br /&gt;
[[image:SCGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
== 3D Viewer Control Panel ==&lt;br /&gt;
&lt;br /&gt;
The 3D Viewer Control Panel provides many options for configuring the 3D viewer. The left-most panel allows the view to be oriented along any of the principle axes. Axes highlight on mouse-over. The functionality included in the panel represented by icons and checkboxes is described in the diagram below. Finally, the right most viewer duals as a birds-eye-view display of the entire scene, or a slice magnifier window when the mouse moves over any of the slice windows.&lt;br /&gt;
&lt;br /&gt;
[[image:VCGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
==== Stereoscopic and Kinetic Depth ====&lt;br /&gt;
The 3D Viewer provides a number of options for assessing depth and layout in complicated scenes. The stereo viewing pull-down menu, labeled &amp;quot;M&amp;quot; in the diagram above, provides several stereo viewing options, and the view rock (labeled &amp;quot;O&amp;quot;) and view spin (labeled &amp;quot;N&amp;quot;) animate the scene to help clarify feature shape, depth and layout.&lt;br /&gt;
&lt;br /&gt;
==== Scene Snapshots====&lt;br /&gt;
Scene snapshots provide a way to record particular compositions of a scene. These compositions are saved with the scene and can be restored for later inspection. Among the things recorded in each snapshot are: &lt;br /&gt;
* Model visibility,&lt;br /&gt;
* Volume display threshold, window and level settings, &lt;br /&gt;
* Slice visibility in the 3D view.&lt;br /&gt;
&lt;br /&gt;
To create or restore a scene snapshot:&lt;br /&gt;
* Click on the camera icon (labeled &amp;quot;H&amp;quot; in the diagram below) to record a scenesnapshot. &lt;br /&gt;
* Use the pull down menu (labeled &amp;quot;L&amp;quot; in the diagram below) to select from a list of existing snapshots. &lt;br /&gt;
* Click on the arrow icon to restore the snapshot.&lt;br /&gt;
* You can also click on the trashcan icon to delete the snapshot.&lt;br /&gt;
&lt;br /&gt;
[[image:SceneSnapshots.png]]&lt;br /&gt;
&lt;br /&gt;
== Main 3D Viewer ==&lt;br /&gt;
&lt;br /&gt;
== Slice Viewers &amp;amp; Controllers ==&lt;br /&gt;
&lt;br /&gt;
====Slice orientation and Oblique reformats====&lt;br /&gt;
On each viewer, there is a menu button in the upper left of the control pane that usually says &amp;quot;axial&amp;quot;, &amp;quot;coronal&amp;quot;, or &amp;quot;sagittal&amp;quot;.  There is a forth option that one can select from the button which is &amp;quot;reformat&amp;quot;. Slice viewers can be used to specify oblique reformats using the 'Reformat' orientation (instead of axial, coronal, sagittal) and CTRL-Right-Button-Move (subject to change).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:SliceGUIMap.png]] [[image:SliceGUIMoreMap.png]]&lt;br /&gt;
&lt;br /&gt;
== Window and layout configurations ==&lt;br /&gt;
&lt;br /&gt;
[[image:AppGUIBasicConfigure.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:AppLayouts.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Application Hot-keys (keyboard accelerators) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Key(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Action bound to key(s)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+O'''&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Load a new scene (clears existing scene)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+A''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Import a scene (does not clear existing scene)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+W''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Close a scene&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+H ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Set the current module to be the &amp;quot;home&amp;quot; module -- the module that's exposed when Slicer starts up.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Z ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Undo the last undoable action&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Y ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Redo the last redoable action&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Space-key ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Toggles the display of Slicer's Edit Box.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+P ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Display the Python console&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+L ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Create a new fiducial list.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Slice Viewer Hot-keys (keyboard accelerators) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Key(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Action bound to key(s)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''` (back-tick key)'''&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Navigate to next fiducial in the active Slice Viewer, or in all viewers if they are linked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Navigate to next fiducial in all Slice Viewers, independent of their linked state&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Shift+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Navigate to the previous fiducial in the active Slice Viewer, or in all viewers if they are linked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Shift+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Navigate to the previous fiducial in all Slice Viewers, independent of their linked state&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''p-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Place a new fiducial in the active Slice Viewer(adds to the current fiducial list, or creates a list if there are none)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''o-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Turn on the Slice Plane reformat widget in the active Slice Viewer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''v-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Toggles the slice plane visibility in the main 3D Viewer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''r-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Fits the slice view to the volume extents in the active Slice Viewer, or in all viewers if they are linked (the first non-none volume will be used in order of Background, Foreground and Label layers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''b-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Decrement slice in the active Slice Viewer (left or down) by one unit of background pixel spacing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''f-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Increment slice in the active Slice Viewer (right or up) by one unit of backgroun dpixel spacing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Backspace-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | When the mouse is hovering over a fiducial in the Slice Viewer (turning it yellow), delete that fiducial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Delete-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | When the mouse is hovering over a fiducial in the Slice Viewer (turning it yellow), delete that fiducial&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error Log ==&lt;br /&gt;
&lt;br /&gt;
[[image:RaiseErrorLog.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:ErrorLog.png]]&lt;br /&gt;
&lt;br /&gt;
== Message and Progress Bar ==&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:MainApplicationGUI-Documentation&amp;diff=27601</id>
		<title>Modules:MainApplicationGUI-Documentation</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:MainApplicationGUI-Documentation&amp;diff=27601"/>
		<updated>2012-07-11T14:59:30Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Window-&amp;gt;Log Window (Hotkey = Ctrl+Alt+E): */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation|Return to Slicer Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;3&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;200px&amp;quot;&amp;gt;&lt;br /&gt;
Image:AppGUIMap.png | '''Figure A.''' Schematic of the [[ Modules:MainApplicationGUI-Documentation#Main_Application_GUI_organization | main application GUI ]]&lt;br /&gt;
Image:AppToolbarMap.png | '''Figure B.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#Application_Toolbar | Application Toolbar ]]&lt;br /&gt;
Image:SCGUIMap.png | '''Figure C.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#Slice_Viewer_Control_Panel | Controller for all Slice Viewers ]]&lt;br /&gt;
Image:VCGUIMap.png | '''Figure D.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#3D_Viewer_Control_Panel | Controller for the 3D Viewer ]]&lt;br /&gt;
image:SliceGUIMap.png | '''Figure E.''' Schematic of a [[Modules:MainApplicationGUI-Documentation#Slice_Viewers_.26_Controllers | Slice Viewer and Slice Controller]]&lt;br /&gt;
Image:SliceGUIMoreMap.png | '''Figure F.''' Schematic of [[Modules:MainApplicationGUI-Documentation#Slice_Viewers_.26_Controllers | Slice Viewer additional options ]]&lt;br /&gt;
Image:AppSettingsGUIMap.png | '''Figure G.''' Schematics of the [[Modules:MainApplicationGUI-Documentation#View-.3EApplication_Settings_Interface: | Application Settings Interface ]]&lt;br /&gt;
Image:RemoteIOGUIMap.png | '''Figure H.''' Schematic of the [[Modules:MainApplicationGUI-Documentation#View-.3ECache_.26_RemoteIO_Manager: | Remote Data Handling Interface ]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Main Application GUI organization=&lt;br /&gt;
Slicer3's main desktop interface provides top-level access to most commonly-used features, and organizes them into logical groupings. These groups of features are presented in a number of interface panels on the GUI, as is illustrated in the basic layout below. The interface is designed to be easy to learn and remember, to ease navigation of Slicer's large (and growing) functionality, and to easily collapse and hide when you don't need to see it. Figures A through H in the gallery at the top of this page provide richer detail and will be described in sections below.&lt;br /&gt;
&lt;br /&gt;
[[image:SlicerGUIIntro.png ]]&lt;br /&gt;
&lt;br /&gt;
As shown above, the logical groupings of Slicer's interface elements include:&lt;br /&gt;
* The Application Menubar&lt;br /&gt;
* The Application Toolbar&lt;br /&gt;
* The Main GUI Panel, which consists of:&lt;br /&gt;
** Slicer's Logo Panel&lt;br /&gt;
** The Module GUI Panel&lt;br /&gt;
** The Slice Viewer Controls&lt;br /&gt;
** The 3D Viewer Controls&lt;br /&gt;
* The 3D Viewer&lt;br /&gt;
* Three Main Slice Viewers (Red, Yellow, and Green)and additional Slice Viewers&lt;br /&gt;
* The Message Bar and Progress Gauge&lt;br /&gt;
* And the Error Log Button&lt;br /&gt;
&lt;br /&gt;
An overview of the functionality provided in each of these interface elements is provided below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Application Menubar ==&lt;br /&gt;
The Application menubar is at the very top of Slicer3's main window, as noted above and in Figure A. Its menus and functionality are briefly listed below.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
===='''File-&amp;gt;Load Scene:'''==== &lt;br /&gt;
This command raises a file browser (shown below). Slicer's file browser has a 'favorites' icon that allows you to save often-visited directories on the browser's left panel. Other features, including icons that allow you to navigate your browsing history, pop up a level in the directory structure (or folder hierarchy) and create new folders. To load a scene, navigate to a file of the appropriate format (.mrml, .xcat (XCEDE catalog file), or .xml (Slicer2 scene file) and select it for loading into Slicer. The command first clears any existing scene in Slicer and resets the application state.&lt;br /&gt;
&lt;br /&gt;
[[image:FileBrowser.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Import Scene:'''==== &lt;br /&gt;
This command raises a file browser to that you can navigate to a scene file and select it to be added to the existing Slicer scene. (The existing scene is not cleared).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Add Data:'''==== &lt;br /&gt;
This command raises an &amp;quot;Add Data&amp;quot; widget (shown below) that allows you to select individual datasets to add to the existing scene. It exposes the following functionality:&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Add Directory&amp;quot; button adds all files within the selected directory to the file list.&lt;br /&gt;
* The &amp;quot;Add File(s)&amp;quot; button adds all selected files to the file list.&lt;br /&gt;
* The array of buttons across the top allow you to select and deselect files in the file list, remove selected files from the list, or describe how files should be loaded.&lt;br /&gt;
* The &amp;quot;Apply&amp;quot; button loads all datasets in the list, and&lt;br /&gt;
* The &amp;quot;Cancel&amp;quot; button aborts the entire load.&lt;br /&gt;
&lt;br /&gt;
[[image:AppAddData.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Add Volume:'''==== &lt;br /&gt;
This command raises an &amp;quot;Add Volume&amp;quot; widget (shown below) that allows you to select a volumetric dataset to add to the existing scene. The &amp;quot;Volume Options&amp;quot; panel can be used to clarify how a selected dataset should be loaded and displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:AppAddVolume.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Save:'''==== &lt;br /&gt;
This command displays the &amp;quot;Save Data&amp;quot; widget, which offers many options for saving a scene and/or individual datasets. The widget includes a &amp;quot;Save Scene&amp;quot; panel and a &amp;quot;Save Data&amp;quot; panel beneath it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Specifying a scene file to save:''' The ''Scene File'' button raises a file browser from which a file can be selected or a new scene file can be specified. If a scene has already been loaded from a MRML file, then its filename is presented as the default choice. To save the scene into a new MRML file, first select the directory/folder and then provide a file name. The ''Save Scene'' checkbox just below must be selected in order to save the scene file; otherwise, only selected datasets will be saved. &lt;br /&gt;
&lt;br /&gt;
'''Indicating new and unsaved datasets:''' When the panel is first displayed, all datasets which have been newly created or modified since the scene was saved are checked by default in the &amp;quot;Save Data&amp;quot; panel's ''Save'' column. Any datasets in the scene can be checked/unchecked for saving/not saving using the checkboxes provided in this column. The ''Save All'' and ''Save None'' buttons check or uncheck all listed datasets, respectively. Any dataset's filepath and filename may be edited to save the dataset in a location different from that specified. To save an individual model/volume, first select it for storing and THEN select the directory/folder.&lt;br /&gt;
&lt;br /&gt;
'''Converting to other data formats:''' Any dataset can be converted to a different (supported) format by editing the filename extension. Click at the end of the filepath/name string and edit. (nrrd is for nrrd files).&lt;br /&gt;
&lt;br /&gt;
'''Supported formats:''' Formats that can be saved include (list here).&lt;br /&gt;
&lt;br /&gt;
'''Saving data:''' Finally, selecting the ''Save'' button will launch the scene/data saving process, and ''Cancel'' will abort it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:AppSaveData.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Close Scene:'''==== &lt;br /&gt;
This command closes the current scene and resets the application state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''File-&amp;gt;Exit'''==== &lt;br /&gt;
This command exits Slicer.&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Set Home'''==== This command sets a user's 'home module', which is the module displayed by default each time the Slicer application is started. The home module is saved in the Application Registry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Undo'''==== &lt;br /&gt;
This command undoes the history of undoable commands, from last to first. &lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Redo'''==== &lt;br /&gt;
This command re-does the history of commands most recently undone, from last to first.&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;Edit Box'''==== &lt;br /&gt;
This command raises the Edit-box, a lightweight image editing tool.&lt;br /&gt;
&lt;br /&gt;
===='''Edit-&amp;gt;New Fiducial List'''==== &lt;br /&gt;
This command creates a new list of fiducial points.&lt;br /&gt;
&lt;br /&gt;
===View menu ===&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Module Search:'''====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Cache &amp;amp; RemoteIO Manager:'''==== &lt;br /&gt;
The Cache and Remote Data Handling interface provides status and information about all remote data transfers, and allows some control over the local cache. Remote I/O and Cache preferences can also be set in the Application Settings Interface, described next. Whether you set preferences here or there, they are saved in the Application Registry so that your settings are preserved each time you start up the Slicer Application.&lt;br /&gt;
&lt;br /&gt;
The pop-up interface is shown below. Checkbuttons at the top left provide choices about download and caching behavior, and the cache directory, cache size limit, and cache free space buffer can be set at the interface bottom. Icon buttons at the top right allow global operations on all data transfers (cache clearing and transfer cancellation) and display updates (transfer panel cleanup and cache report refreshing). Each data transfer is listed in the transfer panel along with some information about its type and status. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' In version 3.2 of Slicer, downloads of datasets represented by multiple data files (such as DICOM) or separate data and header files (like Analyze) are '''not yet supported'''.&lt;br /&gt;
&lt;br /&gt;
[[image:RemoteIOGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
Below, all of the Cache &amp;amp; Remote Data I/O Manager icons are listed and described:&lt;br /&gt;
&lt;br /&gt;
[[image:RemoteIOIcons.png]]&lt;br /&gt;
&lt;br /&gt;
===='''View-&amp;gt;Application Settings Interface:'''==== &lt;br /&gt;
The Application Settings interface provides options for saving many of Slicer's Interface and Remote Data Handling options to the Application Registry, so they are preserved across sessions. The first time you start the application, it is recommended that you browse these settings and select options that you prefer. Some of the options provided in the interface are listed below:&lt;br /&gt;
&lt;br /&gt;
* ''Slicer Settings'' allow you to specify whether Slicer should confirm on delete, and set the location for other applications that Slicer may need to use (Firefox, Zip, ''etc.''). &lt;br /&gt;
* ''Font Settings'' options allows you to choose among several fonts and relative font sizes to be displayed in the GUI.&lt;br /&gt;
* ''Module Settings'' options allow you to select a Temporary directory, a home module (that will be displayed each time Slicer starts up) and whether Slicer should include loadable and command-line modules on startup.&lt;br /&gt;
* ''Remote Data Handling Settings'' options allow the specification of Cache and Remote Data I/O settings which are also configurable from the Cache and Remote Data I/O Manager described above.&lt;br /&gt;
&lt;br /&gt;
[[image:AppSettingsGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
===Window menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Hide/Show Main Panel (Hotkey = F5):'''==== &lt;br /&gt;
This command collapses or expands the GUI panel and allows Slicer's viewers to occupy the entire application window, as shown below in Application Layouts figure C.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Hide/Show Bottom Panel (Hotkey = F6):'''==== &lt;br /&gt;
This command collapses or expands the bottom split-panel in which Slice viewers are conventionally displayed, allowing the 3D view to occupy the vertical extent of the application window. The behavior of this command will vary, and may not be appropriate, depending on the selected layout (-- available layouts are described below.)&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Toolbars:'''==== &lt;br /&gt;
This command allows hiding or exposing sub-toolbars in the application toolbars, including the Load/Save toolbar, the undo/redo toolbar, the layout configuration, and the mouse mode toolbar.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Log Window (Hotkey = Ctrl+Alt+e):'''==== &lt;br /&gt;
This command raises the error log display.&lt;br /&gt;
&lt;br /&gt;
===='''Window-&amp;gt;Tcl Interactor (Hotkey = Ctrl+T):'''==== &lt;br /&gt;
This command raises the Tcl interactor for scripted interaction with Slicer data:&lt;br /&gt;
&lt;br /&gt;
[[image:TclInteractor.png]]&lt;br /&gt;
&lt;br /&gt;
===Help menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Help-&amp;gt;Browse Tutorials:'''==== &lt;br /&gt;
This functionality is being developed.&lt;br /&gt;
&lt;br /&gt;
===='''Help-&amp;gt;About Slicer3:'''==== &lt;br /&gt;
Provides a description of the Slicer3 effort and its support.&lt;br /&gt;
&lt;br /&gt;
===Feedback menu ===&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Report a Bug:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that any bug you encounter can quickly and easily be reported. Be sure to select the appropriate category for the bug and estimate its severity. It's recommended that you provide as much information as you can so that the bug can be reproduced by the development team.&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Report a Usability Issue:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that any usability issue you encounter can quickly be captured. Be sure to select the &amp;quot;usability&amp;quot; category for the issue and estimate its severity. We request that you describe the way in which the usability issue is impacting your work so that the usability and development team can address the issue appropriately. Suggestions and ideas are welcome!&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Make a Feature Request:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.na-mic.org/Bug/my_view_page.php so that community feature requests can easily be collected. We request that you clearly mark your submission as a &amp;quot;feature request&amp;quot; in the description field of the form.&lt;br /&gt;
&lt;br /&gt;
===='''Feedback-&amp;gt;Community:'''==== &lt;br /&gt;
This command opens your Firefox web browser to http://www.slicer.org/slicerWiki/index.php/Slicer3:VisualBlog where you can post screenshots of interesting ways you are using the Slicer3 software package in your research and share them with the Slicer community.&lt;br /&gt;
&lt;br /&gt;
== Application Toolbar ==&lt;br /&gt;
&lt;br /&gt;
Slicer's toolbar provides quick access to centralized load / save functionality, options for searching for and navigating among modules, undo/redo capability, ability to select different application layouts and change among mouse modes. Using and indicating mouse modes in Slicer is still under development, so this part of the toolbar will likely change in future releases. For now, &amp;quot;Mouse place&amp;quot; is used to create new objects, like fiducial points. &amp;quot;Mouse pick&amp;quot; is intended for selecting objects. &amp;quot;Transform view&amp;quot; is the default mode, used to pan, zoom and rotate the camera in the 3D viewer. Individual icons in the toolbar are labeled below.&lt;br /&gt;
&lt;br /&gt;
[[image:AppToolbarMap.png]]&lt;br /&gt;
&lt;br /&gt;
The Windows-&amp;gt;Toolbars submenu allows showing/hiding parts of this toolbar, including the Load/Save toolbar, the undo/redo toolbar, the layout configuration, and the mouse mode toolbar.&lt;br /&gt;
&lt;br /&gt;
== Module GUI Panel ==&lt;br /&gt;
===='''Conventions and window position:'''==== &lt;br /&gt;
By default, the Module GUI panel is located on the left of the application window. The panel that contains the Module GUI, Slices Control GUI and 3D Viewer Control GUI (both described below) can be moved to the right side also by selecting that option from the layout menu on the toolbar, if that working configuration is found to be more convenient. Each Slicer module populates the Module GUI panel with its interface; all modules have a Help &amp;amp; Acknowledgement frame that presents brief help text and pointers to additional information, and appropriate acknowledgement for the work as shown in the figure below. &lt;br /&gt;
&lt;br /&gt;
===='''Collapsing and expanding frames:'''==== &lt;br /&gt;
Each module GUI contains its functionality inside collapsing and expanding frames, also shown below, to minimize the need to scroll among individual blocks of functionality within a module. The frames can be collapsed or expanded by clicking in the title frame. The Slices Control and 3D Viewer Control GUI panels also can be collapsed to make more space for a module GUI. &lt;br /&gt;
&lt;br /&gt;
[[image:ModuleGUIPanel.png]]&lt;br /&gt;
&lt;br /&gt;
== Slice Viewer Control Panel ==&lt;br /&gt;
The Slice Viewer Control Panel allows configuration of all Slice GUIs at once. The functionality represented by icons in Slicer Version 3.2 is described below:&lt;br /&gt;
&lt;br /&gt;
[[image:SCGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
== 3D Viewer Control Panel ==&lt;br /&gt;
&lt;br /&gt;
The 3D Viewer Control Panel provides many options for configuring the 3D viewer. The left-most panel allows the view to be oriented along any of the principle axes. Axes highlight on mouse-over. The functionality included in the panel represented by icons and checkboxes is described in the diagram below. Finally, the right most viewer duals as a birds-eye-view display of the entire scene, or a slice magnifier window when the mouse moves over any of the slice windows.&lt;br /&gt;
&lt;br /&gt;
[[image:VCGUIMap.png]]&lt;br /&gt;
&lt;br /&gt;
==== Stereoscopic and Kinetic Depth ====&lt;br /&gt;
The 3D Viewer provides a number of options for assessing depth and layout in complicated scenes. The stereo viewing pull-down menu, labeled &amp;quot;M&amp;quot; in the diagram above, provides several stereo viewing options, and the view rock (labeled &amp;quot;O&amp;quot;) and view spin (labeled &amp;quot;N&amp;quot;) animate the scene to help clarify feature shape, depth and layout.&lt;br /&gt;
&lt;br /&gt;
==== Scene Snapshots====&lt;br /&gt;
Scene snapshots provide a way to record particular compositions of a scene. These compositions are saved with the scene and can be restored for later inspection. Among the things recorded in each snapshot are: &lt;br /&gt;
* Model visibility,&lt;br /&gt;
* Volume display threshold, window and level settings, &lt;br /&gt;
* Slice visibility in the 3D view.&lt;br /&gt;
&lt;br /&gt;
To create or restore a scene snapshot:&lt;br /&gt;
* Click on the camera icon (labeled &amp;quot;H&amp;quot; in the diagram below) to record a scenesnapshot. &lt;br /&gt;
* Use the pull down menu (labeled &amp;quot;L&amp;quot; in the diagram below) to select from a list of existing snapshots. &lt;br /&gt;
* Click on the arrow icon to restore the snapshot.&lt;br /&gt;
* You can also click on the trashcan icon to delete the snapshot.&lt;br /&gt;
&lt;br /&gt;
[[image:SceneSnapshots.png]]&lt;br /&gt;
&lt;br /&gt;
== Main 3D Viewer ==&lt;br /&gt;
&lt;br /&gt;
== Slice Viewers &amp;amp; Controllers ==&lt;br /&gt;
&lt;br /&gt;
====Slice orientation and Oblique reformats====&lt;br /&gt;
On each viewer, there is a menu button in the upper left of the control pane that usually says &amp;quot;axial&amp;quot;, &amp;quot;coronal&amp;quot;, or &amp;quot;sagittal&amp;quot;.  There is a forth option that one can select from the button which is &amp;quot;reformat&amp;quot;. Slice viewers can be used to specify oblique reformats using the 'Reformat' orientation (instead of axial, coronal, sagittal) and CTRL-Right-Button-Move (subject to change).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:SliceGUIMap.png]] [[image:SliceGUIMoreMap.png]]&lt;br /&gt;
&lt;br /&gt;
== Window and layout configurations ==&lt;br /&gt;
&lt;br /&gt;
[[image:AppGUIBasicConfigure.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:AppLayouts.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Application Hot-keys (keyboard accelerators) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Key(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Action bound to key(s)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+O'''&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Load a new scene (clears existing scene)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+A''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Import a scene (does not clear existing scene)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+W''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Close a scene&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+H ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Set the current module to be the &amp;quot;home&amp;quot; module -- the module that's exposed when Slicer starts up.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Z ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Undo the last undoable action&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Y ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Redo the last redoable action&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Space-key ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Toggles the display of Slicer's Edit Box.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+P ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Display the Python console&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+L ''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Create a new fiducial list.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Slice Viewer Hot-keys (keyboard accelerators) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Key(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; |Action bound to key(s)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''` (back-tick key)'''&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Navigate to next fiducial in the active Slice Viewer, or in all viewers if they are linked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; |Navigate to next fiducial in all Slice Viewers, independent of their linked state&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Shift+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Navigate to the previous fiducial in the active Slice Viewer, or in all viewers if they are linked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Ctrl+Shift+` (back-tick key)''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Navigate to the previous fiducial in all Slice Viewers, independent of their linked state&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''p-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Place a new fiducial in the active Slice Viewer(adds to the current fiducial list, or creates a list if there are none)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''o-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Turn on the Slice Plane reformat widget in the active Slice Viewer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''v-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Toggles the slice plane visibility in the main 3D Viewer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''r-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Fits the slice view to the volume extents in the active Slice Viewer, or in all viewers if they are linked (the first non-none volume will be used in order of Background, Foreground and Label layers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''b-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Decrement slice in the active Slice Viewer (left or down) by one unit of background pixel spacing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''f-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Increment slice in the active Slice Viewer (right or up) by one unit of backgroun dpixel spacing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Backspace-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | When the mouse is hovering over a fiducial in the Slice Viewer (turning it yellow), delete that fiducial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:200px&amp;quot; | &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt; '''Delete-key''' &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | When the mouse is hovering over a fiducial in the Slice Viewer (turning it yellow), delete that fiducial&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error Log ==&lt;br /&gt;
&lt;br /&gt;
[[image:RaiseErrorLog.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:ErrorLog.png]]&lt;br /&gt;
&lt;br /&gt;
== Message and Progress Bar ==&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/WidgetWriting&amp;diff=27568</id>
		<title>Documentation/4.1/Developers/Tutorials/WidgetWriting</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/WidgetWriting&amp;diff=27568"/>
		<updated>2012-06-28T14:30:38Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Added link to Qt webpage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a custom widget in Slicer=&lt;br /&gt;
==Intro==&lt;br /&gt;
A custom widget is a specialization of another widget or a group of widgets working together. Custom widgets are usually created when you need to add new functionality to existing widgets or groups of widgets. If you simply want a collection of widgets in a special configuration it can be easily done in QtDesigner and probably doesn't require to be a custom widget. &lt;br /&gt;
&lt;br /&gt;
In the following we will assume you are familiar with Qt.&amp;lt;br&amp;gt;&lt;br /&gt;
Here are some useful links:&lt;br /&gt;
*http://doc.trolltech.com/how-to-learn-qt.html&lt;br /&gt;
*http://doc.trolltech.com/object.html&lt;br /&gt;
*http://doc.trolltech.com/properties.html&lt;br /&gt;
&lt;br /&gt;
==Before starting==&lt;br /&gt;
There are 2 locations where custom widgets can be. You first have to decide where your custom widget should go:&lt;br /&gt;
*&amp;lt;i&amp;gt;CTK&amp;lt;/i&amp;gt;: Qt and/or VTK only&lt;br /&gt;
*&amp;lt;i&amp;gt;Slicer3/Libs/qMRMLWidgets&amp;lt;/i&amp;gt;: MRML-aware widgets (Slicer3)&lt;br /&gt;
*&amp;lt;i&amp;gt;Slicer/Libs/MRML/Widgets&amp;lt;/i&amp;gt;: MRML-aware widgets (Slicer4)&lt;br /&gt;
A good practice is to split (as possible) your custom widget in 2: a QT-only widget and a MRML-aware widget where the MRML-aware widgets inherits from the Qt-only widget. An intermediate level can be added for Qt and VTK widgets.&amp;lt;br&amp;gt;&lt;br /&gt;
It is important to keep the widgets basic. If you think someone else can use your custom widget differently, or if someone would need less features than the custom widget currently have, it is probably a good idea to split the widget in 2 widgets linked with an IS-A relationship.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding style==&lt;br /&gt;
The name of the custom widgets must follow the pattern: &amp;lt;code&amp;gt;qMRML[customName][baseQtWidget]&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;[baseQtWidget]&amp;lt;/code&amp;gt; is the name of the qt widget your custom widget inherits from (i.e. &amp;lt;code&amp;gt;ComboBox&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Slider&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Dialog&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Widget&amp;lt;/code&amp;gt;...), and &amp;lt;code&amp;gt;[customName]&amp;lt;/code&amp;gt; is a descriptive name. Examples:&lt;br /&gt;
*&amp;lt;code&amp;gt;qMRMLLinearTransformSlider&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;qMRMLMatrix&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;qMRMLMatrixWidget&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
*When you create your widget, make sure you use the [http://doc.trolltech.com/4.5/properties.html Qt property system], it allow the customization of the widgets in [http://doc.trolltech.com/4.6/designer-manual.html Qt Designer].&lt;br /&gt;
&lt;br /&gt;
==Step by step==&lt;br /&gt;
*Create your widget files (.h and .cxx) in the &amp;lt;i&amp;gt;Libs/MRML/Widgets&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
**If you use a &amp;lt;i&amp;gt;.ui&amp;lt;/i&amp;gt; file, add it in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/UI&amp;lt;/i&amp;gt; directory&lt;br /&gt;
**If you use icon files, add them in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/Icons&amp;lt;/i&amp;gt; directory and update the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/qMRMLWidgets.qrc&amp;lt;/i&amp;gt; file accordingly&lt;br /&gt;
*Update the &amp;lt;i&amp;gt;Libs/MRML/Widgets/CMakeLists.txt&amp;lt;/i&amp;gt; file with your widget files.&lt;br /&gt;
** add the &amp;lt;i&amp;gt;.h&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;.cxx&amp;lt;/i&amp;gt; files in the &amp;lt;code&amp;gt;qMRMLWidgets_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
** add the &amp;lt;i&amp;gt;.h&amp;lt;/i&amp;gt; file in the &amp;lt;code&amp;gt;qMRMLWidgets_MOC_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
** if any, add the &amp;lt;i&amp;gt;.ui&amp;lt;/i&amp;gt; file in the &amp;lt;code&amp;gt;qMRMLWidgets_UI_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
* compile with your favorite compiler.&lt;br /&gt;
Congratulations, you just added a custom widget in Slicer. The widget can now be used anywhere in Slicer.&amp;lt;br&amp;gt;&lt;br /&gt;
However the widget doesn't show up in QDesigner, let's create the associated widget plugin for QDesigner.&lt;br /&gt;
&lt;br /&gt;
=Create a widget for the designer=&lt;br /&gt;
For a general presentation to create custom widgets for Qt Designer, see http://doc.trolltech.com/designer-creating-custom-widgets.html&lt;br /&gt;
==Step by step==&lt;br /&gt;
*Copy paste this template in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Plugins&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifndef __qMRMLCustomWidgetPlugin_h&lt;br /&gt;
#define __qMRMLCustomWidgetPlugin_h&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;qMRMLWidgetsAbstractPlugin.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class QMRML_WIDGETS_PLUGIN_EXPORT qMRMLCustomWidgetPlugin : public QObject,&lt;br /&gt;
                                public qMRMLWidgetsAbstractPlugin&lt;br /&gt;
{&lt;br /&gt;
  Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
  qMRMLCustomWidgetPlugin(QObject *_parent = 0);&lt;br /&gt;
  &lt;br /&gt;
  QWidget *createWidget(QWidget *_parent);&lt;br /&gt;
  QString domXml() const;&lt;br /&gt;
  QString includeFile() const;&lt;br /&gt;
  bool isContainer() const;&lt;br /&gt;
  QString name() const;&lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Rename the file &amp;lt;i&amp;gt;qMRML[name of your widget]Plugin.h&amp;lt;/i&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
*Replace &amp;lt;i&amp;gt;CustomWidget&amp;lt;/i&amp;gt; with the name of your widget&lt;br /&gt;
*Copy-paste the following template in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;pre&amp;gt;#include &amp;quot;qMRMLCustomWidgetPlugin.h&amp;quot;&lt;br /&gt;
#include &amp;quot;qMRMLCustomWidget.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
qMRMLCustomWidgetPlugin::qMRMLCustomWidgetPlugin(QObject *_parent)&lt;br /&gt;
        : QObject(_parent)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QWidget *qMRMLCustomWidgetPlugin::createWidget(QWidget *_parent)&lt;br /&gt;
{&lt;br /&gt;
  qMRMLCustomWidget* _widget = new qMRMLCustomWidget(_parent);&lt;br /&gt;
  return _widget;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::domXml() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;&amp;lt;widget class=\&amp;quot;qMRMLCustomWidget\&amp;quot; \&lt;br /&gt;
          name=\&amp;quot;MRMLCustomWidget\&amp;quot;&amp;gt;\n&amp;quot;&lt;br /&gt;
          &amp;quot;&amp;lt;/widget&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::includeFile() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;qMRMLCustomWidget.h&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
bool qMRMLCustomWidgetPlugin::isContainer() const&lt;br /&gt;
{&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::name() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;qMRMLCustomWidget&amp;quot;;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the file qMRML[name of your widget]Plugin.cxx&lt;br /&gt;
|}&lt;br /&gt;
*Replace &amp;lt;i&amp;gt;CustomWidget&amp;lt;/i&amp;gt; by the name of your widget &lt;br /&gt;
*If the widget is a container, return &amp;lt;code&amp;gt;true&amp;lt;/code in the method &amp;lt;code&amp;gt;isContainer()&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You can customize how the widget is instantiated in the designer by reimplementing the method &amp;lt;code&amp;gt;domxml()&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Update &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins/CMakeLists.txt&amp;lt;/i&amp;gt; by adding your widget plugin files. &lt;br /&gt;
** add the files &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.h&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.cxx&amp;lt;/i&amp;gt; in the variable &amp;lt;code&amp;gt;qMRMLWidgetsPlugin_SRCS&amp;lt;/code&amp;gt;&lt;br /&gt;
** add the file &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.h&amp;lt;/i&amp;gt; in the variable &amp;lt;code&amp;gt;qMRMLWidgetsPlugin_MOC_SRCS&amp;lt;/code&amp;gt; &lt;br /&gt;
*Finally add your widget in the method &amp;lt;code&amp;gt;qMRMLWidgetsPlugins::customWidgets()&amp;lt;/code&amp;gt; of the file &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins/qMRMLWidgetsPlugins.h&amp;lt;/i&amp;gt;&lt;br /&gt;
*compile&lt;br /&gt;
Congratulations, you just added a custom widget in a plugin that can be read by QDesigner. Read the [[Documentation/4.1/Developers/Tutorials/QtDesigner |QtDesigner tutorial]] to learn how you can use the widget in [http://qt.nokia.com/products/developer-tools/ Qt Designer].&amp;lt;br&amp;gt;&lt;br /&gt;
'''Coding style:'''&lt;br /&gt;
For a better code readability, make sure you respect the alphabetical order of the files in &amp;lt;i&amp;gt;CMakeLists.txt&amp;lt;/i&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/WidgetWriting&amp;diff=27567</id>
		<title>Documentation/4.1/Developers/Tutorials/WidgetWriting</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/WidgetWriting&amp;diff=27567"/>
		<updated>2012-06-28T14:27:25Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Fixed QtDesigner tutorial link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a custom widget in Slicer=&lt;br /&gt;
==Intro==&lt;br /&gt;
A custom widget is a specialization of another widget or a group of widgets working together. Custom widgets are usually created when you need to add new functionality to existing widgets or groups of widgets. If you simply want a collection of widgets in a special configuration it can be easily done in QtDesigner and probably doesn't require to be a custom widget. &lt;br /&gt;
&lt;br /&gt;
In the following we will assume you are familiar with Qt.&amp;lt;br&amp;gt;&lt;br /&gt;
Here are some useful links:&lt;br /&gt;
*http://doc.trolltech.com/how-to-learn-qt.html&lt;br /&gt;
*http://doc.trolltech.com/object.html&lt;br /&gt;
*http://doc.trolltech.com/properties.html&lt;br /&gt;
&lt;br /&gt;
==Before starting==&lt;br /&gt;
There are 2 locations where custom widgets can be. You first have to decide where your custom widget should go:&lt;br /&gt;
*&amp;lt;i&amp;gt;CTK&amp;lt;/i&amp;gt;: Qt and/or VTK only&lt;br /&gt;
*&amp;lt;i&amp;gt;Slicer3/Libs/qMRMLWidgets&amp;lt;/i&amp;gt;: MRML-aware widgets (Slicer3)&lt;br /&gt;
*&amp;lt;i&amp;gt;Slicer/Libs/MRML/Widgets&amp;lt;/i&amp;gt;: MRML-aware widgets (Slicer4)&lt;br /&gt;
A good practice is to split (as possible) your custom widget in 2: a QT-only widget and a MRML-aware widget where the MRML-aware widgets inherits from the Qt-only widget. An intermediate level can be added for Qt and VTK widgets.&amp;lt;br&amp;gt;&lt;br /&gt;
It is important to keep the widgets basic. If you think someone else can use your custom widget differently, or if someone would need less features than the custom widget currently have, it is probably a good idea to split the widget in 2 widgets linked with an IS-A relationship.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding style==&lt;br /&gt;
The name of the custom widgets must follow the pattern: &amp;lt;code&amp;gt;qMRML[customName][baseQtWidget]&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;[baseQtWidget]&amp;lt;/code&amp;gt; is the name of the qt widget your custom widget inherits from (i.e. &amp;lt;code&amp;gt;ComboBox&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Slider&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Dialog&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Widget&amp;lt;/code&amp;gt;...), and &amp;lt;code&amp;gt;[customName]&amp;lt;/code&amp;gt; is a descriptive name. Examples:&lt;br /&gt;
*&amp;lt;code&amp;gt;qMRMLLinearTransformSlider&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;qMRMLMatrix&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;qMRMLMatrixWidget&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
*When you create your widget, make sure you use the [http://doc.trolltech.com/4.5/properties.html Qt property system], it allow the customization of the widgets in [http://doc.trolltech.com/4.6/designer-manual.html Qt Designer].&lt;br /&gt;
&lt;br /&gt;
==Step by step==&lt;br /&gt;
*Create your widget files (.h and .cxx) in the &amp;lt;i&amp;gt;Libs/MRML/Widgets&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
**If you use a &amp;lt;i&amp;gt;.ui&amp;lt;/i&amp;gt; file, add it in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/UI&amp;lt;/i&amp;gt; directory&lt;br /&gt;
**If you use icon files, add them in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/Icons&amp;lt;/i&amp;gt; directory and update the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/qMRMLWidgets.qrc&amp;lt;/i&amp;gt; file accordingly&lt;br /&gt;
*Update the &amp;lt;i&amp;gt;Libs/MRML/Widgets/CMakeLists.txt&amp;lt;/i&amp;gt; file with your widget files.&lt;br /&gt;
** add the &amp;lt;i&amp;gt;.h&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;.cxx&amp;lt;/i&amp;gt; files in the &amp;lt;code&amp;gt;qMRMLWidgets_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
** add the &amp;lt;i&amp;gt;.h&amp;lt;/i&amp;gt; file in the &amp;lt;code&amp;gt;qMRMLWidgets_MOC_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
** if any, add the &amp;lt;i&amp;gt;.ui&amp;lt;/i&amp;gt; file in the &amp;lt;code&amp;gt;qMRMLWidgets_UI_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
* compile with your favorite compiler.&lt;br /&gt;
Congratulations, you just added a custom widget in Slicer. The widget can now be used anywhere in Slicer.&amp;lt;br&amp;gt;&lt;br /&gt;
However the widget doesn't show up in QDesigner, let's create the associated widget plugin for QDesigner.&lt;br /&gt;
&lt;br /&gt;
=Create a widget for the designer=&lt;br /&gt;
For a general presentation to create custom widgets for Qt Designer, see http://doc.trolltech.com/designer-creating-custom-widgets.html&lt;br /&gt;
==Step by step==&lt;br /&gt;
*Copy paste this template in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Plugins&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifndef __qMRMLCustomWidgetPlugin_h&lt;br /&gt;
#define __qMRMLCustomWidgetPlugin_h&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;qMRMLWidgetsAbstractPlugin.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class QMRML_WIDGETS_PLUGIN_EXPORT qMRMLCustomWidgetPlugin : public QObject,&lt;br /&gt;
                                public qMRMLWidgetsAbstractPlugin&lt;br /&gt;
{&lt;br /&gt;
  Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
  qMRMLCustomWidgetPlugin(QObject *_parent = 0);&lt;br /&gt;
  &lt;br /&gt;
  QWidget *createWidget(QWidget *_parent);&lt;br /&gt;
  QString domXml() const;&lt;br /&gt;
  QString includeFile() const;&lt;br /&gt;
  bool isContainer() const;&lt;br /&gt;
  QString name() const;&lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Rename the file &amp;lt;i&amp;gt;qMRML[name of your widget]Plugin.h&amp;lt;/i&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
*Replace &amp;lt;i&amp;gt;CustomWidget&amp;lt;/i&amp;gt; with the name of your widget&lt;br /&gt;
*Copy-paste the following template in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;pre&amp;gt;#include &amp;quot;qMRMLCustomWidgetPlugin.h&amp;quot;&lt;br /&gt;
#include &amp;quot;qMRMLCustomWidget.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
qMRMLCustomWidgetPlugin::qMRMLCustomWidgetPlugin(QObject *_parent)&lt;br /&gt;
        : QObject(_parent)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QWidget *qMRMLCustomWidgetPlugin::createWidget(QWidget *_parent)&lt;br /&gt;
{&lt;br /&gt;
  qMRMLCustomWidget* _widget = new qMRMLCustomWidget(_parent);&lt;br /&gt;
  return _widget;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::domXml() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;&amp;lt;widget class=\&amp;quot;qMRMLCustomWidget\&amp;quot; \&lt;br /&gt;
          name=\&amp;quot;MRMLCustomWidget\&amp;quot;&amp;gt;\n&amp;quot;&lt;br /&gt;
          &amp;quot;&amp;lt;/widget&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::includeFile() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;qMRMLCustomWidget.h&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
bool qMRMLCustomWidgetPlugin::isContainer() const&lt;br /&gt;
{&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::name() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;qMRMLCustomWidget&amp;quot;;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the file qMRML[name of your widget]Plugin.cxx&lt;br /&gt;
|}&lt;br /&gt;
*Replace &amp;lt;i&amp;gt;CustomWidget&amp;lt;/i&amp;gt; by the name of your widget &lt;br /&gt;
*If the widget is a container, return &amp;lt;code&amp;gt;true&amp;lt;/code in the method &amp;lt;code&amp;gt;isContainer()&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You can customize how the widget is instantiated in the designer by reimplementing the method &amp;lt;code&amp;gt;domxml()&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Update &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins/CMakeLists.txt&amp;lt;/i&amp;gt; by adding your widget plugin files. &lt;br /&gt;
** add the files &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.h&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.cxx&amp;lt;/i&amp;gt; in the variable &amp;lt;code&amp;gt;qMRMLWidgetsPlugin_SRCS&amp;lt;/code&amp;gt;&lt;br /&gt;
** add the file &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.h&amp;lt;/i&amp;gt; in the variable &amp;lt;code&amp;gt;qMRMLWidgetsPlugin_MOC_SRCS&amp;lt;/code&amp;gt; &lt;br /&gt;
*Finally add your widget in the method &amp;lt;code&amp;gt;qMRMLWidgetsPlugins::customWidgets()&amp;lt;/code&amp;gt; of the file &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins/qMRMLWidgetsPlugins.h&amp;lt;/i&amp;gt;&lt;br /&gt;
*compile&lt;br /&gt;
Congratulations, you just added a custom widget in a plugin that can be read by QDesigner. Read the [[Documentation/4.1/Developers/Tutorials/QtDesigner |next tutorial]] to learn how you can use the widget into Qt Designer.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Coding style:'''&lt;br /&gt;
For a better code readability, make sure you respect the alphabetical order of the files in &amp;lt;i&amp;gt;CMakeLists.txt&amp;lt;/i&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/WidgetWriting&amp;diff=27566</id>
		<title>Documentation/4.1/Developers/Tutorials/WidgetWriting</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/WidgetWriting&amp;diff=27566"/>
		<updated>2012-06-28T14:23:05Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Updated directories for Slicer4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a custom widget in Slicer=&lt;br /&gt;
==Intro==&lt;br /&gt;
A custom widget is a specialization of another widget or a group of widgets working together. Custom widgets are usually created when you need to add new functionality to existing widgets or groups of widgets. If you simply want a collection of widgets in a special configuration it can be easily done in QtDesigner and probably doesn't require to be a custom widget. &lt;br /&gt;
&lt;br /&gt;
In the following we will assume you are familiar with Qt.&amp;lt;br&amp;gt;&lt;br /&gt;
Here are some useful links:&lt;br /&gt;
*http://doc.trolltech.com/how-to-learn-qt.html&lt;br /&gt;
*http://doc.trolltech.com/object.html&lt;br /&gt;
*http://doc.trolltech.com/properties.html&lt;br /&gt;
&lt;br /&gt;
==Before starting==&lt;br /&gt;
There are 2 locations where custom widgets can be. You first have to decide where your custom widget should go:&lt;br /&gt;
*&amp;lt;i&amp;gt;CTK&amp;lt;/i&amp;gt;: Qt and/or VTK only&lt;br /&gt;
*&amp;lt;i&amp;gt;Slicer3/Libs/qMRMLWidgets&amp;lt;/i&amp;gt;: MRML-aware widgets (Slicer3)&lt;br /&gt;
*&amp;lt;i&amp;gt;Slicer/Libs/MRML/Widgets&amp;lt;/i&amp;gt;: MRML-aware widgets (Slicer4)&lt;br /&gt;
A good practice is to split (as possible) your custom widget in 2: a QT-only widget and a MRML-aware widget where the MRML-aware widgets inherits from the Qt-only widget. An intermediate level can be added for Qt and VTK widgets.&amp;lt;br&amp;gt;&lt;br /&gt;
It is important to keep the widgets basic. If you think someone else can use your custom widget differently, or if someone would need less features than the custom widget currently have, it is probably a good idea to split the widget in 2 widgets linked with an IS-A relationship.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding style==&lt;br /&gt;
The name of the custom widgets must follow the pattern: &amp;lt;code&amp;gt;qMRML[customName][baseQtWidget]&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;[baseQtWidget]&amp;lt;/code&amp;gt; is the name of the qt widget your custom widget inherits from (i.e. &amp;lt;code&amp;gt;ComboBox&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Slider&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Dialog&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Widget&amp;lt;/code&amp;gt;...), and &amp;lt;code&amp;gt;[customName]&amp;lt;/code&amp;gt; is a descriptive name. Examples:&lt;br /&gt;
*&amp;lt;code&amp;gt;qMRMLLinearTransformSlider&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;qMRMLMatrix&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;qMRMLMatrixWidget&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
*When you create your widget, make sure you use the [http://doc.trolltech.com/4.5/properties.html Qt property system], it allow the customization of the widgets in [http://doc.trolltech.com/4.6/designer-manual.html Qt Designer].&lt;br /&gt;
&lt;br /&gt;
==Step by step==&lt;br /&gt;
*Create your widget files (.h and .cxx) in the &amp;lt;i&amp;gt;Libs/MRML/Widgets&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
**If you use a &amp;lt;i&amp;gt;.ui&amp;lt;/i&amp;gt; file, add it in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/UI&amp;lt;/i&amp;gt; directory&lt;br /&gt;
**If you use icon files, add them in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/Icons&amp;lt;/i&amp;gt; directory and update the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Resources/qMRMLWidgets.qrc&amp;lt;/i&amp;gt; file accordingly&lt;br /&gt;
*Update the &amp;lt;i&amp;gt;Libs/MRML/Widgets/CMakeLists.txt&amp;lt;/i&amp;gt; file with your widget files.&lt;br /&gt;
** add the &amp;lt;i&amp;gt;.h&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;.cxx&amp;lt;/i&amp;gt; files in the &amp;lt;code&amp;gt;qMRMLWidgets_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
** add the &amp;lt;i&amp;gt;.h&amp;lt;/i&amp;gt; file in the &amp;lt;code&amp;gt;qMRMLWidgets_MOC_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
** if any, add the &amp;lt;i&amp;gt;.ui&amp;lt;/i&amp;gt; file in the &amp;lt;code&amp;gt;qMRMLWidgets_UI_SRCS&amp;lt;/code&amp;gt; variable&lt;br /&gt;
* compile with your favorite compiler.&lt;br /&gt;
Congratulations, you just added a custom widget in Slicer. The widget can now be used anywhere in Slicer.&amp;lt;br&amp;gt;&lt;br /&gt;
However the widget doesn't show up in QDesigner, let's create the associated widget plugin for QDesigner.&lt;br /&gt;
&lt;br /&gt;
=Create a widget for the designer=&lt;br /&gt;
For a general presentation to create custom widgets for Qt Designer, see http://doc.trolltech.com/designer-creating-custom-widgets.html&lt;br /&gt;
==Step by step==&lt;br /&gt;
*Copy paste this template in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/Plugins&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifndef __qMRMLCustomWidgetPlugin_h&lt;br /&gt;
#define __qMRMLCustomWidgetPlugin_h&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;qMRMLWidgetsAbstractPlugin.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class QMRML_WIDGETS_PLUGIN_EXPORT qMRMLCustomWidgetPlugin : public QObject,&lt;br /&gt;
                                public qMRMLWidgetsAbstractPlugin&lt;br /&gt;
{&lt;br /&gt;
  Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
  qMRMLCustomWidgetPlugin(QObject *_parent = 0);&lt;br /&gt;
  &lt;br /&gt;
  QWidget *createWidget(QWidget *_parent);&lt;br /&gt;
  QString domXml() const;&lt;br /&gt;
  QString includeFile() const;&lt;br /&gt;
  bool isContainer() const;&lt;br /&gt;
  QString name() const;&lt;br /&gt;
  &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Rename the file &amp;lt;i&amp;gt;qMRML[name of your widget]Plugin.h&amp;lt;/i&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
*Replace &amp;lt;i&amp;gt;CustomWidget&amp;lt;/i&amp;gt; with the name of your widget&lt;br /&gt;
*Copy-paste the following template in the &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;pre&amp;gt;#include &amp;quot;qMRMLCustomWidgetPlugin.h&amp;quot;&lt;br /&gt;
#include &amp;quot;qMRMLCustomWidget.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
qMRMLCustomWidgetPlugin::qMRMLCustomWidgetPlugin(QObject *_parent)&lt;br /&gt;
        : QObject(_parent)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QWidget *qMRMLCustomWidgetPlugin::createWidget(QWidget *_parent)&lt;br /&gt;
{&lt;br /&gt;
  qMRMLCustomWidget* _widget = new qMRMLCustomWidget(_parent);&lt;br /&gt;
  return _widget;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::domXml() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;&amp;lt;widget class=\&amp;quot;qMRMLCustomWidget\&amp;quot; \&lt;br /&gt;
          name=\&amp;quot;MRMLCustomWidget\&amp;quot;&amp;gt;\n&amp;quot;&lt;br /&gt;
          &amp;quot;&amp;lt;/widget&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::includeFile() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;qMRMLCustomWidget.h&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
bool qMRMLCustomWidgetPlugin::isContainer() const&lt;br /&gt;
{&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------------------------------------&lt;br /&gt;
QString qMRMLCustomWidgetPlugin::name() const&lt;br /&gt;
{&lt;br /&gt;
  return &amp;quot;qMRMLCustomWidget&amp;quot;;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the file qMRML[name of your widget]Plugin.cxx&lt;br /&gt;
|}&lt;br /&gt;
*Replace &amp;lt;i&amp;gt;CustomWidget&amp;lt;/i&amp;gt; by the name of your widget &lt;br /&gt;
*If the widget is a container, return &amp;lt;code&amp;gt;true&amp;lt;/code in the method &amp;lt;code&amp;gt;isContainer()&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You can customize how the widget is instantiated in the designer by reimplementing the method &amp;lt;code&amp;gt;domxml()&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Update &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins/CMakeLists.txt&amp;lt;/i&amp;gt; by adding your widget plugin files. &lt;br /&gt;
** add the files &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.h&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.cxx&amp;lt;/i&amp;gt; in the variable &amp;lt;code&amp;gt;qMRMLWidgetsPlugin_SRCS&amp;lt;/code&amp;gt;&lt;br /&gt;
** add the file &amp;lt;i&amp;gt;qMRMLCustomWidgetPlugin.h&amp;lt;/i&amp;gt; in the variable &amp;lt;code&amp;gt;qMRMLWidgetsPlugin_MOC_SRCS&amp;lt;/code&amp;gt; &lt;br /&gt;
*Finally add your widget in the method &amp;lt;code&amp;gt;qMRMLWidgetsPlugins::customWidgets()&amp;lt;/code&amp;gt; of the file &amp;lt;i&amp;gt;Libs/MRML/Widgets/DesignerPlugins/qMRMLWidgetsPlugins.h&amp;lt;/i&amp;gt;&lt;br /&gt;
*compile&lt;br /&gt;
Congratulations, you just added a custom widget in a plugin that can be read by QDesigner. Read the [[Slicer3:Developers:Projects:QtSlicer:Tutorials:QtDesigner|next tutorial]] to learn how you can use the widget into Qt Designer.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Coding style:'''&lt;br /&gt;
For a better code readability, make sure you respect the alphabetical order of the files in &amp;lt;i&amp;gt;CMakeLists.txt&amp;lt;/i&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Talk:Documentation/4.1/Developers/Style_Guide/Python&amp;diff=26633</id>
		<title>Talk:Documentation/4.1/Developers/Style Guide/Python</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Talk:Documentation/4.1/Developers/Style_Guide/Python&amp;diff=26633"/>
		<updated>2012-06-05T15:52:11Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Pro/con list for naming conventions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should Slicer naming conventions beat PEP 8 for Python modules?&lt;br /&gt;
'''Pros'''&lt;br /&gt;
* Uniformity within the Slicer coding base&lt;br /&gt;
* One standard to learn within Slicer community&lt;br /&gt;
'''Cons'''&lt;br /&gt;
* Alienates Python community developers&lt;br /&gt;
* Teaches wrong standard to new developers&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Style_Guide/Python&amp;diff=26630</id>
		<title>Documentation/4.1/Developers/Style Guide/Python</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Style_Guide/Python&amp;diff=26630"/>
		<updated>2012-06-05T15:48:12Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Outlined PEP 8 briefly and added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Follow PEP 8 standards: [http://www.python.org/dev/peps/pep-0008/ Official PEP 8 Guidelines]&lt;br /&gt;
&lt;br /&gt;
== Rules ==&lt;br /&gt;
&lt;br /&gt;
* Indentation is --- 4 spaces per level ---  &lt;br /&gt;
** ''Do not use tabs, EVER!'' Those who insist on using tabs for indentation will be a pariah in the community and summarily '''shot on sight'''.&lt;br /&gt;
* Text encoding&lt;br /&gt;
** ASCII or Latin-1 (Python 2+)&lt;br /&gt;
** UTF-8 preferred, Latin-1 acceptable (Python 3)&lt;br /&gt;
* '''Comparisons'''&lt;br /&gt;
** To singletons (e.g. None)&lt;br /&gt;
*** Use 'is' or 'is not', never equality operations&lt;br /&gt;
** To booleans (True, False)&lt;br /&gt;
*** Don't ever compare with True or False (For further explanation, see PEP 8)&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
* Maximum line length is 79 characters&lt;br /&gt;
* Prefix class definitions with two blank lines&lt;br /&gt;
* '''Imports'''&lt;br /&gt;
** Grouped in order of scope/commonallity&lt;br /&gt;
**# Standard library imports&lt;br /&gt;
**# Related third party imports&lt;br /&gt;
**# Local apps/library specific imports&lt;br /&gt;
** One package per line (with or without multiple function/module/class imports from the package)&lt;br /&gt;
* Avoid extraneous whitespaces&lt;br /&gt;
* Naming conventions&lt;br /&gt;
** When PEP 8 and Slicer naming conventions conflict, Slicer wins&lt;br /&gt;
&lt;br /&gt;
== Checking your code ==&lt;br /&gt;
&lt;br /&gt;
There is a handy command line tool to check your code against the PEP 8 standard called pep8.  It has options to turn off specific warnings and errors in case you (almost always) have to break from the standard.  You can download and install it from it's [[https://github.com/jcrocholl/pep8 Github repo.]]&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.0/Developers/Modules&amp;diff=26225</id>
		<title>Documentation/4.0/Developers/Modules</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.0/Developers/Modules&amp;diff=26225"/>
		<updated>2012-05-17T18:38:30Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: /* Scripted Modules */  Fixed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Slicer 4 supports 3 types of modules. While the developer has to choose between one of the 3 types to implement its module, the end user won't notice a difference as they all share the look&amp;amp;feel. The choice for a given type of module is usually based on the type of inputs/parameters for a given module.&lt;br /&gt;
= Command Line Interface (CLI) =&lt;br /&gt;
CLIs are standalone executables with a limited input/output arguments complexity (simple argument types, no user interactions...). They are typically implemented using ITK.&lt;br /&gt;
The recommended way to write your own CLI is to copy an [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/ existing module].&lt;br /&gt;
* Shared lib or executable&lt;br /&gt;
* GUI automatically generated&lt;br /&gt;
* Links:&lt;br /&gt;
** [[Slicer3:Execution_Model_Documentation|Slicer3 execution model]] (Slicer4 is very similar)&lt;br /&gt;
** [http://www.na-mic.org/Wiki/index.php/File:Slicer4_CLI.ppt CLI in Slicer4] (presentation of 2012 NAMIC AHM)&lt;br /&gt;
&lt;br /&gt;
= Loadable Modules =&lt;br /&gt;
Loadable modules are C++ plugins that are built against Slicer. They define custom GUIs for their specific behavior as they have full control over the application.&lt;br /&gt;
* C++ shared library&lt;br /&gt;
* Full control over the GUI (Qt) and Slicer internals (MRML, logics, display managers...)&lt;br /&gt;
* Optimized for heavy computations&lt;br /&gt;
* Links:&lt;br /&gt;
**[http://www.na-mic.org/Wiki/index.php/File:LoadableModules.pptx Loadable modules] (presentation of 2012 NAMIC AHM)&lt;br /&gt;
**[[Documentation/4.0/Developers/Tutorials/ModuleWriting|How to write a loadable module]]&lt;br /&gt;
&lt;br /&gt;
= Scripted Modules =&lt;br /&gt;
Scripted modules are written in Python and typically but not necessarily use the high level API of Slicer and toolkits.   &lt;br /&gt;
* Python Console&lt;br /&gt;
* Full access to the API: VTK, ITK, MRML, Qt and Slicer are fully wrapped&lt;br /&gt;
* Recommended for fast prototyping&lt;br /&gt;
* Links:&lt;br /&gt;
** [http://www.slicer.org/slicerWiki/index.php/Documentation/4.0/Developers/Python_scripting Python Scripting]&lt;br /&gt;
&lt;br /&gt;
=Module Factory=&lt;br /&gt;
Loading modules into slicer happens in multiple steps:&lt;br /&gt;
*module factories must be registered into the factory manager&lt;br /&gt;
* directories where the modules to load are located must be passed to the factory manager&lt;br /&gt;
* Optionally specify module names to ignore&lt;br /&gt;
* scan the directories and test which file is a module and register it (not instantiated yet) &lt;br /&gt;
* Instantiate all the register modules&lt;br /&gt;
* Connect each module with the scene and the application&lt;br /&gt;
More details can be found in the [http://slicer.org/doc/html/classqSlicerAbstractModuleFactoryManager.html online doc]&lt;br /&gt;
&lt;br /&gt;
==ToDo==&lt;br /&gt;
* Transform all core modules into Loadable modules.&lt;br /&gt;
** the factory manager only support file based modules, core modules are not file based (linked into the core factory itself)&lt;br /&gt;
* Move factory registration in qSlicerApplication (or a general application library) to support module discovery/loading without needing to instantiate Slicer.&lt;br /&gt;
** Currently can't be moved into qSlicerApplication as the CLI factories that are in QTCLI depend on QTGUI&lt;br /&gt;
** QtTesting is also limited with the QTCLI dependency on QtGUI (-&amp;gt;qSlicerApplication would need to access QtTesting code from QtCli)&lt;br /&gt;
** Proposed architecture&lt;br /&gt;
 Base&lt;br /&gt;
   Application -&amp;gt; classes that are useful to build an application (mix of qSlicerCoreApplication, qSlicerApplication, Main.cxx...)&lt;br /&gt;
   Core -&amp;gt; formally QtCore&lt;br /&gt;
   Modules -&amp;gt; contains the factories and module specific code&lt;br /&gt;
      Loadable&lt;br /&gt;
      CLI&lt;br /&gt;
      Scripted&lt;br /&gt;
   Scripted -&amp;gt; all that is python specific&lt;br /&gt;
      Cxx&lt;br /&gt;
      Python&lt;br /&gt;
   Widgets -&amp;gt; formally QtGUI&lt;br /&gt;
* Add category hierarchy in the Settings module panel&lt;br /&gt;
* Register factory settings/command-options(e.g. disable-loadable-modules) when registering module factories&lt;br /&gt;
** To have the settings panel be generic but have the code proper of each registered factory somewhere else&lt;br /&gt;
* Add mechanism for modules to register dialogs (toolbars that open dialogs),  e.g. the sceneview module needs to register the sceneView dialog into an icon.&lt;br /&gt;
* Ignore modules from the launcher command line.&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSDemonWarp&amp;diff=25903</id>
		<title>Documentation/4.1/Modules/BRAINSDemonWarp</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSDemonWarp&amp;diff=25903"/>
		<updated>2012-04-18T21:50:27Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: dmwelch: moved algorithm description out of use cases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
# Parsing - The images are initialized by the ValidationInputParser. This function reads in the arguments from a parameter file.  It sets the histogram bins, match points, number of levels in the multi resolution registration, shrink factors and number of iterations at each levels. If the orientation of the images are different, it sets the moving image orientation to that of the fixed image.&lt;br /&gt;
&lt;br /&gt;
# PreProcessing - In the next step the DemonsPreProcessor preprocesses the images by resampling the template image to target image space. The intensity mismatch problem is solved by histogram matching the images. Histogram matching is done only if the command line option -e is set. ItkHistogramMatchingImageFilter is used to perform this function. Another important step in preprocessing is skull stripping. Skull stripping is done only if the command line option -maskProcessingMode is set to BOBF. We have written an itk filter, named itkBOBFFilter for this purpose. This filter takes in an input image and a whole brain mask and outputs a Brain Only Background Filled(BOBF) image. The non-brain parts in the image are filled with the user specified background value. All computations are performed in the precision of ﬂoat data. &lt;br /&gt;
&lt;br /&gt;
# Registration - The resulting moving Image and the fixed image are given as inputs to the demons registrator.It uses the MultiResolutionPDEDeformableRegistration filter with NN extrapolation as interpolator and implements the demons deformable algorithm by computing the deformation field which will map a moving image onto a fixed image. It is assumed that the vector elements behave like ﬂoating point scalars. Each vector in the deformation field represent the distance between a geometric point in the input space and a point in the output space. The output image is generated by warping the input image with the deformation field using the ItkWarpImageFilter. WarpImageFilter warps an existing image with respect to a given deformation field. Typically the mapped position does not correspond to an integer pixel position in the input image. Interpolation via an image function is used to compute values at non-integer positions. We have used the LinearInterpolateImageFunction for our application. To write the output image we cast the image to the user specified output pixel type.&lt;br /&gt;
&lt;br /&gt;
The inputs to the BrainDemonsWarp program are &lt;br /&gt;
* the target image, &lt;br /&gt;
* the template image and &lt;br /&gt;
* optional parameters. &lt;br /&gt;
These parameters define the arguments for histogram matching and multi resolution registration. The outputs are &lt;br /&gt;
* the deformation field, &lt;br /&gt;
* the output image, &lt;br /&gt;
* a checkerboard comparison image of the output and the fixed image and &lt;br /&gt;
* the x,y,z displacement vectors. &lt;br /&gt;
If we specify the --debug option we can get the outputs at different stages. The filter is templated over the input image type, real image type and the output image types. We implement the algorithm by parsing the inputs, preprocessing them and registering the processed images.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* Point to other modules that have similar functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [http://hdl.handle.net/1926/1517 BRAINSDemonWarp: An Applicaton to Perform Demons Registration], Johnson H., Zhao Y., Insight Journal, 2009.&lt;br /&gt;
* Source repository on [https://github.com/BRAINSia/BRAINSStandAlone/tree/master/BRAINSDemonWarp github]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSDemonWarp | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSDemonWarp&amp;diff=25902</id>
		<title>Documentation/4.1/Modules/BRAINSDemonWarp</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSDemonWarp&amp;diff=25902"/>
		<updated>2012-04-18T21:03:37Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: dmwelch: added References&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
# '''''''Registration'''''''&lt;br /&gt;
&lt;br /&gt;
## Parsing - The images are initialized by the ValidationInputParser. This function reads in the arguments from a parameter file.  It sets the histogram bins, match points, number of levels in the multi resolution registration, shrink factors and number of iterations at each levels. If the orientation of the images are different, it sets the moving image orientation to that of the fixed image.&lt;br /&gt;
&lt;br /&gt;
## PreProcessing - In the next step the DemonsPreProcessor preprocesses the images by resampling the template image to target image space. The intensity mismatch problem is solved by histogram matching the images. Histogram matching is done only if the command line option -e is set. ItkHistogramMatchingImageFilter is used to perform this function. Another important step in preprocessing is skull stripping. Skull stripping is done only if the command line option -maskProcessingMode is set to BOBF. We have written an itk filter, named itkBOBFFilter for this purpose. This filter takes in an input image and a whole brain mask and outputs a Brain Only Background Filled(BOBF) image. The non-brain parts in the image are filled with the user specified background value. All computations are performed in the precision of ﬂoat data. &lt;br /&gt;
&lt;br /&gt;
## Registration - The resulting moving Image and the fixed image are given as inputs to the demons registrator.It uses the MultiResolutionPDEDeformableRegistration filter with NN extrapolation as interpolator and implements the demons deformable algorithm by computing the deformation field which will map a moving image onto a fixed image. It is assumed that the vector elements behave like ﬂoating point scalars. Each vector in the deformation field represent the distance between a geometric point in the input space and a point in the output space. The output image is generated by warping the input image with the deformation field using the ItkWarpImageFilter. WarpImageFilter warps an existing image with respect to a given deformation field. Typically the mapped position does not correspond to an integer pixel position in the input image. Interpolation via an image function is used to compute values at non-integer positions. We have used the LinearInterpolateImageFunction for our application. To write the output image we cast the image to the user specified output pixel type.&lt;br /&gt;
&lt;br /&gt;
The inputs to the BrainDemonsWarp program are &lt;br /&gt;
* the target image, &lt;br /&gt;
* the template image and &lt;br /&gt;
* optional parameters. &lt;br /&gt;
These parameters define the arguments for histogram matching and multi resolution registration. The outputs are &lt;br /&gt;
* the deformation field, &lt;br /&gt;
* the output image, &lt;br /&gt;
* a checkerboard comparison image of the output and the fixed image and &lt;br /&gt;
* the x,y,z displacement vectors. &lt;br /&gt;
If we specify the --debug option we can get the outputs at different stages. The filter is templated over the input image type, real image type and the output image types. We implement the algorithm by parsing the inputs, preprocessing them and registering the processed images.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* Point to other modules that have similar functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [http://hdl.handle.net/1926/1517 BRAINSDemonWarp: An Applicaton to Perform Demons Registration], Johnson H., Zhao Y., Insight Journal, 2009.&lt;br /&gt;
* Source repository on [https://github.com/BRAINSia/BRAINSStandAlone/tree/master/BRAINSDemonWarp github]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSDemonWarp | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25901</id>
		<title>Documentation/4.1/Modules/BRAINSFit</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25901"/>
		<updated>2012-04-18T21:00:38Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: dmwelch: updated and verified example files on Midas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor1: Kent Williams, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor2: Vincent Magnotta, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor3: Andriy Fedorov, BWH&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Most frequently used for these scenarios:&lt;br /&gt;
&lt;br /&gt;
# '''''Same Subject: Longitudinal'''''&lt;br /&gt;
&lt;br /&gt;
For this case we're registering a baseline T1 scan with a follow-up T1 scan on the same subject a year later.  The two images are available on the [http://midas.kitware.com/item/view/483 Midas site] as test.nii.gz and test2.nii.gz&lt;br /&gt;
&lt;br /&gt;
First, set the fixed and moving volumes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume test.nii.gz \&lt;br /&gt;
--movingVolume test2.nii.gz \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next, set the output transform and volume:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the input scans are of the same subject we can assume very little has changed in the last year, so we'll use a Rigid registration.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{note}}If the registration is poor or there are reasons to expect anatomical changes (tumor growth, rapid disease progression, etc.) additional transforms may be needed.  In that case they can be added in a comma separated list, such as &amp;quot;Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline&amp;quot;.  Available methods are:&lt;br /&gt;
* Rigid&lt;br /&gt;
* ScaleVersor3D&lt;br /&gt;
* ScaleSkewVersor3D&lt;br /&gt;
* Affine&lt;br /&gt;
* BSpline&lt;br /&gt;
&amp;lt;pre title=&amp;quot;Example: multiple registration methods&amp;quot;&amp;gt;&lt;br /&gt;
Example: multiple registration methods&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch to match the intensity profiles as this tends to help the registration.  If there are lesions or tumors that vary between images this may not be a good idea, since it will make it harder to detect differences between the images.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. The available transform modes are:&lt;br /&gt;
* useCenterOfHeadAlign&lt;br /&gt;
* useCenterOfROIAlign&lt;br /&gt;
* useMomentsAlign&lt;br /&gt;
* useGeometryAlign&lt;br /&gt;
We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO (other options are NOMASK and ROI).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask to make the tissue boundary very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under &amp;quot;Registration Debugging Parameters&amp;quot; if using the GUI).  These values are in millimeters and a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume test.nii.gz \&lt;br /&gt;
--movingVolume test2.nii.gz \&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:LongitudinalCheckerboardPreReg.png|thumb|180px|Longitudinal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:LogitudinalCheckerboardPostReg.png|thumb|180px|Longitudinal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# '''''Same Subject: MultiModal'''''&lt;br /&gt;
&lt;br /&gt;
For this use case we're registering a T1 scan with a T2 scan collected in the same session.  The two images are again available on the [http://midas.kitware.com/item/view/483 Midas site] as test.nii.gz and standard.nii.gz&lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume test.nii.gz \&lt;br /&gt;
--movingVolume standard.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since these are the same subject, same session we'll use a Rigid registration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are different modalities so we absolutely DO NOT want to use --histogramMatch to match the intensity profiles! This would try to map T2 intensities into T1 intensities resulting in an image that is neither, and hence useless.&lt;br /&gt;
&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO (other options are NOMASK and ROI).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask to make the tissue boundary very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under &amp;quot;Registration Debugging Parameters&amp;quot; if using the GUI).  These values are in millimeters and a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume test.nii.gz \&lt;br /&gt;
--movingVolume standard.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:T1T2PreRegCheckerboard.png|thumb|180px|Multimodal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:T1T2RegCheckerboard.png|thumb|180px|Multimodal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''''Mouse Registration'''''&lt;br /&gt;
&lt;br /&gt;
Here we'll register brains from two different mice together.  The fixed and moving mouse brains used in this example are available on the [http://midas.kitware.com/item/view/483 Midas site] as mouseFixed.nii.gz and mouseMoving.nii.gz.&lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the subjects are different we are going to use transforms all the way through BSpline. &lt;br /&gt;
{{note}}Building up transforms one type at a time can't hurt and might help, so we're including all transforms from Rigid through BSpline in the transformType parameter.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode but we aren't working with human heads this time, so we can't pick useCenterOfHeadAlign! Instead we pick useMomentsAlign which does a reasonable job of selecting the centers of mass.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the mouse brains are much smaller than human brains there are a few advanced parameters we'll need to tweak, ROIAutoClosingSize and ROIAutoDilateSize (both under Registration Debugging Parameters if using the GUI).  These values are in millimeters and a good starting value for mice is 0.9.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:MouseCheckerboardPreRegistration.png|thumb|180px|Mouse Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:MouseCheckerboardPostRegistration.png|thumb|180px|Mouse Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
Legacy&lt;br /&gt;
* [[Documentation/4.1/Modules/RigidRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/AffineRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/BSplineDeformableRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/ExpertAutomatedRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/LinearRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/MultiResolutionAffineRegistration]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [http://hdl.handle.net/1926/1291 BRAINSFit: Mutual Information Registrations of Whole-Brain 3D Images, Using the Insight Toolkit], Johnson H.J., Harris G., Williams K., The Insight Journal, 2007.&lt;br /&gt;
* Source repository on [https://github.com/BRAINSia/BRAINSStandAlone/tree/master/BRAINSFit github]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSFit | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25899</id>
		<title>Documentation/4.1/Modules/BRAINSFit</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25899"/>
		<updated>2012-04-18T20:29:07Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: dmwelch: removed unneeded line in References&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor1: Kent Williams, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor2: Vincent Magnotta, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor3: Andriy Fedorov, BWH&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Most frequently used for these scenarios:&lt;br /&gt;
&lt;br /&gt;
# '''''Same Subject: Longitudinal'''''&lt;br /&gt;
&lt;br /&gt;
For this case we're registering a baseline T1 scan with a follow-up T1 scan on the same subject a year later.  The two images are available on [http://midas.kitware.com/item/view/483 Midas] as testT1.nii.gz and testT1Longitudinal.nii.gz&lt;br /&gt;
&lt;br /&gt;
First, set the fixed and moving volumes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT1Longitudinal.nii.gz \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next, set the output transform and volume:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the input scans are of the same subject we can assume very little has changed in the last year, so we'll use a Rigid registration.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{note}}If the registration is poor or there are reasons to expect anatomical changes (tumor growth, rapid disease progression, etc.) additional transforms may be needed.  In that case they can be added in a comma separated list, such as &amp;quot;Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline&amp;quot;.  Available methods are:&lt;br /&gt;
* Rigid&lt;br /&gt;
* ScaleVersor3D&lt;br /&gt;
* ScaleSkewVersor3D&lt;br /&gt;
* Affine&lt;br /&gt;
* BSpline&lt;br /&gt;
&amp;lt;pre title=&amp;quot;Example: multiple registration methods&amp;quot;&amp;gt;&lt;br /&gt;
Example: multiple registration methods&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch to match the intensity profiles as this tends to help the registration.  If there are lesions or tumors that vary between images this may not be a good idea, since it will make it harder to detect differences between the images.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. The available transform modes are:&lt;br /&gt;
* useCenterOfHeadAlign&lt;br /&gt;
* useCenterOfROIAlign&lt;br /&gt;
* useMomentsAlign&lt;br /&gt;
* useGeometryAlign&lt;br /&gt;
We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO (other options are NOMASK and ROI).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask to make the tissue boundary very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under &amp;quot;Registration Debugging Parameters&amp;quot; if using the GUI).  These values are in millimeters and a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT1Longitudinal.nii.gz \&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:LongitudinalCheckerboardPreReg.png|thumb|180px|Longitudinal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:LogitudinalCheckerboardPostReg.png|thumb|180px|Longitudinal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# '''''Same Subject: MultiModal'''''&lt;br /&gt;
&lt;br /&gt;
For this use case we're registering a T1 scan with a T2 scan collected in the same session.  The two images are again available on [http://midas.kitware.com/item/view/483 Midas] as testT1.nii.gz and testT2.nii.gz&lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT2.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since these are the same subject, same session we'll use a Rigid registration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are different modalities so we absolutely DO NOT want to use --histogramMatch to match the intensity profiles! This would try to map T2 intensities into T1 intensities resulting in an image that is neither, and hence useless.&lt;br /&gt;
&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO (other options are NOMASK and ROI).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask to make the tissue boundary very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under &amp;quot;Registration Debugging Parameters&amp;quot; if using the GUI).  These values are in millimeters and a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT2.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:T1T2PreRegCheckerboard.png|thumb|180px|Multimodal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:T1T2RegCheckerboard.png|thumb|180px|Multimodal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''''Mouse Registration'''''&lt;br /&gt;
&lt;br /&gt;
Here we'll register brains from two different mice together.  The fixed and moving mouse brains used in this example are available on [http://midas.kitware.com/item/view/483 Midas]. &lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the subjects are different we are going to use transforms all the way through BSpline. &lt;br /&gt;
{{note}}Building up transforms one type at a time can't hurt and might help, so we're including all transforms from Rigid through BSpline in the transformType parameter.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode but we aren't working with human heads this time, so we can't pick useCenterOfHeadAlign! Instead we pick useMomentsAlign which does a reasonable job of selecting the centers of mass.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the mouse brains are much smaller than human brains there are a few advanced parameters we'll need to tweak, ROIAutoClosingSize and ROIAutoDilateSize (both under Registration Debugging Parameters if using the GUI).  These values are in millimeters and a good starting value for mice is 0.9.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:MouseCheckerboardPreRegistration.png|thumb|180px|Mouse Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:MouseCheckerboardPostRegistration.png|thumb|180px|Mouse Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
Legacy&lt;br /&gt;
* [[Documentation/4.1/Modules/RigidRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/AffineRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/BSplineDeformableRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/ExpertAutomatedRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/LinearRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/MultiResolutionAffineRegistration]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [http://hdl.handle.net/1926/1291 BRAINSFit: Mutual Information Registrations of Whole-Brain 3D Images, Using the Insight Toolkit], Johnson H.J., Harris G., Williams K., The Insight Journal, 2007.&lt;br /&gt;
* Source repository on [https://github.com/BRAINSia/BRAINSStandAlone/tree/master/BRAINSFit github]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSFit | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSDemonWarp&amp;diff=25831</id>
		<title>Documentation/4.1/Modules/BRAINSDemonWarp</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSDemonWarp&amp;diff=25831"/>
		<updated>2012-04-17T22:07:10Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Updating for 4.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
# &amp;quot;&amp;quot;&amp;quot;Registration&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Parsing - The images are initialized by the ValidationInputParser. This function reads in the arguments from a parameter file.  It sets the histogram bins, match points, number of levels in the multi resolution registration, shrink factors and number of iterations at each levels. If the orientation of the images are different, it sets the moving image orientation to that of the fixed image.&lt;br /&gt;
&lt;br /&gt;
# PreProcessing - In the next step the DemonsPreProcessor preprocesses the images by resampling the template image to target image space. The intensity mismatch problem is solved by histogram matching the images. Histogram matching is done only if the command line option -e is set. ItkHistogramMatchingImageFilter is used to perform this function. Another important step in preprocessing is skull stripping. Skull stripping is done only if the command line option -maskProcessingMode is set to BOBF. We have written an itk filter, named itkBOBFFilter for this purpose. This filter takes in an input image and a whole brain mask and outputs a Brain Only Background Filled(BOBF) image. The non-brain parts in the image are filled with the user specified background value. All computations are performed in the precision of ﬂoat data. &lt;br /&gt;
&lt;br /&gt;
# Registration - The resulting moving Image and the fixed image are given as inputs to the demons registrator.It uses the MultiResolutionPDEDeformableRegistration filter with NN extrapolation as interpolator and implements the demons deformable algorithm by computing the deformation field which will map a moving image onto a fixed image. It is assumed that the vector elements behave like ﬂoating point scalars. Each vector in the deformation field represent the distance between a geometric point in the input space and a point in the output space. The output image is generated by warping the input image with the deformation field using the ItkWarpImageFilter. WarpImageFilter warps an existing image with respect to a given deformation field. Typically the mapped position does not correspond to an integer pixel position in the input image. Interpolation via an image function is used to compute values at non-integer positions. We have used the LinearInterpolateImageFunction for our application. To write the output image we cast the image to the user specified output pixel type.&lt;br /&gt;
&lt;br /&gt;
The inputs to the BrainDemonsWarp program are &lt;br /&gt;
* the target image, &lt;br /&gt;
* the template image and &lt;br /&gt;
* optional parameters. &lt;br /&gt;
These parameters define the arguments for histogram matching and multi resolution registration. The outputs are &lt;br /&gt;
* the deformation field, &lt;br /&gt;
* the output image, &lt;br /&gt;
* a checkerboard comparison image of the output and the fixed image and &lt;br /&gt;
* the x,y,z displacement vectors. &lt;br /&gt;
If we specify the --debug option we can get the outputs at different stages. The filter is templated over the input image type, real image type and the output image types. We implement the algorithm by parsing the inputs, preprocessing them and registering the processed images.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* Point to other modules that have similar functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
For extensions: link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSDemonWarp | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Talk:Modules:BRAINSDemonWarp&amp;diff=25828</id>
		<title>Talk:Modules:BRAINSDemonWarp</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Talk:Modules:BRAINSDemonWarp&amp;diff=25828"/>
		<updated>2012-04-17T21:52:35Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Use Cases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Use Cases ==&lt;br /&gt;
&amp;quot;Use Cases&amp;quot; 1-3 are steps in the algorithm description?  Fix in version 4.1&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSResample&amp;diff=25827</id>
		<title>Documentation/4.1/Modules/BRAINSResample</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSResample&amp;diff=25827"/>
		<updated>2012-04-17T21:02:57Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Updated for 4.1 release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor1: Vincent Magnotta, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Most frequently used for these scenarios:&lt;br /&gt;
&lt;br /&gt;
# Change an image's resolution and spacing.&lt;br /&gt;
# Apply a transformation to an image (using an ITK transform IO mechanisms)&lt;br /&gt;
# Warping an image (using a vector image deformation field).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* [[Documentation/4.1/Modules/ResampleScalarVolume]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
For extensions: link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSResample | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25821</id>
		<title>Documentation/4.1/Modules/BRAINSFit</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25821"/>
		<updated>2012-04-17T18:34:44Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Updated for 4.1 release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor1: Kent Williams, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor2: Vincent Magnotta, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor3: Andriy Fedorov, BWH&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Most frequently used for these scenarios:&lt;br /&gt;
&lt;br /&gt;
# '''''Same Subject: Longitudinal'''''&lt;br /&gt;
&lt;br /&gt;
For this case we're registering a baseline T1 scan with a follow-up T1 scan on the same subject a year later.  The two images are available on [http://midas.kitware.com/item/view/483 Midas] as testT1.nii.gz and testT1Longitudinal.nii.gz&lt;br /&gt;
&lt;br /&gt;
First, set the fixed and moving volumes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT1Longitudinal.nii.gz \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next, set the output transform and volume:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the input scans are of the same subject we can assume very little has changed in the last year, so we'll use a Rigid registration.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{note}}If the registration is poor or there are reasons to expect anatomical changes (tumor growth, rapid disease progression, etc.) additional transforms may be needed.  In that case they can be added in a comma separated list, such as &amp;quot;Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline&amp;quot;.  Available methods are:&lt;br /&gt;
* Rigid&lt;br /&gt;
* ScaleVersor3D&lt;br /&gt;
* ScaleSkewVersor3D&lt;br /&gt;
* Affine&lt;br /&gt;
* BSpline&lt;br /&gt;
&amp;lt;pre title=&amp;quot;Example: multiple registration methods&amp;quot;&amp;gt;&lt;br /&gt;
Example: multiple registration methods&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch to match the intensity profiles as this tends to help the registration.  If there are lesions or tumors that vary between images this may not be a good idea, since it will make it harder to detect differences between the images.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. The available transform modes are:&lt;br /&gt;
* useCenterOfHeadAlign&lt;br /&gt;
* useCenterOfROIAlign&lt;br /&gt;
* useMomentsAlign&lt;br /&gt;
* useGeometryAlign&lt;br /&gt;
We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO (other options are NOMASK and ROI).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask to make the tissue boundary very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under &amp;quot;Registration Debugging Parameters&amp;quot; if using the GUI).  These values are in millimeters and a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT1Longitudinal.nii.gz \&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:LongitudinalCheckerboardPreReg.png|thumb|180px|Longitudinal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:LogitudinalCheckerboardPostReg.png|thumb|180px|Longitudinal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# '''''Same Subject: MultiModal'''''&lt;br /&gt;
&lt;br /&gt;
For this use case we're registering a T1 scan with a T2 scan collected in the same session.  The two images are again available on [http://midas.kitware.com/item/view/483 Midas] as testT1.nii.gz and testT2.nii.gz&lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT2.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since these are the same subject, same session we'll use a Rigid registration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are different modalities so we absolutely DO NOT want to use --histogramMatch to match the intensity profiles! This would try to map T2 intensities into T1 intensities resulting in an image that is neither, and hence useless.&lt;br /&gt;
&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO (other options are NOMASK and ROI).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask to make the tissue boundary very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under &amp;quot;Registration Debugging Parameters&amp;quot; if using the GUI).  These values are in millimeters and a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT2.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:T1T2PreRegCheckerboard.png|thumb|180px|Multimodal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:T1T2RegCheckerboard.png|thumb|180px|Multimodal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''''Mouse Registration'''''&lt;br /&gt;
&lt;br /&gt;
Here we'll register brains from two different mice together.  The fixed and moving mouse brains used in this example are available on [http://midas.kitware.com/item/view/483 Midas]. &lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the subjects are different we are going to use transforms all the way through BSpline. &lt;br /&gt;
{{note}}Building up transforms one type at a time can't hurt and might help, so we're including all transforms from Rigid through BSpline in the transformType parameter.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode but we aren't working with human heads this time, so we can't pick useCenterOfHeadAlign! Instead we pick useMomentsAlign which does a reasonable job of selecting the centers of mass.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the mouse brains are much smaller than human brains there are a few advanced parameters we'll need to tweak, ROIAutoClosingSize and ROIAutoDilateSize (both under Registration Debugging Parameters if using the GUI).  These values are in millimeters and a good starting value for mice is 0.9.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lastly, we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:MouseCheckerboardPreRegistration.png|thumb|180px|Mouse Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:MouseCheckerboardPostRegistration.png|thumb|180px|Mouse Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
Legacy&lt;br /&gt;
* [[Documentation/4.1/Modules/RigidRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/AffineRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/BSplineDeformableRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/ExpertAutomatedRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/LinearRegistration]]&lt;br /&gt;
* [[Documentation/4.1/Modules/MultiResolutionAffineRegistration]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [http://hdl.handle.net/1926/1291 BRAINSFit: Mutual Information Registrations of Whole-Brain 3D Images, Using the Insight Toolkit], Johnson H.J., Harris G., Williams K., The Insight Journal, 2007.&lt;br /&gt;
* Source repository on [https://github.com/BRAINSia/BRAINSStandAlone/tree/master/BRAINSFit github]&lt;br /&gt;
For extensions, link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSFit | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/ForegroundMasking&amp;diff=25818</id>
		<title>Documentation/4.1/Modules/ForegroundMasking</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/ForegroundMasking&amp;diff=25818"/>
		<updated>2012-04-17T16:29:44Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: using module-developerinfo-UIowa template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Most frequently used for these scenarios:&lt;br /&gt;
&lt;br /&gt;
* Use Case 1: Creating a rough brain mask.&lt;br /&gt;
* Use Case 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* Point to other modules that have similar functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
For extensions: link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | ForegroundMasking | Segmentation | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSDemonWarp&amp;diff=25817</id>
		<title>Documentation/4.1/Modules/BRAINSDemonWarp</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSDemonWarp&amp;diff=25817"/>
		<updated>2012-04-17T16:28:02Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: using module-developerinfo-UIowa template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
&lt;br /&gt;
The inputs to the BrainDemonsWarp program are the target image, the template image and the optional parameters. These parameters define the arguments for histogram matching and multi resolution registration. The outputs are the deformation field, output image, checkerboard image of the output and the fixed image and the x,y,z displacement vectors. If we specify debug option we can get the outputs at different stages. The filter is templated over the input image type, real image type and the output image types. We implement the algorithm by parsing the input, preprocessing them and registering the processed images.&lt;br /&gt;
&lt;br /&gt;
* Use Case 1: Parsing - The images are initialized by the ValidationInputParser. This function reads in the arguments from the parameter file. It sets the histogram bins, match points, number of levels in the multi resolution registration, shrink factors and number of iterations at each levels. If the orientations of the images are different it sets the orientation of the moving image to that of the fixed image.&lt;br /&gt;
* Use Case 2: PreProcessing - In the next step the DemonsPreProcessor preprocesses the images by resampling the template image to target image space. The intensity mismatch problem is solved by histogram matching the images. Histogram matching is done only if the command line option -e is set. ItkHistogramMatchingImageFilter is used to perform this function. Another important step in preprocessing is skull stripping. Skull stripping is done only if the command line option -maskProcessingMode is set to BOBF. We have written an itk filter, named itkBOBFFilter for this purpose. This filter takes in an input image and a whole brain mask and outputs a Brain Only Background Filled(BOBF) image. The non-brain parts in the image are filled with the user specified background value. All computations are performed in the precision of ﬂoat data. &lt;br /&gt;
* Use Case 3: Registration - The resulting moving Image and the fixed image are given as inputs to the demons registrator.It uses the MultiResolutionPDEDeformableRegistration filter with NN extrapolation as interpolator and implements the demons deformable algorithm by computing the deformation field which will map a moving image onto a fixed image. It is assumed that the vector elements behave like ﬂoating point scalars. Each vector in the deformation field represent the distance between a geometric point in the input space and a point in the output space. The output image is generated by warping the input image with the deformation field using the ItkWarpImageFilter. WarpImageFilter warps an existing image with respect to a given deformation field. Typically the mapped position does not correspond to an integer pixel position in the input image. Interpolation via an image function is used to compute values at non-integer positions. We have used the LinearInterpolateImageFunction for our application. To write the output image we cast the image to the user specified output pixel type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* Point to other modules that have similar functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
For extensions: link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSDemonWarp | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSResample&amp;diff=25816</id>
		<title>Documentation/4.1/Modules/BRAINSResample</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSResample&amp;diff=25816"/>
		<updated>2012-04-17T16:27:01Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: using module-developerinfo-UIowa template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor1: Vincent Magnotta, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Most frequently used for these scenarios:&lt;br /&gt;
&lt;br /&gt;
* Use Case 1: Change an image's resolution and spacing.&lt;br /&gt;
* Use Case 2: Apply a transformation to an image (using an ITK transform IO mechanisms)&lt;br /&gt;
* Use Case 3: Warping an image (using a vector image deformation field).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* Point to other modules that have similar functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
For extensions: link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSResample | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25815</id>
		<title>Documentation/4.1/Modules/BRAINSFit</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25815"/>
		<updated>2012-04-17T16:23:19Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Calling module-developerinfo-UIowa&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor1: Kent Williams, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor2: Vincent Magnotta, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor3: Andriy Fedorov, BWH&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Most frequently used for these scenarios:&lt;br /&gt;
&lt;br /&gt;
* '''''Use Case 1: Same Subject: Longitudinal'''''&lt;br /&gt;
&lt;br /&gt;
For this use case we're registering a baseline T1 scan with a follow-up T1 scan on the same subject a year later.  The two images are again available on [http://midas.kitware.com/item/view/483 Midas] as testT1.nii.gz and testT1Longitudinal.nii.gz&lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT1Longitudinal.nii.gz \&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since these are the same subject and very little has likely changed in the last year we'll use a Rigid registration.  If the registration is poor or there are reasons to expect anatomical changes then additional transforms may be needed, in which case they can be added in a comma separated list, such as &amp;quot;Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch to match the intensity profiles as this tends to help registration.  If there are lesions or tumors that vary between images this may not be a good idea, as it will make it harder to detect differences between the images.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask that way the tissue boundary is very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under Registration Debugging Parameters if using the GUI).  These values are in millimeters so a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Last we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead of linear.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT1Longitudinal.nii.gz \&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:LongitudinalCheckerboardPreReg.png|thumb|180px|Longitudinal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:LogitudinalCheckerboardPostReg.png|thumb|180px|Longitudinal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''''Use Case 2: Same Subject: MultiModal'''''&lt;br /&gt;
&lt;br /&gt;
For this use case we're registering a T1 scan with a T2 scan collected in the same session.  The two images are again available on [http://midas.kitware.com/item/view/483 Midas] as testT1.nii.gz and testT2.nii.gz&lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT2.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since these are the same subject, same session we'll use a Rigid registration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are different modalities so we absolutely DO NOT want to use --histogramMatch to match the intensity profiles as this would try to map the T2 intensities into T1 intensities, resulting in an image that was neither, and hence useless.&lt;br /&gt;
&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask that way the tissue boundary is very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under Registration Debugging Parameters if using the GUI).  These values are in millimeters so a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Last we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead of linear.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT2.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:T1T2PreRegCheckerboard.png|thumb|180px|Multimodal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:T1T2RegCheckerboard.png|thumb|180px|Multimodal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''''Use Case 3: Mouse Registration'''''&lt;br /&gt;
&lt;br /&gt;
Here we'll register brains from two different mice together.  The fixed and moving mouse brains used in this example are available on [http://midas.kitware.com/item/view/483 Midas]. &lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the subjects are different we are going to use transforms all the way through BSpline. Again, building up transforms one type at a time can't hurt and might help, so we're including all transforms from Rigid through BSpline in the transformType parameter.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode but we are't working with human heads so we can't pick useCenterOfHeadAlign. Instead we pick useMomentsAlign which does a reasonable job of selecting the centers of mass.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the mouse brains are much smaller than human brains there are a few advanced parameters we'll need to tweak, ROIAutoClosingSize and ROIAutoDilateSize (both under Registration Debugging Parameters if using the GUI).  These values are in millimeters so a good starting value for mice is 0.9.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Last we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead of linear.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:MouseCheckerboardPreRegistration.png|thumb|180px|Mouse Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:MouseCheckerboardPostRegistration.png|thumb|180px|Mouse Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* Point to other modules that have similar functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [http://hdl.handle.net/1926/1291 BRAINSFit: Mutual Information Registrations of Whole-Brain 3D Images, Using the Insight Toolkit], Johnson H.J., Harris G., Williams K., The Insight Journal, 2007.&lt;br /&gt;
* Source repository on [https://github.com/BRAINSia/BRAINSStandAlone/tree/master/BRAINSFit github]&lt;br /&gt;
For extensions: link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSFit | Registration | See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25814</id>
		<title>Template:Documentation/4.1/module-developerinfo-UIowa</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25814"/>
		<updated>2012-04-17T16:21:50Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Input descriptions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo&lt;br /&gt;
| {{{1}}} &lt;br /&gt;
| amboxType = notice &lt;br /&gt;
| image = [[Image:UIowaDome-Medium.gif|40px|Iowa Dome]] &lt;br /&gt;
| category ={{{2}}} &lt;br /&gt;
| text = {{{3}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Template for BRAINS (and other University of Iowa) developer info section.  &lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Inputs:&lt;br /&gt;
&amp;lt;li&amp;gt; Module name&lt;br /&gt;
&amp;lt;li&amp;gt; Category&lt;br /&gt;
&amp;lt;li&amp;gt; Text&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSFit | Registration | See above text.}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa&lt;br /&gt;
| BRAINSFit&lt;br /&gt;
| Registration&lt;br /&gt;
| See above text.}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Templates|{{PAGENAME}}]]&lt;br /&gt;
[[Category:Templates:Documentation/{{documentation/version}}|{{PAGENAME}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25813</id>
		<title>Template:Documentation/4.1/module-developerinfo-UIowa</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25813"/>
		<updated>2012-04-17T16:18:03Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Correctly referencing parent template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo&lt;br /&gt;
| {{{1}}} &lt;br /&gt;
| amboxType = notice &lt;br /&gt;
| image = [[Image:UIowaDome-Medium.gif|40px|Iowa Dome]] &lt;br /&gt;
| category ={{{2}}} &lt;br /&gt;
| text = {{{3}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Template for BRAINS (and other University of Iowa) developer info section&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSFit | Registration | See above text.}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa&lt;br /&gt;
| BRAINSFit&lt;br /&gt;
| Registration&lt;br /&gt;
| See above text.}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Templates|{{PAGENAME}}]]&lt;br /&gt;
[[Category:Templates:Documentation/{{documentation/version}}|{{PAGENAME}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo&amp;diff=25812</id>
		<title>Template:Documentation/4.1/module-developerinfo</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo&amp;diff=25812"/>
		<updated>2012-04-17T16:17:16Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{ambox&lt;br /&gt;
| type  = {{{amboxType|protection}}}&lt;br /&gt;
| image = {{{image|[[File:InProgress.png|40px|alt=Work in progress]]}}}&lt;br /&gt;
| text  = {{{text|Section under construction.}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Type: {{{type}}}&lt;br /&gt;
&lt;br /&gt;
Category: {{{category}}}&lt;br /&gt;
&lt;br /&gt;
==Notes from the Developer(s)==&lt;br /&gt;
&lt;br /&gt;
Developer notes for {{{1}}} will be automatically listed.&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Dependencies of {{{1}}} will be automatically listed.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Known bugs of {{{1}}} will be automatically listed.&lt;br /&gt;
&lt;br /&gt;
==Tests==&lt;br /&gt;
&lt;br /&gt;
On the [http://cdash.org/slicer4 Slicer4 Dashboard], these tests verify that the module is working on various platforms:&lt;br /&gt;
&lt;br /&gt;
* [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Applications/CLI/{{{1}}}/Testing/ Test source code directory for {{{1}}}]&lt;br /&gt;
&lt;br /&gt;
==Source code &amp;amp; documentation==&lt;br /&gt;
&lt;br /&gt;
Doxygen documentation and source files of {{{1}}} will be automatically listed.--&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{documentation/{{documentation/version}}/module-developerinfo|Image Guided Therapy|text=Image Guided Therapy|image=[[File:Logo-IGT-i.png]]|amboxType=notice|type=CLI|category=Filtering}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo&lt;br /&gt;
| Image Guided Therapy&lt;br /&gt;
| text=Image Guided Therapy&lt;br /&gt;
| image=[[File:Logo-IGT-i.png]]&lt;br /&gt;
| amboxType=notice&lt;br /&gt;
| type=CLI&lt;br /&gt;
| category=Filtering}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Templates|{{PAGENAME}}]]&lt;br /&gt;
[[Category:Templates:Documentation/{{documentation/version}}|{{PAGENAME}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25810</id>
		<title>Template:Documentation/4.1/module-developerinfo-UIowa</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25810"/>
		<updated>2012-04-17T15:45:48Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Added &amp;lt;noinclude&amp;gt; info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{module-developerinfo &lt;br /&gt;
| {{{1}}} &lt;br /&gt;
| amboxType = notice &lt;br /&gt;
| image = [[Image:UIowaDome-Medium.gif|40px|Iowa Dome]] &lt;br /&gt;
| category ={{{2}}} &lt;br /&gt;
| text = {{{3}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
Template for BRAINS (and other University of Iowa) developer info section&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{documentation/{{documentation/version}}/module-developerinfo-UIowa | BRAINSFit | Registration | BRAINSFit}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo-UIowa&lt;br /&gt;
| BRAINSFit&lt;br /&gt;
| Registration&lt;br /&gt;
| BRAINSFit}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Templates|{{PAGENAME}}]]&lt;br /&gt;
[[Category:Templates:Documentation/{{documentation/version}}|{{PAGENAME}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1&amp;diff=25808</id>
		<title>Template:Documentation/4.1</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1&amp;diff=25808"/>
		<updated>2012-04-17T15:38:38Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Removed pointer to hack&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25806</id>
		<title>Template:Documentation/4.1/module-developerinfo-UIowa</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25806"/>
		<updated>2012-04-17T15:37:54Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: moved Template:Documentation/4.1 to Template:Documentation/4.1/module-developerinfo-UIowa:&amp;amp;#32;Child template of module-developerinfo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{module-developerinfo &lt;br /&gt;
| {{{1}}} &lt;br /&gt;
| amboxType = notice &lt;br /&gt;
| image = [[Image:UIowaDome-Medium.gif|40px|Iowa Dome]] &lt;br /&gt;
| category ={{{2}}} &lt;br /&gt;
| text = {{{3}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template for BRAINS (and other University of Iowa) developer info section&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1&amp;diff=25807</id>
		<title>Template:Documentation/4.1</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1&amp;diff=25807"/>
		<updated>2012-04-17T15:37:54Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: moved Template:Documentation/4.1 to Template:Documentation/4.1/module-developerinfo-UIowa:&amp;amp;#32;Child template of module-developerinfo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Documentation/4.1/module-developerinfo-UIowa]]&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25803</id>
		<title>Template:Documentation/4.1/module-developerinfo-UIowa</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo-UIowa&amp;diff=25803"/>
		<updated>2012-04-17T15:36:45Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Created page with '&amp;lt;includeonly&amp;gt; {{module-developerinfo  | {{{1}}}  | amboxType = notice  | image = Iowa Dome  | category ={{{2}}}  | text = {{{3}}} }} &amp;lt;/include…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{module-developerinfo &lt;br /&gt;
| {{{1}}} &lt;br /&gt;
| amboxType = notice &lt;br /&gt;
| image = [[Image:UIowaDome-Medium.gif|40px|Iowa Dome]] &lt;br /&gt;
| category ={{{2}}} &lt;br /&gt;
| text = {{{3}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template for BRAINS (and other University of Iowa) developer info section&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:UIowaDome-Medium.gif&amp;diff=25800</id>
		<title>File:UIowaDome-Medium.gif</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:UIowaDome-Medium.gif&amp;diff=25800"/>
		<updated>2012-04-17T15:23:23Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Medium dome logo (http://www.uiowa.edu/brand/graphic-identity/logo-wordmark/web/index.html)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Medium dome logo (http://www.uiowa.edu/brand/graphic-identity/logo-wordmark/web/index.html)&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:UIowaDome-Small.gif&amp;diff=25799</id>
		<title>File:UIowaDome-Small.gif</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:UIowaDome-Small.gif&amp;diff=25799"/>
		<updated>2012-04-17T15:22:39Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Small dome logo (http://www.uiowa.edu/brand/graphic-identity/logo-wordmark/web/index.html)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Small dome logo (http://www.uiowa.edu/brand/graphic-identity/logo-wordmark/web/index.html)&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25780</id>
		<title>Documentation/4.1/Modules/BRAINSFit</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Modules/BRAINSFit&amp;diff=25780"/>
		<updated>2012-04-16T22:15:15Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
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].&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Hans Johnson, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor1: Kent Williams, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor2: Vincent Magnotta, UIOWA&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor3: Andriy Fedorov, BWH&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Hans Johnson, &amp;lt;email&amp;gt;(hans-johnson@uiowa.edu&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|Image:UIOWA-logo.png|University of Iowa&lt;br /&gt;
|Image:Logo-splnew.jpg|Surgical Planning Laboratory&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Most frequently used for these scenarios:&lt;br /&gt;
&lt;br /&gt;
* '''''Use Case 1: Same Subject: Longitudinal'''''&lt;br /&gt;
&lt;br /&gt;
For this use case we're registering a baseline T1 scan with a follow-up T1 scan on the same subject a year later.  The two images are again available on [http://midas.kitware.com/item/view/483 Midas] as testT1.nii.gz and testT1Longitudinal.nii.gz&lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT1Longitudinal.nii.gz \&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since these are the same subject and very little has likely changed in the last year we'll use a Rigid registration.  If the registration is poor or there are reasons to expect anatomical changes then additional transforms may be needed, in which case they can be added in a comma separated list, such as &amp;quot;Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch to match the intensity profiles as this tends to help registration.  If there are lesions or tumors that vary between images this may not be a good idea, as it will make it harder to detect differences between the images.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask that way the tissue boundary is very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under Registration Debugging Parameters if using the GUI).  These values are in millimeters so a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Last we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead of linear.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT1Longitudinal.nii.gz \&lt;br /&gt;
--outputVolume testT1LongRegFixed.nii.gz \&lt;br /&gt;
--outputTransform longToBase.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:LongitudinalCheckerboardPreReg.png|thumb|180px|Longitudinal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:LogitudinalCheckerboardPostReg.png|thumb|180px|Longitudinal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''''Use Case 2: Same Subject: MultiModal'''''&lt;br /&gt;
&lt;br /&gt;
For this use case we're registering a T1 scan with a T2 scan collected in the same session.  The two images are again available on [http://midas.kitware.com/item/view/483 Midas] as testT1.nii.gz and testT2.nii.gz&lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT2.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since these are the same subject, same session we'll use a Rigid registration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are different modalities so we absolutely DO NOT want to use --histogramMatch to match the intensity profiles as this would try to map the T2 intensities into T1 intensities, resulting in an image that was neither, and hence useless.&lt;br /&gt;
&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode. We're working with human heads so we pick useCenterOfHeadAlign, which detects the center of head even with varying amounts of neck or shoulders present.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The registration generally performs better if we include some background in the mask that way the tissue boundary is very clear.  The parameter that expands the mask outside the brain is ROIAutoDilateSize (under Registration Debugging Parameters if using the GUI).  These values are in millimeters so a good starting value is 3.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Last we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead of linear.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume testT1.nii.gz \&lt;br /&gt;
--movingVolume testT2.nii.gz \&lt;br /&gt;
--outputVolume testT2RegT1.nii.gz \&lt;br /&gt;
--outputTransform T2ToT1.xform \&lt;br /&gt;
--transformType Rigid \&lt;br /&gt;
--initializeTransformMode useCenterOfHeadAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoDilateSize 3 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:T1T2PreRegCheckerboard.png|thumb|180px|Multimodal Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:T1T2RegCheckerboard.png|thumb|180px|Multimodal Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''''Use Case 3: Mouse Registration'''''&lt;br /&gt;
&lt;br /&gt;
Here we'll register brains from two different mice together.  The fixed and moving mouse brains used in this example are available on [http://midas.kitware.com/item/view/483 Midas]. &lt;br /&gt;
&lt;br /&gt;
First we set the fixed and moving volumes as well as the output transform and output volume names.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the subjects are different we are going to use transforms all the way through BSpline. Again, building up transforms one type at a time can't hurt and might help, so we're including all transforms from Rigid through BSpline in the transformType parameter.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The scans are the same modality so we'll use --histogramMatch.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To start with the best possible initial alignment we use --initializeTransformMode but we are't working with human heads so we can't pick useCenterOfHeadAlign. Instead we pick useMomentsAlign which does a reasonable job of selecting the centers of mass.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ROI masks normally improve registration but we haven't generated any so we turn on --maskProcessingMode ROIAUTO.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Since the mouse brains are much smaller than human brains there are a few advanced parameters we'll need to tweak, ROIAutoClosingSize and ROIAutoDilateSize (both under Registration Debugging Parameters if using the GUI).  These values are in millimeters so a good starting value for mice is 0.9.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Last we set the interpolation mode to be Linear, which is a decent tradeoff between quality and speed.  If the best possible interpolation is needed regardless of processing time, select WindowedSync instead of linear.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full command is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BRAINSFit --fixedVolume mouseFixed.nii.gz \&lt;br /&gt;
--movingVolume mouseMoving.nii.gz \&lt;br /&gt;
--outputVolume movingRegFixed.nii.gz \&lt;br /&gt;
--outputTransform movingToFixed.xform \&lt;br /&gt;
--transformType Rigid,ScaleVersor3D,ScaleSkewVersor3D,Affine,BSpline \&lt;br /&gt;
--histogramMatch \&lt;br /&gt;
--initializeTransformMode useMomentsAlign \&lt;br /&gt;
--maskProcessingMode ROIAUTO \&lt;br /&gt;
--ROIAutoClosingSize 0.9 \&lt;br /&gt;
--ROIAutoDilateSize 0.9 \&lt;br /&gt;
--interpolationMode Linear&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|  [[Image:MouseCheckerboardPreRegistration.png|thumb|180px|Mouse Checkerboard Before registration]]&lt;br /&gt;
|  [[Image:MouseCheckerboardPostRegistration.png|thumb|180px|Mouse Checkerboard After registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
Links to tutorials that use this module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
* Point to other modules that have similar functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [http://hdl.handle.net/1926/1291 BRAINSFit: Mutual Information Registrations of Whole-Brain 3D Images, Using the Insight Toolkit], Johnson H.J., Harris G., Williams K., The Insight Journal, 2007.&lt;br /&gt;
* Source repository on [https://github.com/BRAINSia/BRAINSStandAlone/tree/master/BRAINSFit github]&lt;br /&gt;
For extensions: link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo | BRAINSFit | amboxType = notice | image = [[Image:UIOWA-logo.png|40px|Iowa logo]] | category = Registration | text = See details above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo&amp;diff=25779</id>
		<title>Template:Documentation/4.1/module-developerinfo</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Template:Documentation/4.1/module-developerinfo&amp;diff=25779"/>
		<updated>2012-04-16T22:09:41Z</updated>

		<summary type="html">&lt;p&gt;Dmwelch: Undo remove comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{ambox&lt;br /&gt;
| type  = {{{amboxType|protection}}}&lt;br /&gt;
| image = {{{image|[[File:InProgress.png|40px|alt=Work in progress]]}}}&lt;br /&gt;
| text  = {{{text|Section under construction.}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Type: {{{type}}}&lt;br /&gt;
&lt;br /&gt;
Category: {{{category}}}&lt;br /&gt;
&lt;br /&gt;
==Notes from the Developer(s)==&lt;br /&gt;
&lt;br /&gt;
Developer notes for {{{1}}} will be automatically listed.&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Dependencies of {{{1}}} will be automatically listed.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Known bugs of {{{1}}} will be automatically listed.&lt;br /&gt;
&lt;br /&gt;
==Tests==&lt;br /&gt;
&lt;br /&gt;
On the [http://cdash.org/slicer4 Slicer4 Dashboard], these tests verify that the module is working on various platforms:&lt;br /&gt;
&lt;br /&gt;
* [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Applications/CLI/{{{1}}}/Testing/ Test source code directory for {{{1}}}]&lt;br /&gt;
&lt;br /&gt;
==Source code &amp;amp; documentation==&lt;br /&gt;
&lt;br /&gt;
Doxygen documentation and source files of {{{1}}} will be automatically listed.--&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{documentation/{{documentation/version}}/module-developerinfo|Image Guided Therapy|text=Image Guided Therapy|image=[[File:Logo-IGT-i.png]]|amboxType=notice|type=CLI|category=Filtering}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo&lt;br /&gt;
|Image Guided Therapy&lt;br /&gt;
|text=Image Guided Therapy&lt;br /&gt;
|image=[[File:Logo-IGT-i.png]]&lt;br /&gt;
|amboxType=notice&lt;br /&gt;
|type=CLI&lt;br /&gt;
|category=Filtering}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Templates|{{PAGENAME}}]]&lt;br /&gt;
[[Category:Templates:Documentation/{{documentation/version}}|{{PAGENAME}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmwelch</name></author>
		
	</entry>
</feed>