<?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=Gcasey</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=Gcasey"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/wiki/Special:Contributions/Gcasey"/>
	<updated>2026-04-18T10:23:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12856</id>
		<title>Documentation/3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12856"/>
		<updated>2010-03-28T21:07:04Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is work in progress&lt;br /&gt;
&lt;br /&gt;
=Main GUI=&lt;br /&gt;
&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:EventBindings-3.6| &amp;quot;Hot-keys&amp;quot; and Keyboard Shortcuts]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.)  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Saving-Documentation-3.6| Saving Data]]  (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)&lt;br /&gt;
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]]  (Wendy Plesniak)&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] &lt;br /&gt;
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
=Requirements for Modules=&lt;br /&gt;
{| border=&amp;quot;00&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| &lt;br /&gt;
* The module is '''feature complete''', it does everything that it advertises it can do&lt;br /&gt;
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.&lt;br /&gt;
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.5#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.&lt;br /&gt;
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]&lt;br /&gt;
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.&lt;br /&gt;
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. &lt;br /&gt;
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)&lt;br /&gt;
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]].  The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.&lt;br /&gt;
* Follow [[Documentation-3.5-Rons-Rules|&amp;quot;Ron's rules for tools&amp;quot;]]&lt;br /&gt;
| style=&amp;quot;background: #e5e5e5&amp;quot; align=&amp;quot;center&amp;quot;| Examples for the Help and &lt;br /&gt;
Acknowledgment Panels&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ebeced&amp;quot;|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=List of Modules added or significantly revised since the 3.4 release=&lt;br /&gt;
* Interactive Editor&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Colors (Nicole Aucoin)&lt;br /&gt;
* Atlas Creator (Sylvain Jaume)&lt;br /&gt;
* MRI Bias Field Correction (Sylvain Jaume)&lt;br /&gt;
* 4D Image (Viewer) (Junichi Tokuda)&lt;br /&gt;
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)&lt;br /&gt;
* Fast Marching segmentation (Andriy Fedorov)&lt;br /&gt;
* Gyri Contour Segmentation]] (Peter Karasev)&lt;br /&gt;
* Subvolume extraction with ROI widget (Andriy Fedorov)&lt;br /&gt;
* Registration Metrics (HD and DSC) (Haytham Elhawary)&lt;br /&gt;
* Measurements (rulers and angles) (Nicole Aucoin)&lt;br /&gt;
* Affine registration (Casey Goodlett)&lt;br /&gt;
* Collect Patient Fiducials (Andrew Wiles)&lt;br /&gt;
* IGT Tool Selector (Andrew Wiles)&lt;br /&gt;
* Fiducials (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
=List of pre-existing Modules=&lt;br /&gt;
==Core==&lt;br /&gt;
*[[Modules:Camera-Documentation-3.5| Camera Module]] (Sebastian Barre)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) &lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]]  (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin)  [[Modules:Measurements-Documentation-3.6 | '''3.6 in progress''']] &lt;br /&gt;
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
==Specialized Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta) transition '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Informatics Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.6| QDEC Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
*[[Slicer3:Registration|Overview of all Registration Modules ]] &lt;br /&gt;
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett)&lt;br /&gt;
**[[Modules:RegisterImagesMultiRes-Documentation-3.6|Register Images Robust Affine]] (Casey Goodlett)&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:TransformFromFiducials-Documentation-3.6|Fiducial-Based Registration]] (Casey Goodlett)&lt;br /&gt;
**[[Modules:Transforms-Documentation-3.4| Transforms Module for interactive rigid registration]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]] (Nicole Aucoin)&lt;br /&gt;
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]]  (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
*Overview (Kilian)&lt;br /&gt;
**[[Modules:EMSegment|EM Segment]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Simple|EM Segment Simple]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)&lt;br /&gt;
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Statistics===&lt;br /&gt;
*[[Modules:LabelStatistics-Documentation-3.4|Label Statistics]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Diffusion===&lt;br /&gt;
====DWI====&lt;br /&gt;
*Estimation&lt;br /&gt;
**[[Modules:DiffusionTensorEstimation-Documentation-3.4|Diffusion Tensor Estimation]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExtractBaseline-Documentation-3.4|Python Extract Baseline DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*Filter&lt;br /&gt;
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.4|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RicianLMMSEImageFilter-Documentation-3.4|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.4|Unbiased Non Local Means filter for DWI]]  (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ShiftDWIValues-Documentation-3.4|Python Shift DWI Values]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RecenterScalar2DWI-Documentation-3.4|Python Recenter Scalar to DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
*[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.4 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*Analysis&lt;br /&gt;
&lt;br /&gt;
====Tractography====&lt;br /&gt;
*[[Modules:ROISeeding-Documentation-3.4 | Label Seeding]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FiducialSeeding-Documentation-3.4|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DTIDisplay-Documentation-3.4|FiberBundles]] (Alex Yarmakovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:StochasticTractography-Documentation-3.4|Python Stochastic Tractography]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)   '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Time Series===&lt;br /&gt;
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)&lt;br /&gt;
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ImageLabelCombine-3.4|Image Label Combine]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin)  &lt;br /&gt;
*Arithmetic&lt;br /&gt;
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) &lt;br /&gt;
** [[Modules:MaskImage-Documentation-3.4|Mask Image]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*Denoising&lt;br /&gt;
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward)   '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*Morphology&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Surface Models===&lt;br /&gt;
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) &lt;br /&gt;
*Grayscale Model Maker (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GyriContourSegmentation-Documentation-3.5|Gyri Contour Segmentation]] (Peter Karasev)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ClipModel-Documentation-3.4| Clip Model]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
*[[Modules:EMSegmentBatch-Documentation-3.4|EM Segmenter batch]] (Julien Jomier, Brad Davis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GaussianBlurBatch-Documentation-3.4|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RegisterImagesBatch-Documentation-3.4|Register Images batch]] (Julien Finet, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolumeBatch-Documentation-3.4|Resample Volume batch]] (Julien Finet)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ExtractSubvolumeROI-Documentation-3.6|Subvolume extraction with ROI widget]] (Andriy Fedorov)&lt;br /&gt;
&lt;br /&gt;
=Slicer Extensions=&lt;br /&gt;
&lt;br /&gt;
==Extensions for Downloading==&lt;br /&gt;
===Introduction===&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.&lt;br /&gt;
* Some of the extensions do not use the Slicer license. Please review carefully.&lt;br /&gt;
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.&lt;br /&gt;
* The version that is available through the extension manager is chosen by the developer of that extension   &lt;br /&gt;
&lt;br /&gt;
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.&lt;br /&gt;
&lt;br /&gt;
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]&lt;br /&gt;
To add extension modules to an installed binary of slicer:&lt;br /&gt;
* Use the View-&amp;gt;Extension Manager menu option&lt;br /&gt;
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.&lt;br /&gt;
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.&lt;br /&gt;
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).&lt;br /&gt;
* Select the extensions you wish to install and click to download them.  Installed extensions will be available when you restart slicer.&lt;br /&gt;
* To turn modules on or off, you can use the Module Settings page of the View-&amp;gt;Application Settings dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
*Click on the icon to start the extensions wizard&lt;br /&gt;
[[image:ExtensionsWizard.png|Extensions Wizard]]&lt;br /&gt;
&lt;br /&gt;
===Listing of plug-ins===&lt;br /&gt;
&lt;br /&gt;
'''Available Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ARCTIC|ARCTIC]] Cedric Mathieu (ced.mathieu@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSROIAuto|BRAINSROIAuto]] Greg Harris (gregory-harris@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Thorsten Rolfry '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:DiffusionWarp|DiffusionWarp]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:EMDTIClustering-Documentation-3.5|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LesionSegmentationApplications|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LocalRegionSeg|LocalRegionSeg]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKSlicerModule|VmtkSlicerModule]] Daniel Haehn (haehn@bwh.harvard.edu) Prerequisite install for all VMTK plugins. '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKCenterlines|VMTKCenterlines]] Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms for initialization and evolution,  Daniel Haehn (haehn@bwh.harvard.edu) &lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] Daniel Haehn (haehn@bwh.harvard.edu) providing vessel enhancement filters to highlight vasculature or tubular structures '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example Extensions====&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Deprecated Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BubbleMaker|BubbleMaker]] Carlos Mendoza (carlos.sanchez.mendoza@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Non-SPL Supported Compatibility Packages'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12853</id>
		<title>Documentation/3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12853"/>
		<updated>2010-03-28T17:51:00Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is work in progress&lt;br /&gt;
&lt;br /&gt;
=Main GUI=&lt;br /&gt;
&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:EventBindings-3.6| &amp;quot;Hot-keys&amp;quot; and Keyboard Shortcuts]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.)  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Saving-Documentation-3.6| Saving Data]]  (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)&lt;br /&gt;
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]]  (Wendy Plesniak)&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] &lt;br /&gt;
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
=Requirements for Modules=&lt;br /&gt;
{| border=&amp;quot;00&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| &lt;br /&gt;
* The module is '''feature complete''', it does everything that it advertises it can do&lt;br /&gt;
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.&lt;br /&gt;
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.5#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.&lt;br /&gt;
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]&lt;br /&gt;
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.&lt;br /&gt;
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. &lt;br /&gt;
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)&lt;br /&gt;
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]].  The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.&lt;br /&gt;
* Follow [[Documentation-3.5-Rons-Rules|&amp;quot;Ron's rules for tools&amp;quot;]]&lt;br /&gt;
| style=&amp;quot;background: #e5e5e5&amp;quot; align=&amp;quot;center&amp;quot;| Examples for the Help and &lt;br /&gt;
Acknowledgment Panels&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ebeced&amp;quot;|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=List of Modules added or significantly revised since the 3.4 release=&lt;br /&gt;
* Interactive Editor&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Colors (Nicole Aucoin)&lt;br /&gt;
* Atlas Creator (Sylvain Jaume)&lt;br /&gt;
* MRI Bias Field Correction (Sylvain Jaume)&lt;br /&gt;
* 4D Image (Viewer) (Junichi Tokuda)&lt;br /&gt;
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)&lt;br /&gt;
* Fast Marching segmentation (Andriy Fedorov)&lt;br /&gt;
* Gyri Contour Segmentation]] (Peter Karasev)&lt;br /&gt;
* Subvolume extraction with ROI widget (Andriy Fedorov)&lt;br /&gt;
* Registration Metrics (HD and DSC) (Haytham Elhawary)&lt;br /&gt;
* Measurements (rulers and angles) (Nicole Aucoin)&lt;br /&gt;
* Affine registration (Casey Goodlett)&lt;br /&gt;
* Collect Patient Fiducials (Andrew Wiles)&lt;br /&gt;
* IGT Tool Selector (Andrew Wiles)&lt;br /&gt;
* Fiducials (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
=List of pre-existing Modules=&lt;br /&gt;
==Core==&lt;br /&gt;
*[[Modules:Camera-Documentation-3.5| Camera Module]] (Sebastian Barre)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) &lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]]  (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin)  [[Modules:Measurements-Documentation-3.6 | '''3.6 in progress''']] &lt;br /&gt;
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
==Specialized Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta) transition '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Informatics Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.6| QDEC Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
*[[Slicer3:Registration|Overview of all Registration Modules ]] &lt;br /&gt;
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RegisterImagesMultiRes-Documentation-3.6|Register Images Robust Affine]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:TransformFromFiducials-Documentation-3.6|Fiducial-Based Registration]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Transforms-Documentation-3.4| Transforms Module for interactive rigid registration]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]] (Nicole Aucoin)&lt;br /&gt;
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]]  (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
*Overview (Kilian)&lt;br /&gt;
**[[Modules:EMSegment|EM Segment]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Simple|EM Segment Simple]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)&lt;br /&gt;
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Statistics===&lt;br /&gt;
*[[Modules:LabelStatistics-Documentation-3.4|Label Statistics]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Diffusion===&lt;br /&gt;
====DWI====&lt;br /&gt;
*Estimation&lt;br /&gt;
**[[Modules:DiffusionTensorEstimation-Documentation-3.4|Diffusion Tensor Estimation]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExtractBaseline-Documentation-3.4|Python Extract Baseline DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*Filter&lt;br /&gt;
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.4|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RicianLMMSEImageFilter-Documentation-3.4|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.4|Unbiased Non Local Means filter for DWI]]  (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ShiftDWIValues-Documentation-3.4|Python Shift DWI Values]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RecenterScalar2DWI-Documentation-3.4|Python Recenter Scalar to DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
*[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.4 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*Analysis&lt;br /&gt;
&lt;br /&gt;
====Tractography====&lt;br /&gt;
*[[Modules:ROISeeding-Documentation-3.4 | Label Seeding]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FiducialSeeding-Documentation-3.4|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DTIDisplay-Documentation-3.4|FiberBundles]] (Alex Yarmakovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:StochasticTractography-Documentation-3.4|Python Stochastic Tractography]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)   '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Time Series===&lt;br /&gt;
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)&lt;br /&gt;
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ImageLabelCombine-3.4|Image Label Combine]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin)  &lt;br /&gt;
*Arithmetic&lt;br /&gt;
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) &lt;br /&gt;
** [[Modules:MaskImage-Documentation-3.4|Mask Image]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*Denoising&lt;br /&gt;
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward)   '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*Morphology&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Surface Models===&lt;br /&gt;
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) &lt;br /&gt;
*Grayscale Model Maker (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GyriContourSegmentation-Documentation-3.5|Gyri Contour Segmentation]] (Peter Karasev)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ClipModel-Documentation-3.4| Clip Model]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
*[[Modules:EMSegmentBatch-Documentation-3.4|EM Segmenter batch]] (Julien Jomier, Brad Davis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GaussianBlurBatch-Documentation-3.4|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RegisterImagesBatch-Documentation-3.4|Register Images batch]] (Julien Finet, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolumeBatch-Documentation-3.4|Resample Volume batch]] (Julien Finet)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ExtractSubvolumeROI-Documentation-3.6|Subvolume extraction with ROI widget]] (Andriy Fedorov)&lt;br /&gt;
&lt;br /&gt;
=Slicer Extensions=&lt;br /&gt;
&lt;br /&gt;
==Extensions for Downloading==&lt;br /&gt;
===Introduction===&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.&lt;br /&gt;
* Some of the extensions do not use the Slicer license. Please review carefully.&lt;br /&gt;
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.&lt;br /&gt;
* The version that is available through the extension manager is chosen by the developer of that extension   &lt;br /&gt;
&lt;br /&gt;
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.&lt;br /&gt;
&lt;br /&gt;
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]&lt;br /&gt;
To add extension modules to an installed binary of slicer:&lt;br /&gt;
* Use the View-&amp;gt;Extension Manager menu option&lt;br /&gt;
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.&lt;br /&gt;
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.&lt;br /&gt;
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).&lt;br /&gt;
* Select the extensions you wish to install and click to download them.  Installed extensions will be available when you restart slicer.&lt;br /&gt;
* To turn modules on or off, you can use the Module Settings page of the View-&amp;gt;Application Settings dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
*Click on the icon to start the extensions wizard&lt;br /&gt;
[[image:ExtensionsWizard.png|Extensions Wizard]]&lt;br /&gt;
&lt;br /&gt;
===Listing of plug-ins===&lt;br /&gt;
&lt;br /&gt;
'''Available Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ARCTIC|ARCTIC]] Cedric Mathieu (ced.mathieu@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSROIAuto|BRAINSROIAuto]] Greg Harris (gregory-harris@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Thorsten Rolfry '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:DiffusionWarp|DiffusionWarp]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:EMDTIClustering-Documentation-3.5|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LesionSegmentationApplications|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LocalRegionSeg|LocalRegionSeg]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKCenterlines|VTMKCenterlines]] Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKSlicerModule|VMTKkSlicerModule]] Daniel Haehn (haehn@bwh.harvard.edu) Prerequisite install for all VMTK plugins. '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] Daniel Haehn (haehn@bwh.harvard.edu) providing vessel enhancement filters to highlight vasculature or tubular structures '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example Extensions====&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Deprecated Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BubbleMaker|BubbleMaker]] Carlos Mendoza (carlos.sanchez.mendoza@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Non-SPL Supported Compatibility Packages'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12851</id>
		<title>Modules:TransformFromFiducials-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12851"/>
		<updated>2010-03-28T17:50:32Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: moved Modules:FiducialRegistration-Documentation-3.6 to Modules:TransformFromFiducials-Documentation-3.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
===Transform From Fiducials===&lt;br /&gt;
Transform From Fiducials&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images with fiducials attached by user]]&lt;br /&gt;
|[[Image:Fiducial_registration_after.jpg|thumb|280px|Images with transform applied to moving image based on fiducial alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This module computs a linear transform from two lists of fiducials.  The transform can either be translation only, rigid transform, or similarity transform.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The user must create two lists of fiducials with the ordering of the two lists implying correspondence.  That is point 1 of list 1 goes with point 1 of list 2.  Note that only points which are considered selected in the fiducials model are included.  For rigid and similarity transforms, the user must specify at least three points in each list.&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Use case 1: Registration initialization.  If the user can specify a few anatomical points (at least 3), this module can be used to generate a transform which can be used to initialize image based registration.&lt;br /&gt;
* IGT tasks that generate landmarks from a tracker automatically can use this module to compute transforms.&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
* '''Main panel:'''&lt;br /&gt;
** Fixed landmarks - target list of points.  The resulting transform maps an object onto the fixed landmarks.&lt;br /&gt;
** Moving landmarks - source list of points.  The result transform maps objects from this space to the fixed landmark space.&lt;br /&gt;
** Save Transform - Transform node to save the result in.  Typically a new transform should be created.&lt;br /&gt;
** Transform Type&lt;br /&gt;
*** Translation - The resulting transform is the translation vector between the centroid of the moving landmarks to the centroid of the fixed landmarks.&lt;br /&gt;
*** Rigid - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone.&lt;br /&gt;
*** Similarity - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone and the rotation is equivalent to that from the rigid transform.  This uses the symmetric formulation of computing the scaling factory given by Horn 1987, see reference below.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
This module is based on [http://www.itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html itk::LandmarkBasedTransformInitializer].  Additional code is internally used in the module to compute the scaling factor for similarity transforms.  This code is based on (Horn 1987).&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications/TransformFromFiducials.cxx TransformFromFidcuals.cxx ]&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications/TransformFromFiducials.xml TransformFromFidcuals.xml ]&lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing. &lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
 Berthold K. P. Horn (1987),&lt;br /&gt;
 &amp;quot;Closed-form solution of absolute orientation using unit quaternions,&amp;quot;&lt;br /&gt;
 Journal of the Optical Society of America A, 4:629-642&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:FiducialRegistration-Documentation-3.6&amp;diff=12852</id>
		<title>Modules:FiducialRegistration-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:FiducialRegistration-Documentation-3.6&amp;diff=12852"/>
		<updated>2010-03-28T17:50:32Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: moved Modules:FiducialRegistration-Documentation-3.6 to Modules:TransformFromFiducials-Documentation-3.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Modules:TransformFromFiducials-Documentation-3.6]]&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12850</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12850"/>
		<updated>2010-03-28T17:48:24Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* New Features in 3.6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== New Features in 3.6 ====&lt;br /&gt;
* Integration of transform nodes instead of reading/writing to files&lt;br /&gt;
* Integration of landmark module for specifying initialization&lt;br /&gt;
* Ability to specify a label mask on the fixed image for limiting regions of metric calculation&lt;br /&gt;
* Exposed metrics besides Mutual Information&lt;br /&gt;
* Simplified parameters&lt;br /&gt;
* Ability to include parameter presets distributed with Slicer&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
===Use Cases, Examples===&lt;br /&gt;
See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials-3.6.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12849</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12849"/>
		<updated>2010-03-28T17:46:39Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* New Features in 3.6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== New Features in 3.6 ====&lt;br /&gt;
* Integration of transform nodes instead of reading/writing to files&lt;br /&gt;
* Integration of landmark module for specifying initialization&lt;br /&gt;
* Exposed metrics besides Mutual Information&lt;br /&gt;
* Simplified parameters&lt;br /&gt;
* Ability to include parameter presets distributed with Slicer&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
===Use Cases, Examples===&lt;br /&gt;
See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials-3.6.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12848</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12848"/>
		<updated>2010-03-28T17:46:31Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Module Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== New Features in 3.6 ====&lt;br /&gt;
* Integration of transform nodes instead of reading/writing to files&lt;br /&gt;
* Integration of landmark module for specifying intialization&lt;br /&gt;
* Exposed metrics besides Mutual Information&lt;br /&gt;
* Simplified parameters&lt;br /&gt;
* Ability to include parameter presets distributed with Slicer&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
===Use Cases, Examples===&lt;br /&gt;
See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials-3.6.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12847</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12847"/>
		<updated>2010-03-28T17:44:54Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Major Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
===Use Cases, Examples===&lt;br /&gt;
See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials-3.6.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12846</id>
		<title>Documentation/3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12846"/>
		<updated>2010-03-28T17:40:33Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is work in progress&lt;br /&gt;
&lt;br /&gt;
=Main GUI=&lt;br /&gt;
&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:EventBindings-3.6| &amp;quot;Hot-keys&amp;quot; and Keyboard Shortcuts]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.)  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Saving-Documentation-3.6| Saving Data]]  (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)&lt;br /&gt;
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]]  (Wendy Plesniak)&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] &lt;br /&gt;
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
=Requirements for Modules=&lt;br /&gt;
{| border=&amp;quot;00&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| &lt;br /&gt;
* The module is '''feature complete''', it does everything that it advertises it can do&lt;br /&gt;
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.&lt;br /&gt;
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.5#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.&lt;br /&gt;
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]&lt;br /&gt;
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.&lt;br /&gt;
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. &lt;br /&gt;
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)&lt;br /&gt;
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]].  The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.&lt;br /&gt;
* Follow [[Documentation-3.5-Rons-Rules|&amp;quot;Ron's rules for tools&amp;quot;]]&lt;br /&gt;
| style=&amp;quot;background: #e5e5e5&amp;quot; align=&amp;quot;center&amp;quot;| Examples for the Help and &lt;br /&gt;
Acknowledgment Panels&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ebeced&amp;quot;|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=List of Modules added or significantly revised since the 3.4 release=&lt;br /&gt;
* Interactive Editor&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Colors (Nicole Aucoin)&lt;br /&gt;
* Atlas Creator (Sylvain Jaume)&lt;br /&gt;
* MRI Bias Field Correction (Sylvain Jaume)&lt;br /&gt;
* 4D Image (Viewer) (Junichi Tokuda)&lt;br /&gt;
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)&lt;br /&gt;
* Fast Marching segmentation (Andriy Fedorov)&lt;br /&gt;
* Gyri Contour Segmentation]] (Peter Karasev)&lt;br /&gt;
* Subvolume extraction with ROI widget (Andriy Fedorov)&lt;br /&gt;
* Registration Metrics (HD and DSC) (Haytham Elhawary)&lt;br /&gt;
* Measurements (rulers and angles) (Nicole Aucoin)&lt;br /&gt;
* Affine registration (Casey Goodlett)&lt;br /&gt;
* Collect Patient Fiducials (Andrew Wiles)&lt;br /&gt;
* IGT Tool Selector (Andrew Wiles)&lt;br /&gt;
* Fiducials (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
=List of pre-existing Modules=&lt;br /&gt;
==Core==&lt;br /&gt;
*[[Modules:Camera-Documentation-3.5| Camera Module]] (Sebastian Barre)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) &lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]]  (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin)  [[Modules:Measurements-Documentation-3.6 | '''3.6 in progress''']] &lt;br /&gt;
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
==Specialized Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta) transition '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Informatics Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.6| QDEC Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
*[[Slicer3:Registration|Overview of all Registration Modules ]] &lt;br /&gt;
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RegisterImagesMultiRes-Documentation-3.6|Register Images Robust Affine]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FiducialRegistration-Documentation-3.6|Fiducial-Based Registration]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Transforms-Documentation-3.4| Transforms Module for interactive rigid registration]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]] (Nicole Aucoin)&lt;br /&gt;
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]]  (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
*Overview (Kilian)&lt;br /&gt;
**[[Modules:EMSegment|EM Segment]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Simple|EM Segment Simple]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)&lt;br /&gt;
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Statistics===&lt;br /&gt;
*[[Modules:LabelStatistics-Documentation-3.4|Label Statistics]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Diffusion===&lt;br /&gt;
====DWI====&lt;br /&gt;
*Estimation&lt;br /&gt;
**[[Modules:DiffusionTensorEstimation-Documentation-3.4|Diffusion Tensor Estimation]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExtractBaseline-Documentation-3.4|Python Extract Baseline DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*Filter&lt;br /&gt;
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.4|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RicianLMMSEImageFilter-Documentation-3.4|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.4|Unbiased Non Local Means filter for DWI]]  (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ShiftDWIValues-Documentation-3.4|Python Shift DWI Values]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RecenterScalar2DWI-Documentation-3.4|Python Recenter Scalar to DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
*[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.4 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*Analysis&lt;br /&gt;
&lt;br /&gt;
====Tractography====&lt;br /&gt;
*[[Modules:ROISeeding-Documentation-3.4 | Label Seeding]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FiducialSeeding-Documentation-3.4|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DTIDisplay-Documentation-3.4|FiberBundles]] (Alex Yarmakovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:StochasticTractography-Documentation-3.4|Python Stochastic Tractography]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)   '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Time Series===&lt;br /&gt;
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)&lt;br /&gt;
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ImageLabelCombine-3.4|Image Label Combine]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin)  &lt;br /&gt;
*Arithmetic&lt;br /&gt;
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) &lt;br /&gt;
** [[Modules:MaskImage-Documentation-3.4|Mask Image]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*Denoising&lt;br /&gt;
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward)   '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*Morphology&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Surface Models===&lt;br /&gt;
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) &lt;br /&gt;
*Grayscale Model Maker (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GyriContourSegmentation-Documentation-3.5|Gyri Contour Segmentation]] (Peter Karasev)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ClipModel-Documentation-3.4| Clip Model]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
*[[Modules:EMSegmentBatch-Documentation-3.4|EM Segmenter batch]] (Julien Jomier, Brad Davis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GaussianBlurBatch-Documentation-3.4|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RegisterImagesBatch-Documentation-3.4|Register Images batch]] (Julien Finet, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolumeBatch-Documentation-3.4|Resample Volume batch]] (Julien Finet)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ExtractSubvolumeROI-Documentation-3.6|Subvolume extraction with ROI widget]] (Andriy Fedorov)&lt;br /&gt;
&lt;br /&gt;
=Slicer Extensions=&lt;br /&gt;
&lt;br /&gt;
==Extensions for Downloading==&lt;br /&gt;
===Introduction===&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.&lt;br /&gt;
* Some of the extensions do not use the Slicer license. Please review carefully.&lt;br /&gt;
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.&lt;br /&gt;
* The version that is available through the extension manager is chosen by the developer of that extension   &lt;br /&gt;
&lt;br /&gt;
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.&lt;br /&gt;
&lt;br /&gt;
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]&lt;br /&gt;
To add extension modules to an installed binary of slicer:&lt;br /&gt;
* Use the View-&amp;gt;Extension Manager menu option&lt;br /&gt;
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.&lt;br /&gt;
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.&lt;br /&gt;
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).&lt;br /&gt;
* Select the extensions you wish to install and click to download them.  Installed extensions will be available when you restart slicer.&lt;br /&gt;
* To turn modules on or off, you can use the Module Settings page of the View-&amp;gt;Application Settings dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
*Click on the icon to start the extensions wizard&lt;br /&gt;
[[image:ExtensionsWizard.png|Extensions Wizard]]&lt;br /&gt;
&lt;br /&gt;
===Listing of plug-ins===&lt;br /&gt;
&lt;br /&gt;
'''Available Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ARCTIC|ARCTIC]] Cedric Mathieu (ced.mathieu@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSROIAuto|BRAINSROIAuto]] Greg Harris (gregory-harris@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Thorsten Rolfry '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:DiffusionWarp|DiffusionWarp]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:EMDTIClustering-Documentation-3.5|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LesionSegmentationApplications|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LocalRegionSeg|LocalRegionSeg]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKCenterlines|VTMKCenterlines]] Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKSlicerModule|VMTKkSlicerModule]] Daniel Haehn (haehn@bwh.harvard.edu) Prerequisite install for all VMTK plugins. '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] Daniel Haehn (haehn@bwh.harvard.edu) providing vessel enhancement filters to highlight vasculature or tubular structures '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example Extensions====&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Deprecated Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BubbleMaker|BubbleMaker]] Carlos Mendoza (carlos.sanchez.mendoza@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Non-SPL Supported Compatibility Packages'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12845</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12845"/>
		<updated>2010-03-28T17:34:36Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
Register Images Robust Affine&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images before alignment]]&lt;br /&gt;
|[[Image:Fiducial_registration_after_multires.jpg|thumb|280px|Images after alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.  Several parts of the algorithm are based on a description of the FLIRT algorithm, see the Reference section.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* This module is intended to be a robust general-purpose mutual information affine registration tool&lt;br /&gt;
* See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
** Fixed Image ROI - A box specified by the ROI module to limit the region of the fixed image used for computing the image match metric.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* [http://na-mic.org/Mantis/view.php?id=789 Box ROI is slow]&lt;br /&gt;
* Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
*The algorithm here is based on the description of the flirt algorithm as described below.&lt;br /&gt;
*[http://www.fmrib.ox.ac.uk/analysis/research/flirt/]&lt;br /&gt;
*M. Jenkinson and S.M. Smith. A global optimisation method for robust affine registration of brain images. Medical Image Analysis, 5(2):143-156, 2001. &lt;br /&gt;
*M. Jenkinson, P.R. Bannister, J.M. Brady, and S.M. Smith. Improved optimisation for the robust and accurate linear registration and motion correction of brain images. NeuroImage, 17(2):825-841, 2002.&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12844</id>
		<title>Modules:TransformFromFiducials-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12844"/>
		<updated>2010-03-28T17:27:09Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
===Transform From Fiducials===&lt;br /&gt;
Transform From Fiducials&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images with fiducials attached by user]]&lt;br /&gt;
|[[Image:Fiducial_registration_after.jpg|thumb|280px|Images with transform applied to moving image based on fiducial alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This module computs a linear transform from two lists of fiducials.  The transform can either be translation only, rigid transform, or similarity transform.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The user must create two lists of fiducials with the ordering of the two lists implying correspondence.  That is point 1 of list 1 goes with point 1 of list 2.  Note that only points which are considered selected in the fiducials model are included.  For rigid and similarity transforms, the user must specify at least three points in each list.&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Use case 1: Registration initialization.  If the user can specify a few anatomical points (at least 3), this module can be used to generate a transform which can be used to initialize image based registration.&lt;br /&gt;
* IGT tasks that generate landmarks from a tracker automatically can use this module to compute transforms.&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
* '''Main panel:'''&lt;br /&gt;
** Fixed landmarks - target list of points.  The resulting transform maps an object onto the fixed landmarks.&lt;br /&gt;
** Moving landmarks - source list of points.  The result transform maps objects from this space to the fixed landmark space.&lt;br /&gt;
** Save Transform - Transform node to save the result in.  Typically a new transform should be created.&lt;br /&gt;
** Transform Type&lt;br /&gt;
*** Translation - The resulting transform is the translation vector between the centroid of the moving landmarks to the centroid of the fixed landmarks.&lt;br /&gt;
*** Rigid - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone.&lt;br /&gt;
*** Similarity - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone and the rotation is equivalent to that from the rigid transform.  This uses the symmetric formulation of computing the scaling factory given by Horn 1987, see reference below.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
This module is based on [http://www.itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html itk::LandmarkBasedTransformInitializer].  Additional code is internally used in the module to compute the scaling factor for similarity transforms.  This code is based on (Horn 1987).&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications/TransformFromFiducials.cxx TransformFromFidcuals.cxx ]&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications/TransformFromFiducials.xml TransformFromFidcuals.xml ]&lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing. &lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
 Berthold K. P. Horn (1987),&lt;br /&gt;
 &amp;quot;Closed-form solution of absolute orientation using unit quaternions,&amp;quot;&lt;br /&gt;
 Journal of the Optical Society of America A, 4:629-642&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12843</id>
		<title>Documentation/3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12843"/>
		<updated>2010-03-28T17:26:01Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is work in progress&lt;br /&gt;
&lt;br /&gt;
=Main GUI=&lt;br /&gt;
&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:EventBindings-3.6| &amp;quot;Hot-keys&amp;quot; and Keyboard Shortcuts]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.)  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Saving-Documentation-3.6| Saving Data]]  (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)&lt;br /&gt;
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]]  (Wendy Plesniak)&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] &lt;br /&gt;
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
=Requirements for Modules=&lt;br /&gt;
{| border=&amp;quot;00&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| &lt;br /&gt;
* The module is '''feature complete''', it does everything that it advertises it can do&lt;br /&gt;
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.&lt;br /&gt;
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.5#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.&lt;br /&gt;
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]&lt;br /&gt;
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.&lt;br /&gt;
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. &lt;br /&gt;
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)&lt;br /&gt;
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]].  The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.&lt;br /&gt;
* Follow [[Documentation-3.5-Rons-Rules|&amp;quot;Ron's rules for tools&amp;quot;]]&lt;br /&gt;
| style=&amp;quot;background: #e5e5e5&amp;quot; align=&amp;quot;center&amp;quot;| Examples for the Help and &lt;br /&gt;
Acknowledgment Panels&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ebeced&amp;quot;|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=List of Modules added or significantly revised since the 3.4 release=&lt;br /&gt;
* Interactive Editor&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Colors (Nicole Aucoin)&lt;br /&gt;
* Atlas Creator (Sylvain Jaume)&lt;br /&gt;
* MRI Bias Field Correction (Sylvain Jaume)&lt;br /&gt;
* 4D Image (Viewer) (Junichi Tokuda)&lt;br /&gt;
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)&lt;br /&gt;
* Fast Marching segmentation (Andriy Fedorov)&lt;br /&gt;
* Gyri Contour Segmentation]] (Peter Karasev)&lt;br /&gt;
* Subvolume extraction with ROI widget (Andriy Fedorov)&lt;br /&gt;
* Registration Metrics (HD and DSC) (Haytham Elhawary)&lt;br /&gt;
* Measurements (rulers and angles) (Nicole Aucoin)&lt;br /&gt;
* Affine registration (Casey Goodlett)&lt;br /&gt;
* Collect Patient Fiducials (Andrew Wiles)&lt;br /&gt;
* IGT Tool Selector (Andrew Wiles)&lt;br /&gt;
* Fiducials (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
=List of pre-existing Modules=&lt;br /&gt;
==Core==&lt;br /&gt;
*[[Modules:Camera-Documentation-3.5| Camera Module]] (Sebastian Barre)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) &lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]]  (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin)  [[Modules:Measurements-Documentation-3.6 | '''3.6 in progress''']] &lt;br /&gt;
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
==Specialized Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta) transition '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Informatics Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.6| QDEC Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
*[[Slicer3:Registration|Overview of all Registration Modules ]] &lt;br /&gt;
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RegisterImagesMultiRes-Documentation-3.6|Register Images Robust Affine]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FiducialRegistration-Documentation-3.6|Fiducial-Based Registration]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Transforms-Documentation-3.4| Transforms Module for interactive rigid registration]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]] (Nicole Aucoin)&lt;br /&gt;
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]]  (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
*Overview (Kilian)&lt;br /&gt;
**[[Modules:EMSegment|EM Segment]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Simple|EM Segment Simple]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)&lt;br /&gt;
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Statistics===&lt;br /&gt;
*[[Modules:LabelStatistics-Documentation-3.4|Label Statistics]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Diffusion===&lt;br /&gt;
====DWI====&lt;br /&gt;
*Estimation&lt;br /&gt;
**[[Modules:DiffusionTensorEstimation-Documentation-3.4|Diffusion Tensor Estimation]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExtractBaseline-Documentation-3.4|Python Extract Baseline DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*Filter&lt;br /&gt;
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.4|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RicianLMMSEImageFilter-Documentation-3.4|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.4|Unbiased Non Local Means filter for DWI]]  (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ShiftDWIValues-Documentation-3.4|Python Shift DWI Values]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RecenterScalar2DWI-Documentation-3.4|Python Recenter Scalar to DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
*[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.4 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*Analysis&lt;br /&gt;
&lt;br /&gt;
====Tractography====&lt;br /&gt;
*[[Modules:ROISeeding-Documentation-3.4 | Label Seeding]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FiducialSeeding-Documentation-3.4|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DTIDisplay-Documentation-3.4|FiberBundles]] (Alex Yarmakovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:StochasticTractography-Documentation-3.4|Python Stochastic Tractography]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)   '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Time Series===&lt;br /&gt;
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)&lt;br /&gt;
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ImageLabelCombine-3.4|Image Label Combine]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin)  &lt;br /&gt;
*Arithmetic&lt;br /&gt;
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) &lt;br /&gt;
** [[Modules:MaskImage-Documentation-3.4|Mask Image]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*Denoising&lt;br /&gt;
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward)   '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*Morphology&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Surface Models===&lt;br /&gt;
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) &lt;br /&gt;
*Grayscale Model Maker (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GyriContourSegmentation-Documentation-3.5|Gyri Contour Segmentation]] (Peter Karasev)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ClipModel-Documentation-3.4| Clip Model]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
*[[Modules:EMSegmentBatch-Documentation-3.4|EM Segmenter batch]] (Julien Jomier, Brad Davis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GaussianBlurBatch-Documentation-3.4|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RegisterImagesBatch-Documentation-3.4|Register Images batch]] (Julien Finet, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolumeBatch-Documentation-3.4|Resample Volume batch]] (Julien Finet)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ExtractSubvolumeROI-Documentation-3.6|Subvolume extraction with ROI widget]] (Andriy Fedorov)&lt;br /&gt;
&lt;br /&gt;
=Slicer Extensions=&lt;br /&gt;
&lt;br /&gt;
==Extensions for Downloading==&lt;br /&gt;
===Introduction===&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.&lt;br /&gt;
* Some of the extensions do not use the Slicer license. Please review carefully.&lt;br /&gt;
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.&lt;br /&gt;
* The version that is available through the extension manager is chosen by the developer of that extension   &lt;br /&gt;
&lt;br /&gt;
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.&lt;br /&gt;
&lt;br /&gt;
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]&lt;br /&gt;
To add extension modules to an installed binary of slicer:&lt;br /&gt;
* Use the View-&amp;gt;Extension Manager menu option&lt;br /&gt;
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.&lt;br /&gt;
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.&lt;br /&gt;
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).&lt;br /&gt;
* Select the extensions you wish to install and click to download them.  Installed extensions will be available when you restart slicer.&lt;br /&gt;
* To turn modules on or off, you can use the Module Settings page of the View-&amp;gt;Application Settings dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
*Click on the icon to start the extensions wizard&lt;br /&gt;
[[image:ExtensionsWizard.png|Extensions Wizard]]&lt;br /&gt;
&lt;br /&gt;
===Listing of plug-ins===&lt;br /&gt;
&lt;br /&gt;
'''Available Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ARCTIC|ARCTIC]] Cedric Mathieu (ced.mathieu@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSROIAuto|BRAINSROIAuto]] Greg Harris (gregory-harris@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Thorsten Rolfry '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:DiffusionWarp|DiffusionWarp]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:EMDTIClustering-Documentation-3.5|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LesionSegmentationApplications|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LocalRegionSeg|LocalRegionSeg]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKCenterlines|VTMKCenterlines]] Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKSlicerModule|VMTKkSlicerModule]] Daniel Haehn (haehn@bwh.harvard.edu) Prerequisite install for all VMTK plugins. '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] Daniel Haehn (haehn@bwh.harvard.edu) providing vessel enhancement filters to highlight vasculature or tubular structures '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example Extensions====&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Deprecated Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BubbleMaker|BubbleMaker]] Carlos Mendoza (carlos.sanchez.mendoza@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Non-SPL Supported Compatibility Packages'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12841</id>
		<title>Modules:TransformFromFiducials-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12841"/>
		<updated>2010-03-28T17:25:47Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: moved Modules:FiducialRegistration-Documentation-3.5 to Modules:FiducialRegistration-Documentation-3.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
===Transform From Fiducials===&lt;br /&gt;
Transform From Fiducials&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images with fiducials attached by user]]&lt;br /&gt;
|[[Image:Fiducial_registration_after.jpg|thumb|280px|Images with transform applied to moving image based on fiducial alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This module computs a linear transform from two lists of fiducials.  The transform can either be translation only, rigid transform, or similarity transform.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The user must create two lists of fiducials with the ordering of the two lists implying correspondence.  That is point 1 of list 1 goes with point 1 of list 2.  Note that only points which are considered selected in the fiducials model are included.  For rigid and similarity transforms, the user must specify at least three points in each list.&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Use case 1: Registration initialization.  If the user can specify a few anatomical points (at least 3), this module can be used to generate a transform which can be used to initialize image based registration.&lt;br /&gt;
* IGT tasks that generate landmarks from a tracker automatically can use this module to compute transforms.&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
* '''Main panel:'''&lt;br /&gt;
** Fixed landmarks - target list of points.  The resulting transform maps an object onto the fixed landmarks.&lt;br /&gt;
** Moving landmarks - source list of points.  The result transform maps objects from this space to the fixed landmark space.&lt;br /&gt;
** Save Transform - Transform node to save the result in.  Typically a new transform should be created.&lt;br /&gt;
** Transform Type&lt;br /&gt;
*** Translation - The resulting transform is the translation vector between the centroid of the moving landmarks to the centroid of the fixed landmarks.&lt;br /&gt;
*** Rigid - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone.&lt;br /&gt;
*** Similarity - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone and the rotation is equivalent to that from the rigid transform.  This uses the symmetric formulation of computing the scaling factory given by Horn 1987, see reference below.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
This module is based on [http://www.itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html itk::LandmarkBasedTransformInitializer].  Additional code is internally used in the module to compute the scaling factor for similarity transforms.  This code is based on (Horn 1987).&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications/TransformFromFiducials.cxx TransformFromFidcuals.cxx ]&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications/TransformFromFiducials.xml TransformFromFidcuals.xml ]&lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing. &lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
 Berthold K. P. Horn (1987),&lt;br /&gt;
 &amp;quot;Closed-form solution of absolute orientation using unit quaternions,&amp;quot;&lt;br /&gt;
 Journal of the Optical Society of America A, 4:629-642&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:FiducialRegistration-Documentation-3.5&amp;diff=12842</id>
		<title>Modules:FiducialRegistration-Documentation-3.5</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:FiducialRegistration-Documentation-3.5&amp;diff=12842"/>
		<updated>2010-03-28T17:25:47Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: moved Modules:FiducialRegistration-Documentation-3.5 to Modules:FiducialRegistration-Documentation-3.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Modules:FiducialRegistration-Documentation-3.6]]&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12840</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12840"/>
		<updated>2010-03-28T17:25:19Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
Register Images Robust Affine&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images before alignment]]&lt;br /&gt;
|[[Image:Fiducial_registration_after_multires.jpg|thumb|280px|Images after alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.  Several parts of the algorithm are based on a description of the FLIRT algorithm, see the Reference section.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* This module is intended to be a robust general-purpose mutual information affine registration tool&lt;br /&gt;
* See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
** Fixed Image ROI - A box specified by the ROI module to limit the region of the fixed image used for computing the image match metric.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
*The algorithm here is based on the description of the flirt algorithm as described below.&lt;br /&gt;
*[http://www.fmrib.ox.ac.uk/analysis/research/flirt/]&lt;br /&gt;
*M. Jenkinson and S.M. Smith. A global optimisation method for robust affine registration of brain images. Medical Image Analysis, 5(2):143-156, 2001. &lt;br /&gt;
*M. Jenkinson, P.R. Bannister, J.M. Brady, and S.M. Smith. Improved optimisation for the robust and accurate linear registration and motion correction of brain images. NeuroImage, 17(2):825-841, 2002.&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Fiducial_registration_after_multires.jpg&amp;diff=12839</id>
		<title>File:Fiducial registration after multires.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Fiducial_registration_after_multires.jpg&amp;diff=12839"/>
		<updated>2010-03-28T17:24:27Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12838</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12838"/>
		<updated>2010-03-28T17:24:10Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Module Name */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
Register Images Robust Affine&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images before alignment]]&lt;br /&gt;
|[[Image:Fiducial_registration_after_multires.jpg|thumb|280px|Images after alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.  Several parts of the algorithm are based on a description of the FLIRT algorithm, see the Reference section.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* This module is intended to be a robust general-purpose mutual information affine registration tool&lt;br /&gt;
* See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
** Fixed Image ROI - A box specified by the ROI module to limit the region of the fixed image used for computing the image match metric.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
*The algorithm here is based on the description of the flirt algorithm as described below.&lt;br /&gt;
*[http://www.fmrib.ox.ac.uk/analysis/research/flirt/]&lt;br /&gt;
*M. Jenkinson and S.M. Smith. A global optimisation method for robust affine registration of brain images. Medical Image Analysis, 5(2):143-156, 2001. &lt;br /&gt;
*M. Jenkinson, P.R. Bannister, J.M. Brady, and S.M. Smith. Improved optimisation for the robust and accurate linear registration and motion correction of brain images. NeuroImage, 17(2):825-841, 2002.&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12837</id>
		<title>Documentation/3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12837"/>
		<updated>2010-03-28T17:19:11Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is work in progress&lt;br /&gt;
&lt;br /&gt;
=Main GUI=&lt;br /&gt;
&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:EventBindings-3.6| &amp;quot;Hot-keys&amp;quot; and Keyboard Shortcuts]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.)  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Saving-Documentation-3.6| Saving Data]]  (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)&lt;br /&gt;
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]]  (Wendy Plesniak)&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] &lt;br /&gt;
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
=Requirements for Modules=&lt;br /&gt;
{| border=&amp;quot;00&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| &lt;br /&gt;
* The module is '''feature complete''', it does everything that it advertises it can do&lt;br /&gt;
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.&lt;br /&gt;
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.5#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.&lt;br /&gt;
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]&lt;br /&gt;
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.&lt;br /&gt;
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. &lt;br /&gt;
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)&lt;br /&gt;
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]].  The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.&lt;br /&gt;
* Follow [[Documentation-3.5-Rons-Rules|&amp;quot;Ron's rules for tools&amp;quot;]]&lt;br /&gt;
| style=&amp;quot;background: #e5e5e5&amp;quot; align=&amp;quot;center&amp;quot;| Examples for the Help and &lt;br /&gt;
Acknowledgment Panels&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ebeced&amp;quot;|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=List of Modules added or significantly revised since the 3.4 release=&lt;br /&gt;
* Interactive Editor&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Colors (Nicole Aucoin)&lt;br /&gt;
* Atlas Creator (Sylvain Jaume)&lt;br /&gt;
* MRI Bias Field Correction (Sylvain Jaume)&lt;br /&gt;
* 4D Image (Viewer) (Junichi Tokuda)&lt;br /&gt;
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)&lt;br /&gt;
* Fast Marching segmentation (Andriy Fedorov)&lt;br /&gt;
* Gyri Contour Segmentation]] (Peter Karasev)&lt;br /&gt;
* Subvolume extraction with ROI widget (Andriy Fedorov)&lt;br /&gt;
* Registration Metrics (HD and DSC) (Haytham Elhawary)&lt;br /&gt;
* Measurements (rulers and angles) (Nicole Aucoin)&lt;br /&gt;
* Affine registration (Casey Goodlett)&lt;br /&gt;
* Collect Patient Fiducials (Andrew Wiles)&lt;br /&gt;
* IGT Tool Selector (Andrew Wiles)&lt;br /&gt;
* Fiducials (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
=List of pre-existing Modules=&lt;br /&gt;
==Core==&lt;br /&gt;
*[[Modules:Camera-Documentation-3.5| Camera Module]] (Sebastian Barre)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) &lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]]  (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin)  [[Modules:Measurements-Documentation-3.6 | '''3.6 in progress''']] &lt;br /&gt;
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
==Specialized Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta) transition '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Informatics Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.6| QDEC Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
*[[Slicer3:Registration|Overview of all Registration Modules ]] &lt;br /&gt;
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RegisterImagesMultiRes-Documentation-3.6|Register Images Robust Affine]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FiducialRegistration-Documentation-3.5|Fiducial-Based Registration]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Transforms-Documentation-3.4| Transforms Module for interactive rigid registration]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]] (Nicole Aucoin)&lt;br /&gt;
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]]  (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
*Overview (Kilian)&lt;br /&gt;
**[[Modules:EMSegment|EM Segment]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Simple|EM Segment Simple]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)&lt;br /&gt;
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Statistics===&lt;br /&gt;
*[[Modules:LabelStatistics-Documentation-3.4|Label Statistics]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Diffusion===&lt;br /&gt;
====DWI====&lt;br /&gt;
*Estimation&lt;br /&gt;
**[[Modules:DiffusionTensorEstimation-Documentation-3.4|Diffusion Tensor Estimation]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExtractBaseline-Documentation-3.4|Python Extract Baseline DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*Filter&lt;br /&gt;
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.4|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RicianLMMSEImageFilter-Documentation-3.4|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.4|Unbiased Non Local Means filter for DWI]]  (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ShiftDWIValues-Documentation-3.4|Python Shift DWI Values]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RecenterScalar2DWI-Documentation-3.4|Python Recenter Scalar to DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
*[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.4 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*Analysis&lt;br /&gt;
&lt;br /&gt;
====Tractography====&lt;br /&gt;
*[[Modules:ROISeeding-Documentation-3.4 | Label Seeding]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FiducialSeeding-Documentation-3.4|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DTIDisplay-Documentation-3.4|FiberBundles]] (Alex Yarmakovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:StochasticTractography-Documentation-3.4|Python Stochastic Tractography]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)   '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Time Series===&lt;br /&gt;
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)&lt;br /&gt;
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ImageLabelCombine-3.4|Image Label Combine]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin)  &lt;br /&gt;
*Arithmetic&lt;br /&gt;
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) &lt;br /&gt;
** [[Modules:MaskImage-Documentation-3.4|Mask Image]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*Denoising&lt;br /&gt;
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward)   '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*Morphology&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Surface Models===&lt;br /&gt;
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) &lt;br /&gt;
*Grayscale Model Maker (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GyriContourSegmentation-Documentation-3.5|Gyri Contour Segmentation]] (Peter Karasev)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ClipModel-Documentation-3.4| Clip Model]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
*[[Modules:EMSegmentBatch-Documentation-3.4|EM Segmenter batch]] (Julien Jomier, Brad Davis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GaussianBlurBatch-Documentation-3.4|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RegisterImagesBatch-Documentation-3.4|Register Images batch]] (Julien Finet, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolumeBatch-Documentation-3.4|Resample Volume batch]] (Julien Finet)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ExtractSubvolumeROI-Documentation-3.6|Subvolume extraction with ROI widget]] (Andriy Fedorov)&lt;br /&gt;
&lt;br /&gt;
=Slicer Extensions=&lt;br /&gt;
&lt;br /&gt;
==Extensions for Downloading==&lt;br /&gt;
===Introduction===&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.&lt;br /&gt;
* Some of the extensions do not use the Slicer license. Please review carefully.&lt;br /&gt;
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.&lt;br /&gt;
* The version that is available through the extension manager is chosen by the developer of that extension   &lt;br /&gt;
&lt;br /&gt;
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.&lt;br /&gt;
&lt;br /&gt;
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]&lt;br /&gt;
To add extension modules to an installed binary of slicer:&lt;br /&gt;
* Use the View-&amp;gt;Extension Manager menu option&lt;br /&gt;
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.&lt;br /&gt;
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.&lt;br /&gt;
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).&lt;br /&gt;
* Select the extensions you wish to install and click to download them.  Installed extensions will be available when you restart slicer.&lt;br /&gt;
* To turn modules on or off, you can use the Module Settings page of the View-&amp;gt;Application Settings dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
*Click on the icon to start the extensions wizard&lt;br /&gt;
[[image:ExtensionsWizard.png|Extensions Wizard]]&lt;br /&gt;
&lt;br /&gt;
===Listing of plug-ins===&lt;br /&gt;
&lt;br /&gt;
'''Available Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ARCTIC|ARCTIC]] Cedric Mathieu (ced.mathieu@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSROIAuto|BRAINSROIAuto]] Greg Harris (gregory-harris@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Thorsten Rolfry '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:DiffusionWarp|DiffusionWarp]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:EMDTIClustering-Documentation-3.5|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LesionSegmentationApplications|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LocalRegionSeg|LocalRegionSeg]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKCenterlines|VTMKCenterlines]] Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKSlicerModule|VMTKkSlicerModule]] Daniel Haehn (haehn@bwh.harvard.edu) Prerequisite install for all VMTK plugins. '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] Daniel Haehn (haehn@bwh.harvard.edu) providing vessel enhancement filters to highlight vasculature or tubular structures '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example Extensions====&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Deprecated Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BubbleMaker|BubbleMaker]] Carlos Mendoza (carlos.sanchez.mendoza@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Non-SPL Supported Compatibility Packages'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12835</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12835"/>
		<updated>2010-03-28T17:18:01Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: moved Modules:RegisterImagesMultiRes-Documentation-3.5 to Modules:RegisterImagesMultiRes-Documentation-3.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.  Several parts of the algorithm are based on a description of the FLIRT algorithm, see the Reference section.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* This module is intended to be a robust general-purpose mutual information affine registration tool&lt;br /&gt;
* See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
** Fixed Image ROI - A box specified by the ROI module to limit the region of the fixed image used for computing the image match metric.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
*The algorithm here is based on the description of the flirt algorithm as described below.&lt;br /&gt;
*[http://www.fmrib.ox.ac.uk/analysis/research/flirt/]&lt;br /&gt;
*M. Jenkinson and S.M. Smith. A global optimisation method for robust affine registration of brain images. Medical Image Analysis, 5(2):143-156, 2001. &lt;br /&gt;
*M. Jenkinson, P.R. Bannister, J.M. Brady, and S.M. Smith. Improved optimisation for the robust and accurate linear registration and motion correction of brain images. NeuroImage, 17(2):825-841, 2002.&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.5&amp;diff=12836</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.5</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.5&amp;diff=12836"/>
		<updated>2010-03-28T17:18:01Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: moved Modules:RegisterImagesMultiRes-Documentation-3.5 to Modules:RegisterImagesMultiRes-Documentation-3.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Modules:RegisterImagesMultiRes-Documentation-3.6]]&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12834</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12834"/>
		<updated>2010-03-28T17:17:42Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Module Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.  Several parts of the algorithm are based on a description of the FLIRT algorithm, see the Reference section.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* This module is intended to be a robust general-purpose mutual information affine registration tool&lt;br /&gt;
* See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
** Fixed Image ROI - A box specified by the ROI module to limit the region of the fixed image used for computing the image match metric.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
*The algorithm here is based on the description of the flirt algorithm as described below.&lt;br /&gt;
*[http://www.fmrib.ox.ac.uk/analysis/research/flirt/]&lt;br /&gt;
*M. Jenkinson and S.M. Smith. A global optimisation method for robust affine registration of brain images. Medical Image Analysis, 5(2):143-156, 2001. &lt;br /&gt;
*M. Jenkinson, P.R. Bannister, J.M. Brady, and S.M. Smith. Improved optimisation for the robust and accurate linear registration and motion correction of brain images. NeuroImage, 17(2):825-841, 2002.&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12833</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12833"/>
		<updated>2010-03-28T17:16:39Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* This module is intended to be a robust general-purpose mutual information affine registration tool&lt;br /&gt;
* See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
** Fixed Image ROI - A box specified by the ROI module to limit the region of the fixed image used for computing the image match metric.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
*The algorithm here is based on the description of the flirt algorithm as described below.&lt;br /&gt;
*[http://www.fmrib.ox.ac.uk/analysis/research/flirt/]&lt;br /&gt;
*M. Jenkinson and S.M. Smith. A global optimisation method for robust affine registration of brain images. Medical Image Analysis, 5(2):143-156, 2001. &lt;br /&gt;
*M. Jenkinson, P.R. Bannister, J.M. Brady, and S.M. Smith. Improved optimisation for the robust and accurate linear registration and motion correction of brain images. NeuroImage, 17(2):825-841, 2002.&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12832</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12832"/>
		<updated>2010-03-28T17:10:06Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Quick Tour of Features and Use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* This module is intended to be a robust general-purpose mutual information affine registration tool&lt;br /&gt;
* See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
** Fixed Image ROI - A box specified by the ROI module to limit the region of the fixed image used for computing the image match metric.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
* FSL Flirt&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12831</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12831"/>
		<updated>2010-03-28T17:08:31Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Examples, Use Cases &amp;amp; Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* This module is intended to be a robust general-purpose mutual information affine registration tool&lt;br /&gt;
* See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
* FSL Flirt&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12830</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12830"/>
		<updated>2010-03-28T17:06:52Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
===Use Cases, Examples===&lt;br /&gt;
See [http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Registration Use Case project]&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials-3.6.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12829</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12829"/>
		<updated>2010-03-28T16:59:27Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Wishlist */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials-3.6.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12828</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12828"/>
		<updated>2010-03-28T16:58:29Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Source code &amp;amp; documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials-3.6.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12827</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12827"/>
		<updated>2010-03-28T16:54:50Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Advanced Initial Registration Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials-3.6.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:RegisterImagesAdvancedInitialFiducials-3.6.png&amp;diff=12826</id>
		<title>File:RegisterImagesAdvancedInitialFiducials-3.6.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:RegisterImagesAdvancedInitialFiducials-3.6.png&amp;diff=12826"/>
		<updated>2010-03-28T16:53:49Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12825</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12825"/>
		<updated>2010-03-28T16:44:56Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Acknowledgment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12824</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12824"/>
		<updated>2010-03-27T20:32:42Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration Parameters Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageToImageMetric.h/txx&lt;br /&gt;
** Normalized Correlation metric.   This is NOT multithreaded or optimized&lt;br /&gt;
*** For more information, check the code; Insight/Code/Algorithms/itkNormalizedCorrelationImageToImageMetric.h/txx&lt;br /&gt;
** Mean Squares metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMeanSquaresImageToImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12823</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12823"/>
		<updated>2010-03-27T20:30:01Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Advanced Registration Parameters Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Use the Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image mask&lt;br /&gt;
** A label image that specifies regions of the fixed image from which to draw samples for registration.  This should have a label in regions you are interested in registration and have no label in regions you are not interested in or may contain significant differences between the image that should be excluded (pathology regions).&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12822</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12822"/>
		<updated>2010-03-27T20:28:21Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Use the Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image intensity percentage threshold&lt;br /&gt;
** A less robust way to overcome the image overlap issue discussed above, you can specify a threshold as a portion (0 to 1) of the fixed image intensity range that should be used to select fixed image samples for computing the metric.   That is, by specifying 0.5, only the pixels in the upper half of the fixed-image's intensity range will be used during random sample selection.&lt;br /&gt;
** Remember, it is important to include pixels inside and outside of the object of interest, otherwise the fixed image histogram may be too homogeneous for mis-registrations to be detected.&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters-3.6.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:RegisterImagesAdvancedGlobalParameters-3.6.png&amp;diff=12821</id>
		<title>File:RegisterImagesAdvancedGlobalParameters-3.6.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:RegisterImagesAdvancedGlobalParameters-3.6.png&amp;diff=12821"/>
		<updated>2010-03-27T20:27:41Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:RegisterImagesGlobalParameters-3.6.png&amp;diff=12820</id>
		<title>File:RegisterImagesGlobalParameters-3.6.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:RegisterImagesGlobalParameters-3.6.png&amp;diff=12820"/>
		<updated>2010-03-27T20:26:40Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12819</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12819"/>
		<updated>2010-03-27T20:26:08Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration Parameters Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing the registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Use the Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters-3.6.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image intensity percentage threshold&lt;br /&gt;
** A less robust way to overcome the image overlap issue discussed above, you can specify a threshold as a portion (0 to 1) of the fixed image intensity range that should be used to select fixed image samples for computing the metric.   That is, by specifying 0.5, only the pixels in the upper half of the fixed-image's intensity range will be used during random sample selection.&lt;br /&gt;
** Remember, it is important to include pixels inside and outside of the object of interest, otherwise the fixed image histogram may be too homogeneous for mis-registrations to be detected.&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Testing Parameters ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The testing section exposes functionality for development and compilation. It should not be used in regular operation of Slicer.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Baseline Image&lt;br /&gt;
** Set the image against which the Resampled Image (IO tab) will be compared after registration&lt;br /&gt;
* Number of Failed Pixels Tolerance&lt;br /&gt;
** Registration returns &amp;quot;failure&amp;quot; if this many pixels are different between the Resampled and Baseline images&lt;br /&gt;
* Intensity Tolerance&lt;br /&gt;
** Minimum intensity difference between corresponding Resampled and Baseline pixels for those pixels to be counted as failures&lt;br /&gt;
* Radius Tolerance&lt;br /&gt;
** The program will search this neighborhood size about each Resampled pixel to find the closest matching Baseline pixel.   The closest matching pixels are compared using the Intensity Tolerance (above)&lt;br /&gt;
* Baseline Difference Image&lt;br /&gt;
** Result of subtracting the resampled image from the baseline image&lt;br /&gt;
* Baseline Resamples Moving Image&lt;br /&gt;
** resampled image, resampled into the space of the baseline image&lt;br /&gt;
|[[Image:RegisterImagesTestingParameters.png|thumb|380px|  Testing Parameters]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12818</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12818"/>
		<updated>2010-03-27T19:47:45Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing hte registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Use the Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image intensity percentage threshold&lt;br /&gt;
** A less robust way to overcome the image overlap issue discussed above, you can specify a threshold as a portion (0 to 1) of the fixed image intensity range that should be used to select fixed image samples for computing the metric.   That is, by specifying 0.5, only the pixels in the upper half of the fixed-image's intensity range will be used during random sample selection.&lt;br /&gt;
** Remember, it is important to include pixels inside and outside of the object of interest, otherwise the fixed image histogram may be too homogeneous for mis-registrations to be detected.&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/multi-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Testing Parameters ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The testing section exposes functionality for development and compilation. It should not be used in regular operation of Slicer.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Baseline Image&lt;br /&gt;
** Set the image against which the Resampled Image (IO tab) will be compared after registration&lt;br /&gt;
* Number of Failed Pixels Tolerance&lt;br /&gt;
** Registration returns &amp;quot;failure&amp;quot; if this many pixels are different between the Resampled and Baseline images&lt;br /&gt;
* Intensity Tolerance&lt;br /&gt;
** Minimum intensity difference between corresponding Resampled and Baseline pixels for those pixels to be counted as failures&lt;br /&gt;
* Radius Tolerance&lt;br /&gt;
** The program will search this neighborhood size about each Resampled pixel to find the closest matching Baseline pixel.   The closest matching pixels are compared using the Intensity Tolerance (above)&lt;br /&gt;
* Baseline Difference Image&lt;br /&gt;
** Result of subtracting the resampled image from the baseline image&lt;br /&gt;
* Baseline Resamples Moving Image&lt;br /&gt;
** resampled image, resampled into the space of the baseline image&lt;br /&gt;
|[[Image:RegisterImagesTestingParameters.png|thumb|380px|  Testing Parameters]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12817</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12817"/>
		<updated>2010-03-27T19:38:43Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration Parameters Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the a transform for initializing hte registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** final transform will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Use the Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advaned Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image intensity percentage threshold&lt;br /&gt;
** A less robust way to overcome the image overlap issue discussed above, you can specify a threshold as a portion (0 to 1) of the fixed image intensity range that should be used to select fixed image samples for computing the metric.   That is, by specifying 0.5, only the pixels in the upper half of the fixed-image's intensity range will be used during random sample selection.&lt;br /&gt;
** Remember, it is important to include pixels inside and outside of the object of interest, otherwise the fixed image histogram may be too homogeneous for mis-registrations to be detected.&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/mult-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Testing Parameters ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The testing section exposes functionality for development and compilation. It should not be used in regular operation of Slicer.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Baseline Image&lt;br /&gt;
** Set the image against which the Resampled Image (IO tab) will be compared after registration&lt;br /&gt;
* Number of Failed Pixels Tolerance&lt;br /&gt;
** Registration returns &amp;quot;failure&amp;quot; if this many pixels are different between the Resampled and Baseline images&lt;br /&gt;
* Intensity Tolerance&lt;br /&gt;
** Minimum intensity difference between corresponding Resampled and Baseline pixels for those pixels to be counted as failures&lt;br /&gt;
* Radius Tolerance&lt;br /&gt;
** The program will search this neighborhood size about each Resampled pixel to find the closest matching Baseline pixel.   The closest matching pixels are compared using the Intensity Tolerance (above)&lt;br /&gt;
* Baseline Difference Image&lt;br /&gt;
** Result of subtracting the resampled image from the baseline image&lt;br /&gt;
* Baseline Resamples Moving Image&lt;br /&gt;
** resampled image, resampled into the space of the baseline image&lt;br /&gt;
|[[Image:RegisterImagesTestingParameters.png|thumb|380px|  Testing Parameters]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12816</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12816"/>
		<updated>2010-03-27T19:33:37Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Advanced Initial Registration Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the Loaded Transform for the loaded phase of registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** results of the entire registration pipeline will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Use the Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advaned Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image intensity percentage threshold&lt;br /&gt;
** A less robust way to overcome the image overlap issue discussed above, you can specify a threshold as a portion (0 to 1) of the fixed image intensity range that should be used to select fixed image samples for computing the metric.   That is, by specifying 0.5, only the pixels in the upper half of the fixed-image's intensity range will be used during random sample selection.&lt;br /&gt;
** Remember, it is important to include pixels inside and outside of the object of interest, otherwise the fixed image histogram may be too homogeneous for mis-registrations to be detected.&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/mult-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Testing Parameters ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The testing section exposes functionality for development and compilation. It should not be used in regular operation of Slicer.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Baseline Image&lt;br /&gt;
** Set the image against which the Resampled Image (IO tab) will be compared after registration&lt;br /&gt;
* Number of Failed Pixels Tolerance&lt;br /&gt;
** Registration returns &amp;quot;failure&amp;quot; if this many pixels are different between the Resampled and Baseline images&lt;br /&gt;
* Intensity Tolerance&lt;br /&gt;
** Minimum intensity difference between corresponding Resampled and Baseline pixels for those pixels to be counted as failures&lt;br /&gt;
* Radius Tolerance&lt;br /&gt;
** The program will search this neighborhood size about each Resampled pixel to find the closest matching Baseline pixel.   The closest matching pixels are compared using the Intensity Tolerance (above)&lt;br /&gt;
* Baseline Difference Image&lt;br /&gt;
** Result of subtracting the resampled image from the baseline image&lt;br /&gt;
* Baseline Resamples Moving Image&lt;br /&gt;
** resampled image, resampled into the space of the baseline image&lt;br /&gt;
|[[Image:RegisterImagesTestingParameters.png|thumb|380px|  Testing Parameters]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** Two fiducial lists of corresponding points in the fixed and moving images.  Only selected fiducials are used and the fixed and moving landmarks must have the same number of landmarks in the same order.&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12815</id>
		<title>Documentation/3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12815"/>
		<updated>2010-03-27T19:22:46Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is work in progress&lt;br /&gt;
&lt;br /&gt;
=Main GUI=&lt;br /&gt;
&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:EventBindings-3.6| &amp;quot;Hot-keys&amp;quot; and Keyboard Shortcuts]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.)  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Saving-Documentation-3.6| Saving Data]]  (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)&lt;br /&gt;
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]]  (Wendy Plesniak)&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] &lt;br /&gt;
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
=Requirements for Modules=&lt;br /&gt;
{| border=&amp;quot;00&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| &lt;br /&gt;
* The module is '''feature complete''', it does everything that it advertises it can do&lt;br /&gt;
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.&lt;br /&gt;
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.5#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.&lt;br /&gt;
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]&lt;br /&gt;
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.&lt;br /&gt;
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. &lt;br /&gt;
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)&lt;br /&gt;
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]].  The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.&lt;br /&gt;
* Follow [[Documentation-3.5-Rons-Rules|&amp;quot;Ron's rules for tools&amp;quot;]]&lt;br /&gt;
| style=&amp;quot;background: #e5e5e5&amp;quot; align=&amp;quot;center&amp;quot;| Examples for the Help and &lt;br /&gt;
Acknowledgment Panels&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ebeced&amp;quot;|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=List of Modules added or significantly revised since the 3.4 release=&lt;br /&gt;
* Interactive Editor&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Colors (Nicole Aucoin)&lt;br /&gt;
* Atlas Creator (Sylvain Jaume)&lt;br /&gt;
* MRI Bias Field Correction (Sylvain Jaume)&lt;br /&gt;
* 4D Image (Viewer) (Junichi Tokuda)&lt;br /&gt;
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)&lt;br /&gt;
* Fast Marching segmentation (Andriy Fedorov)&lt;br /&gt;
* Gyri Contour Segmentation]] (Peter Karasev)&lt;br /&gt;
* Subvolume extraction with ROI widget (Andriy Fedorov)&lt;br /&gt;
* Registration Metrics (HD and DSC) (Haytham Elhawary)&lt;br /&gt;
* Measurements (rulers and angles) (Nicole Aucoin)&lt;br /&gt;
* Affine registration (Casey Goodlett)&lt;br /&gt;
* Collect Patient Fiducials (Andrew Wiles)&lt;br /&gt;
* IGT Tool Selector (Andrew Wiles)&lt;br /&gt;
* Fiducials (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
=List of pre-existing Modules=&lt;br /&gt;
==Core==&lt;br /&gt;
*[[Modules:Camera-Documentation-3.5| Camera Module]] (Sebastian Barre)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) &lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]]  (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin)  [[Modules:Measurements-Documentation-3.6 | '''3.6 in progress''']] &lt;br /&gt;
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
==Specialized Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta) transition '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Informatics Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.6| QDEC Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
*[[Slicer3:Registration|Overview of all Registration Modules ]] &lt;br /&gt;
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RegisterImagesMultiRes-Documentation-3.5|Register Images Robust Affine]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FiducialRegistration-Documentation-3.5|Fiducial-Based Registration]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Transforms-Documentation-3.4| Transforms Module for interactive rigid registration]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]] (Nicole Aucoin)&lt;br /&gt;
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]]  (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
*Overview (Kilian)&lt;br /&gt;
**[[Modules:EMSegment|EM Segment]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Simple|EM Segment Simple]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)&lt;br /&gt;
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Statistics===&lt;br /&gt;
*[[Modules:LabelStatistics-Documentation-3.4|Label Statistics]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Diffusion===&lt;br /&gt;
====DWI====&lt;br /&gt;
*Estimation&lt;br /&gt;
**[[Modules:DiffusionTensorEstimation-Documentation-3.4|Diffusion Tensor Estimation]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExtractBaseline-Documentation-3.4|Python Extract Baseline DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*Filter&lt;br /&gt;
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.4|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RicianLMMSEImageFilter-Documentation-3.4|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.4|Unbiased Non Local Means filter for DWI]]  (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ShiftDWIValues-Documentation-3.4|Python Shift DWI Values]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RecenterScalar2DWI-Documentation-3.4|Python Recenter Scalar to DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
*[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.4 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*Analysis&lt;br /&gt;
&lt;br /&gt;
====Tractography====&lt;br /&gt;
*[[Modules:ROISeeding-Documentation-3.4 | Label Seeding]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FiducialSeeding-Documentation-3.4|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DTIDisplay-Documentation-3.4|FiberBundles]] (Alex Yarmakovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:StochasticTractography-Documentation-3.4|Python Stochastic Tractography]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)   '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Time Series===&lt;br /&gt;
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)&lt;br /&gt;
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ImageLabelCombine-3.4|Image Label Combine]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin)  &lt;br /&gt;
*Arithmetic&lt;br /&gt;
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) &lt;br /&gt;
** [[Modules:MaskImage-Documentation-3.4|Mask Image]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*Denoising&lt;br /&gt;
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward)   '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*Morphology&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Surface Models===&lt;br /&gt;
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) &lt;br /&gt;
*Grayscale Model Maker (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GyriContourSegmentation-Documentation-3.5|Gyri Contour Segmentation]] (Peter Karasev)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ClipModel-Documentation-3.4| Clip Model]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
*[[Modules:EMSegmentBatch-Documentation-3.4|EM Segmenter batch]] (Julien Jomier, Brad Davis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GaussianBlurBatch-Documentation-3.4|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RegisterImagesBatch-Documentation-3.4|Register Images batch]] (Julien Finet, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolumeBatch-Documentation-3.4|Resample Volume batch]] (Julien Finet)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ExtractSubvolumeROI-Documentation-3.6|Subvolume extraction with ROI widget]] (Andriy Fedorov)&lt;br /&gt;
&lt;br /&gt;
=Slicer Extensions=&lt;br /&gt;
&lt;br /&gt;
==Extensions for Downloading==&lt;br /&gt;
===Introduction===&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.&lt;br /&gt;
* Some of the extensions do not use the Slicer license. Please review carefully.&lt;br /&gt;
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.&lt;br /&gt;
* The version that is available through the extension manager is chosen by the developer of that extension   &lt;br /&gt;
&lt;br /&gt;
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.&lt;br /&gt;
&lt;br /&gt;
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]&lt;br /&gt;
To add extension modules to an installed binary of slicer:&lt;br /&gt;
* Use the View-&amp;gt;Extension Manager menu option&lt;br /&gt;
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.&lt;br /&gt;
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.&lt;br /&gt;
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).&lt;br /&gt;
* Select the extensions you wish to install and click to download them.  Installed extensions will be available when you restart slicer.&lt;br /&gt;
* To turn modules on or off, you can use the Module Settings page of the View-&amp;gt;Application Settings dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
*Click on the icon to start the extensions wizard&lt;br /&gt;
[[image:ExtensionsWizard.png|Extensions Wizard]]&lt;br /&gt;
&lt;br /&gt;
===Listing of plug-ins===&lt;br /&gt;
&lt;br /&gt;
'''Available Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ARCTIC|ARCTIC]] Cedric Mathieu (ced.mathieu@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSROIAuto|BRAINSROIAuto]] Greg Harris (gregory-harris@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Thorsten Rolfry '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:DiffusionWarp|DiffusionWarp]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:EMDTIClustering-Documentation-3.5|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LesionSegmentationApplications|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LocalRegionSeg|LocalRegionSeg]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKCenterlines|VTMKCenterlines]] Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKSlicerModule|VMTKkSlicerModule]] Daniel Haehn (haehn@bwh.harvard.edu) Prerequisite install for all VMTK plugins. '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] Daniel Haehn (haehn@bwh.harvard.edu) providing vessel enhancement filters to highlight vasculature or tubular structures '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example Extensions====&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Deprecated Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BubbleMaker|BubbleMaker]] Carlos Mendoza (carlos.sanchez.mendoza@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Non-SPL Supported Compatibility Packages'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12814</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12814"/>
		<updated>2010-03-27T19:16:34Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the Loaded Transform for the loaded phase of registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** results of the entire registration pipeline will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Use the Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advaned Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image intensity percentage threshold&lt;br /&gt;
** A less robust way to overcome the image overlap issue discussed above, you can specify a threshold as a portion (0 to 1) of the fixed image intensity range that should be used to select fixed image samples for computing the metric.   That is, by specifying 0.5, only the pixels in the upper half of the fixed-image's intensity range will be used during random sample selection.&lt;br /&gt;
** Remember, it is important to include pixels inside and outside of the object of interest, otherwise the fixed image histogram may be too homogeneous for mis-registrations to be detected.&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/mult-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Testing Parameters ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The testing section exposes functionality for development and compilation. It should not be used in regular operation of Slicer.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Baseline Image&lt;br /&gt;
** Set the image against which the Resampled Image (IO tab) will be compared after registration&lt;br /&gt;
* Number of Failed Pixels Tolerance&lt;br /&gt;
** Registration returns &amp;quot;failure&amp;quot; if this many pixels are different between the Resampled and Baseline images&lt;br /&gt;
* Intensity Tolerance&lt;br /&gt;
** Minimum intensity difference between corresponding Resampled and Baseline pixels for those pixels to be counted as failures&lt;br /&gt;
* Radius Tolerance&lt;br /&gt;
** The program will search this neighborhood size about each Resampled pixel to find the closest matching Baseline pixel.   The closest matching pixels are compared using the Intensity Tolerance (above)&lt;br /&gt;
* Baseline Difference Image&lt;br /&gt;
** Result of subtracting the resampled image from the baseline image&lt;br /&gt;
* Baseline Resamples Moving Image&lt;br /&gt;
** resampled image, resampled into the space of the baseline image&lt;br /&gt;
|[[Image:RegisterImagesTestingParameters.png|thumb|380px|  Testing Parameters]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** A vector string (comma separated base-3 list) of the indexes of corresponding points in the fixed and moving images&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12813</id>
		<title>Documentation/3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12813"/>
		<updated>2010-03-27T19:15:49Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is work in progress&lt;br /&gt;
&lt;br /&gt;
=Main GUI=&lt;br /&gt;
&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:EventBindings-3.6| &amp;quot;Hot-keys&amp;quot; and Keyboard Shortcuts]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.)  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Saving-Documentation-3.6| Saving Data]]  (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)&lt;br /&gt;
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]]  (Wendy Plesniak)&lt;br /&gt;
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]]  (Wendy Plesniak)&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] &lt;br /&gt;
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
=Requirements for Modules=&lt;br /&gt;
{| border=&amp;quot;00&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| &lt;br /&gt;
* The module is '''feature complete''', it does everything that it advertises it can do&lt;br /&gt;
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.&lt;br /&gt;
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.5#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.&lt;br /&gt;
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]&lt;br /&gt;
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.&lt;br /&gt;
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. &lt;br /&gt;
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)&lt;br /&gt;
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]].  The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.&lt;br /&gt;
* Follow [[Documentation-3.5-Rons-Rules|&amp;quot;Ron's rules for tools&amp;quot;]]&lt;br /&gt;
| style=&amp;quot;background: #e5e5e5&amp;quot; align=&amp;quot;center&amp;quot;| Examples for the Help and &lt;br /&gt;
Acknowledgment Panels&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ebeced&amp;quot;|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=List of Modules added or significantly revised since the 3.4 release=&lt;br /&gt;
* Interactive Editor&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Colors (Nicole Aucoin)&lt;br /&gt;
* Atlas Creator (Sylvain Jaume)&lt;br /&gt;
* MRI Bias Field Correction (Sylvain Jaume)&lt;br /&gt;
* 4D Image (Viewer) (Junichi Tokuda)&lt;br /&gt;
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)&lt;br /&gt;
* Fast Marching segmentation (Andriy Fedorov)&lt;br /&gt;
* Gyri Contour Segmentation]] (Peter Karasev)&lt;br /&gt;
* Subvolume extraction with ROI widget (Andriy Fedorov)&lt;br /&gt;
* Registration Metrics (HD and DSC) (Haytham Elhawary)&lt;br /&gt;
* Measurements (rulers and angles) (Nicole Aucoin)&lt;br /&gt;
* Affine registration (Casey Goodlett)&lt;br /&gt;
* Collect Patient Fiducials (Andrew Wiles)&lt;br /&gt;
* IGT Tool Selector (Andrew Wiles)&lt;br /&gt;
* Fiducials (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
=List of pre-existing Modules=&lt;br /&gt;
==Core==&lt;br /&gt;
*[[Modules:Camera-Documentation-3.5| Camera Module]] (Sebastian Barre)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) &lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]]  (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin)  [[Modules:Measurements-Documentation-3.6 | '''3.6 in progress''']] &lt;br /&gt;
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich) &lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
==Specialized Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta) transition '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Informatics Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.6| QDEC Module]] (Nicole Aucoin) &lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
*[[Slicer3:Registration|Overview of all Registration Modules ]] &lt;br /&gt;
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RegisterImagesMultiRes-Documentation-3.5|Register Images Robust Affine]] (Casey Goodlett, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FiducialRegistration-Documentation-3.5|Fiducial-Based Registration]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Transforms-Documentation-3.4| Transforms Module for interactive rigid registration]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]] (Nicole Aucoin)&lt;br /&gt;
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]]  (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
*Overview (Kilian)&lt;br /&gt;
**[[Modules:EMSegment|EM Segment]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:EMSegment-Simple|EM Segment Simple]] (Kilian Pohl)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)&lt;br /&gt;
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Statistics===&lt;br /&gt;
*[[Modules:LabelStatistics-Documentation-3.4|Label Statistics]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Diffusion===&lt;br /&gt;
====DWI====&lt;br /&gt;
*Estimation&lt;br /&gt;
**[[Modules:DiffusionTensorEstimation-Documentation-3.4|Diffusion Tensor Estimation]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExtractBaseline-Documentation-3.4|Python Extract Baseline DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*Filter&lt;br /&gt;
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.4|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RicianLMMSEImageFilter-Documentation-3.4|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.4|Unbiased Non Local Means filter for DWI]]  (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ShiftDWIValues-Documentation-3.4|Python Shift DWI Values]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RecenterScalar2DWI-Documentation-3.4|Python Recenter Scalar to DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
*[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.4 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*Analysis&lt;br /&gt;
&lt;br /&gt;
====Tractography====&lt;br /&gt;
*[[Modules:ROISeeding-Documentation-3.4 | Label Seeding]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FiducialSeeding-Documentation-3.4|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DTIDisplay-Documentation-3.4|FiberBundles]] (Alex Yarmakovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:StochasticTractography-Documentation-3.4|Python Stochastic Tractography]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)   '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Time Series===&lt;br /&gt;
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)&lt;br /&gt;
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ImageLabelCombine-3.4|Image Label Combine]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)&lt;br /&gt;
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin)  &lt;br /&gt;
*Arithmetic&lt;br /&gt;
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) &lt;br /&gt;
** [[Modules:MaskImage-Documentation-3.4|Mask Image]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*Denoising&lt;br /&gt;
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward)   '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*Morphology&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Surface Models===&lt;br /&gt;
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) &lt;br /&gt;
*Grayscale Model Maker (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GyriContourSegmentation-Documentation-3.5|Gyri Contour Segmentation]] (Peter Karasev)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ClipModel-Documentation-3.4| Clip Model]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
*[[Modules:EMSegmentBatch-Documentation-3.4|EM Segmenter batch]] (Julien Jomier, Brad Davis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GaussianBlurBatch-Documentation-3.4|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RegisterImagesBatch-Documentation-3.4|Register Images batch]] (Julien Finet, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolumeBatch-Documentation-3.4|Resample Volume batch]] (Julien Finet)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ExtractSubvolumeROI-Documentation-3.6|Subvolume extraction with ROI widget]] (Andriy Fedorov)&lt;br /&gt;
&lt;br /&gt;
=Slicer Extensions=&lt;br /&gt;
&lt;br /&gt;
==Extensions for Downloading==&lt;br /&gt;
===Introduction===&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.&lt;br /&gt;
* Some of the extensions do not use the Slicer license. Please review carefully.&lt;br /&gt;
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.&lt;br /&gt;
* The version that is available through the extension manager is chosen by the developer of that extension   &lt;br /&gt;
&lt;br /&gt;
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.&lt;br /&gt;
&lt;br /&gt;
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]&lt;br /&gt;
To add extension modules to an installed binary of slicer:&lt;br /&gt;
* Use the View-&amp;gt;Extension Manager menu option&lt;br /&gt;
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.&lt;br /&gt;
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.&lt;br /&gt;
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).&lt;br /&gt;
* Select the extensions you wish to install and click to download them.  Installed extensions will be available when you restart slicer.&lt;br /&gt;
* To turn modules on or off, you can use the Module Settings page of the View-&amp;gt;Application Settings dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
*Click on the icon to start the extensions wizard&lt;br /&gt;
[[image:ExtensionsWizard.png|Extensions Wizard]]&lt;br /&gt;
&lt;br /&gt;
===Listing of plug-ins===&lt;br /&gt;
&lt;br /&gt;
'''Available Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ARCTIC|ARCTIC]] Cedric Mathieu (ced.mathieu@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSROIAuto|BRAINSROIAuto]] Greg Harris (gregory-harris@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Thorsten Rolfry '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:DiffusionWarp|DiffusionWarp]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:EMDTIClustering-Documentation-3.5|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LesionSegmentationApplications|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LocalRegionSeg|LocalRegionSeg]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKCenterlines|VTMKCenterlines]] Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKSlicerModule|VMTKkSlicerModule]] Daniel Haehn (haehn@bwh.harvard.edu) Prerequisite install for all VMTK plugins. '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] Daniel Haehn (haehn@bwh.harvard.edu) providing vessel enhancement filters to highlight vasculature or tubular structures '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example Extensions====&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Deprecated Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BubbleMaker|BubbleMaker]] Carlos Mendoza (carlos.sanchez.mendoza@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Non-SPL Supported Compatibility Packages'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12771</id>
		<title>Modules:RegisterImages-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImages-Documentation-3.6&amp;diff=12771"/>
		<updated>2010-03-26T18:53:21Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: Created page with '[Documentation-3.6|Return to Slicer 3.6 Documentation]]  Gallery of New Features ===Register Images===  {| |[[Image:RegisterImagesOverview.…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Documentation-3.6|Return to Slicer 3.6 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]&lt;br /&gt;
===Register Images===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:RegisterImagesOverview.png|thumb|280px|Before &amp;lt;br&amp;gt; Two [[Modules:Color-Documentation-3.6#Module_Description|LUTs]] are used to display the two volumes]]&lt;br /&gt;
|[[Image:RegisterImageRunning.png|thumb|280px|During &amp;lt;br&amp;gt; Note that both cores run at full capacity]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:B-spline-reg.png|thumb|280px|After &amp;lt;br&amp;gt; Fixed data set with red, moving with blue LUT.]]&lt;br /&gt;
|[[Image:B-spline-reg-detail.png|thumb|280px|After &amp;lt;br&amp;gt; Moving versus Resampled &amp;lt;br&amp;gt; Demonstration of the extent of deformation&amp;lt;br&amp;gt;grid spacing = 60 pixels, 4 core machine, &amp;lt;br&amp;gt;9GB memory footprint, roughly 1.5 hours&amp;lt;br&amp;gt;volume=512x512x472]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI Module calling ITK functions&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Stephen Aylward, Kitware&lt;br /&gt;
* Author2: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Ron Kikinis (copying documentation)&lt;br /&gt;
* Contact: Casey Goodlett, Kitware&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This Module is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined. Depending on the size of the data sets, a significant amount of memory is needed. There is an option to trade off speed for memory. Most of the code is parallelized and will take advantage of multicore capabilities, if available.&lt;br /&gt;
&lt;br /&gt;
==== Major Features ====&lt;br /&gt;
&lt;br /&gt;
The major features of the module include:&lt;br /&gt;
* Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline&lt;br /&gt;
* Offers a complete, pipeline-based registration solution&lt;br /&gt;
** Load and apply existing transforms&lt;br /&gt;
** Compute rigid, affine, and bspline transforms in sequence with a single command&lt;br /&gt;
* Intuitive parameters&lt;br /&gt;
** Instead of setting obscure &amp;quot;scales&amp;quot; for parameters, you set global values for &amp;quot;Expected Offset&amp;quot;, &amp;quot;Expected Rotation&amp;quot;, ... to indicate how much mis-registration is anticipated in the data being registered&lt;br /&gt;
* MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
* SampleFromOverlap option allows images of vastly different sizes to be registered&lt;br /&gt;
** Helps to avoid (but does not completely eliminate) the annoying ITK exception, &amp;quot;too many samples falls outside of the image&amp;quot;&lt;br /&gt;
* Incorporates testing&lt;br /&gt;
** Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure&lt;br /&gt;
* Based on an extensible and re-usable class structure.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* If you have a large data set or little memory, [[Modules:RegisterImages-Documentation-3.4#Advaned_Registration_Parameters_Tab|select the minimize memory option]]&lt;br /&gt;
* If you are planning to use the b-spline registration, be sure to read the [[Modules:RegisterImages-Documentation-3.4#Advanced_BSpline_Parameters|discussion of parameter setting]] in the section below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization here] for more information.&lt;br /&gt;
&lt;br /&gt;
== Main Registration Panel ==&lt;br /&gt;
=== Parameter Choices ===&lt;br /&gt;
* The default parameters should work for a wide range of cases&lt;br /&gt;
* In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.&lt;br /&gt;
* In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off&lt;br /&gt;
&lt;br /&gt;
See also [http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization this page on the NA-MIC wiki about parameter tuning for this module].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
* Step 1: Loaded transform&lt;br /&gt;
** You may load a pre-computed transform to initialize the registration.&lt;br /&gt;
** If one is loaded, it is immediately applied (i.e., the moving image is resampled)&lt;br /&gt;
* Step 2: Initial registration&lt;br /&gt;
** Options are: &lt;br /&gt;
*** None (sets the center of rotation to the center of the moving image)&lt;br /&gt;
*** Landmark (uses N-pairs of landmarks (passed as vectors) and a least-squared error metric to register the images using a rigid transform&lt;br /&gt;
*** Image Centers (shifts the images to align their centers)&lt;br /&gt;
*** Centers of Mass (shifts the images to align their centers of mass)&lt;br /&gt;
*** Second Moments (shifts and rotates the images to align the 1st and 2nd moments)&lt;br /&gt;
* Step 3: Registration&lt;br /&gt;
** Options are:&lt;br /&gt;
*** None (applies the loaded transforms)&lt;br /&gt;
*** Initial&lt;br /&gt;
**** computes and applies the initial transform to the loaded registrations)&lt;br /&gt;
*** Rigid&lt;br /&gt;
**** computes a rigid transform and then applies it to the loaded registrations&lt;br /&gt;
*** Affine&lt;br /&gt;
**** computes an affine transform and then applies it to the loaded registrations&lt;br /&gt;
*** BSpline&lt;br /&gt;
**** computes a bspline transform and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineRigid&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration) and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineAffine&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations&lt;br /&gt;
*** PipelineBSpline&lt;br /&gt;
**** computes a rigid transform (initialized using the results from the initial registration), uses those results to initialize and compute an affine transform, and then applies it to the loaded registrations, THEN computes and applies a BSpline transform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Information==&lt;br /&gt;
&lt;br /&gt;
=== IO Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Set the fixed and moving images using images in the scene&lt;br /&gt;
* Optionally set the ResampleImage to store the output image&lt;br /&gt;
** If not set, registration won't conduct the final resampling, saving computation time&lt;br /&gt;
|[[Image:RegisterImagesIO.png|thumb|380px| IO panel &amp;lt;br&amp;gt; Resample image is the resampled moving image.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Load Transform&lt;br /&gt;
** provide the Loaded Transform for the loaded phase of registration&lt;br /&gt;
* Save Transform&lt;br /&gt;
** results of the entire registration pipeline will be saved here&lt;br /&gt;
* Initialization&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
* Registration&lt;br /&gt;
** see registration pipeline discussion&lt;br /&gt;
** For rigid and affine registrations, one-plus-one evoluation optimization is first applied for N iterations, and then FRPR gradient-line-search optimization is applied.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkOptimizedImageToImageRegistrationmethod.h/txx&lt;br /&gt;
** For BSpline registration, a hierarchical registration scheme is used.  An image pyramid having 3 levels is used to resample the images and the control grids.  Heuristics are used to control the various resampling parameters.   At each level, registration is conducted using FRPR gradient-line-search optimization.&lt;br /&gt;
*** For more information, check the code: RegisterImagesModule/itkBSplineImageToImageRegistrationMethod.h/txx &lt;br /&gt;
* Metric&lt;br /&gt;
** Use the Mutual Information metric.   It is an multithreaded and optimized version of the Mattes MI method.&lt;br /&gt;
*** For more information, check the code; Insight/Code/Review/itkOptMattesMutualInformationImageMetric.h/txx&lt;br /&gt;
* &amp;quot;Expected&amp;quot; values&lt;br /&gt;
**  For rigid, affine, and bspline registration, parameter scales (refer to the Insight Software Guide) are represented as hyper-parameters in the RegisterImages module.&lt;br /&gt;
*** &amp;quot;Expected Offset&amp;quot; controls the offset scales in rigid and affine registration the deformation vector scale in bspline registration&lt;br /&gt;
*** &amp;quot;Expected Rotation&amp;quot; is roughly in terms of radians.   It controls the rotation angles in rigid and affine registration&lt;br /&gt;
*** &amp;quot;Expected Scale&amp;quot; is for scaling during affine registration&lt;br /&gt;
*** &amp;quot;Expected Skew&amp;quot; is for skew for affine registration&lt;br /&gt;
|[[Image:RegisterImagesGlobalParameters.png|thumb|380px| Global Parameters&amp;lt;br&amp;gt; This panel controls what will happen overall.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advaned Registration Parameters Tab ===&lt;br /&gt;
{|&lt;br /&gt;
|* Verbosity level&lt;br /&gt;
** Controls the level of detail in the reports in the log file&lt;br /&gt;
* Sample from fixed/moving overlap&lt;br /&gt;
** When the fixed image is much larger than the moving image, it is CRITICAL to set this flag and to pick a good initialization method.   In that way, only the portion of the fixed image that is initially covered by the moving image will be used during registration.   This prevents ITK from throwing an exception (error) stating that too many fixed-image samples miss (map outside of) the moving image.&lt;br /&gt;
* Fixed image intensity percentage threshold&lt;br /&gt;
** A less robust way to overcome the image overlap issue discussed above, you can specify a threshold as a portion (0 to 1) of the fixed image intensity range that should be used to select fixed image samples for computing the metric.   That is, by specifying 0.5, only the pixels in the upper half of the fixed-image's intensity range will be used during random sample selection.&lt;br /&gt;
** Remember, it is important to include pixels inside and outside of the object of interest, otherwise the fixed image histogram may be too homogeneous for mis-registrations to be detected.&lt;br /&gt;
* Random number seed&lt;br /&gt;
** To ensure consistent performance, you can set a seed - repeated runs should produce identical results.&lt;br /&gt;
* Number of threads&lt;br /&gt;
** Number of multi-core/mult-processor threads to use during metric value computations.&lt;br /&gt;
* MimimizeMemory &lt;br /&gt;
** Turns off caching of intermediate values during bspline registration&lt;br /&gt;
** Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on &amp;quot;normal&amp;quot; computers (albeit computation time increases)&lt;br /&gt;
** Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.&lt;br /&gt;
* use windowed sinc for final interpolation&lt;br /&gt;
** If you have time to kill.  Extremely slow and only marginally better than bspline resampling (the default).&lt;br /&gt;
&lt;br /&gt;
|[[Image:RegisterImagesAdvancedGlobalParameters.png|thumb|380px| Advanced Global Parameters Tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Testing Parameters ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''The testing section exposes functionality for development and compilation. It should not be used in regular operation of Slicer.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Baseline Image&lt;br /&gt;
** Set the image against which the Resampled Image (IO tab) will be compared after registration&lt;br /&gt;
* Number of Failed Pixels Tolerance&lt;br /&gt;
** Registration returns &amp;quot;failure&amp;quot; if this many pixels are different between the Resampled and Baseline images&lt;br /&gt;
* Intensity Tolerance&lt;br /&gt;
** Minimum intensity difference between corresponding Resampled and Baseline pixels for those pixels to be counted as failures&lt;br /&gt;
* Radius Tolerance&lt;br /&gt;
** The program will search this neighborhood size about each Resampled pixel to find the closest matching Baseline pixel.   The closest matching pixels are compared using the Intensity Tolerance (above)&lt;br /&gt;
* Baseline Difference Image&lt;br /&gt;
** Result of subtracting the resampled image from the baseline image&lt;br /&gt;
* Baseline Resamples Moving Image&lt;br /&gt;
** resampled image, resampled into the space of the baseline image&lt;br /&gt;
|[[Image:RegisterImagesTestingParameters.png|thumb|380px|  Testing Parameters]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Initial Registration Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* Fixed / Moving Landmarks&lt;br /&gt;
** A vector string (comma separated base-3 list) of the indexes of corresponding points in the fixed and moving images&lt;br /&gt;
** If supplied, then choose &amp;quot;Landmarks&amp;quot; as the initial registration method (see discussion on registration pipeline)&lt;br /&gt;
|[[Image:RegisterImagesAdvancedInitialFiducials.png|thumb|380px|Initialization of rigid registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanaced Rigid and Affine Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
|[[Image:RegisterImagesAdvnacedRigidParameters.png|thumb|380px|Advanced Parameters for rigid registration]]&lt;br /&gt;
[[Image:RegisterImagesAdvancedAffineParameters.png|thumb|380px| Advanced Parameters for affine registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced BSpline Parameters ===&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* MaxIterations&lt;br /&gt;
** Number of iterations for one-plus-one and for FRPR registration&lt;br /&gt;
* Sampling Ratio&lt;br /&gt;
** Portion of the image pixels to be used when computing the metric&lt;br /&gt;
** Do the math...if you have 40 pixels between control points, then there will be 40^3 (64,000) pixels relevant to each control point.  That excessive for directing one control point. Keep the sampling small.  For 40 pixels between control points, a sampling density of 0.1 provide 6,400 pixels for metric computation at each control point - more than enough.&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
* Control point spacing (pixels)&lt;br /&gt;
** Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).&lt;br /&gt;
** When in doubt, turn on MinimizeMemory&lt;br /&gt;
|[[Image:RegisterImagesAdvancedBSplineParameters.png|thumb|380px|Advanced Parameters for B-Spline registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Use Cases==&lt;br /&gt;
=== Example 2: Affine Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** Affine registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
=== Example 3: BSpline Registration ===&lt;br /&gt;
&lt;br /&gt;
* Task: &lt;br /&gt;
** BSpline registration of head MRI from two different subjects&lt;br /&gt;
* Data:&lt;br /&gt;
** Using cases UNC-Healthy-Normal002 (fixed) and UNC-Healthy-Normal004 (moving)&lt;br /&gt;
** Data provided by Dr. Bullitt at UNC.&lt;br /&gt;
** Data is available from Kitware's MIDAS archive at  http://hdl.handle.net/1926/542&lt;br /&gt;
** Data can be automatically downloaded into ${RegisterImages_BINARY_DIR}/Testing/Data directory by enabling the CMake variable &amp;quot;BUILD_REGISTER_IMAGES_REAL_WORLD_TESTING&amp;quot;&lt;br /&gt;
*** Warning this also enables additional tests that can take 4+ hours to complete.&lt;br /&gt;
*** To see the code for automatically downloading from MIDAS (via svn), see Slicer3/Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
This module makes use of GenerateCLP, MRMLIO and ITK.   &lt;br /&gt;
* GenerateCLP is used to defined the command-line options.  GenerateCLP is distributed with Slicer (/Libs/GenerateCLP).&lt;br /&gt;
* MRMLIO is used to replace reading/writing images in ITK to instead passing pointers to shared memory.   MRMLIO is distributed with Slicer (/Libs/MRMLIO).&lt;br /&gt;
* ITK is used to provide the algorithms.   ITK must be compiled with the CMake variables USE_REVIEW, USE_TRANSFORM_IO, and USE_OPTIMIZED_REGISTRATION_METHODS enabled.   These options are automatically enabled when ITK is build using Slicer's getBuildTest.tcl script.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
* Module may fail (and not report a useful error to the console - check the log files) if insufficient memory is available.   If so, please consider enabling the MinimizeMemory option in the Advanced Options tab.&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.&lt;br /&gt;
&lt;br /&gt;
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
*[[Media:Rigid registration of aligned images-03-2009.txt|some email about initialization]]&lt;br /&gt;
*[http://www.na-mic.org/Wiki/index.php/ITK_Registration_Optimization ITK Registration optimization]&lt;br /&gt;
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:LinearRegistrationUseCases Slicer2 vs Slicer3 registration validation]&lt;br /&gt;
*[http://www.batchmake.org/Wiki/Batchmake_slicer Using BatchMake with Slicer RegisterImages module]&lt;br /&gt;
&lt;br /&gt;
===Wishlist===&lt;br /&gt;
*custom gui for creation of matched fiducials for fiducial based initialization&lt;br /&gt;
*using Slicer transforms for initialization&lt;br /&gt;
*output results of rigid, affine, b-spline either as transforms or as resampled volumes&lt;br /&gt;
*include moving filename into default names of results&lt;br /&gt;
*display fixed and moving results in compareview with proper LUTs (different colors for fixed and result, apply w/l from moving to results volume &lt;br /&gt;
*use in combination with VOI&lt;br /&gt;
*more detailed explanation of how to set parameters&lt;br /&gt;
*increase number of example solutions&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12648</id>
		<title>Documentation/3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.6&amp;diff=12648"/>
		<updated>2010-03-25T12:57:33Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is work in progress&lt;br /&gt;
&lt;br /&gt;
=Main GUI=&lt;br /&gt;
&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] &lt;br /&gt;
*[[Modules:EventBindings-3.6| &amp;quot;Hot-keys&amp;quot; and Keyboard Shortcuts]] &lt;br /&gt;
*[[Modules:DataModule-3.6| Loading Scenes and Individual Datasets through the Data Module]] &lt;br /&gt;
*[[Modules:Loading-Data-3.6| Data Loading Details]] &lt;br /&gt;
*[[Modules:Saving-Documentation-3.6| Saving Scenes and Data]] &lt;br /&gt;
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]] &lt;br /&gt;
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]]&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] &lt;br /&gt;
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
=Requirements for Modules=&lt;br /&gt;
{| border=&amp;quot;00&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| &lt;br /&gt;
* The module is '''feature complete''', it does everything that it advertises it can do&lt;br /&gt;
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.&lt;br /&gt;
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.5#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.&lt;br /&gt;
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]&lt;br /&gt;
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.&lt;br /&gt;
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. &lt;br /&gt;
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)&lt;br /&gt;
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]].  The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.&lt;br /&gt;
* Follow [[Documentation-3.5-Rons-Rules|&amp;quot;Ron's rules for tools&amp;quot;]]&lt;br /&gt;
| style=&amp;quot;background: #e5e5e5&amp;quot; align=&amp;quot;center&amp;quot;| Examples for the Help and &lt;br /&gt;
Acknowledgment Panels&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ebeced&amp;quot;|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=List of Modules added or significantly revised since the 3.4 release=&lt;br /&gt;
* Interactive Editor&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Colors&lt;br /&gt;
* Atlas Creator (Sylvain Jaume)&lt;br /&gt;
* MRI Bias Field Correction (Sylvain Jaume)&lt;br /&gt;
* 4D Image (Viewer) (Junichi Tokuda)&lt;br /&gt;
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)&lt;br /&gt;
* Fast Marching segmentation (Andriy Fedorov)&lt;br /&gt;
* Gyri Contour Segmentation]] (Peter Karasev)&lt;br /&gt;
* Subvolume extraction with ROI widget (Andriy Fedorov)&lt;br /&gt;
* Registration Metrics (HD and DSC) (Haytham Elhawary)&lt;br /&gt;
* Measurements (rulers and angles) (Nicole Aucoin)&lt;br /&gt;
* Affine registration (Casey Goodlett)&lt;br /&gt;
* Collect Patient Fiducials (Andrew Wiles)&lt;br /&gt;
&lt;br /&gt;
=List of pre-existing Modules=&lt;br /&gt;
==Core==&lt;br /&gt;
*[[Modules:Camera-Documentation-3.5| Camera Module]] (Sebastian Barre)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.4| Volumes Module]] (Alex Yarmarkovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Models-Documentation-3.4| Models Module]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.4| Fiducials Module]]  (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Data-Documentation-3.4| Data Module]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Color-Documentation-3.4| Color Module]] (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.4|ROI Module]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
==Specialized Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)  '''Not yet 3.6'''&lt;br /&gt;
===Informatics Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.4| QDEC Module]] (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
*[[Slicer3:Registration|Overview of all Registration Modules ]] &lt;br /&gt;
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RegisterImagesMultiRes-Documentation-3.5|Register Images Multires]] (Casey Goodlett, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:FiducialRegistration-Documentation-3.5|Fiducial-Based Registration]] (Casey Goodlett)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:Transforms-Documentation-3.4| Transforms Module]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]]  (Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RealignVolume-Documentation-3.4|ACPC Transform]] (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Segmentation===&lt;br /&gt;
*[[Modules:EMSegment|EM Segment]] (Sylvain Jaume, Nicolas Rannou)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Brad Davis, Will Schroeder)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:EMSegment-Simple|EM Segment Simple]] (Brad Davis, Will Schroeder)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:EMSegment-TemplateBuilder|EM Segment Template Builder]] (Brad Davis, Will Schroeder)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:AtlasCreator-Documentation-3.5|Atlas Creator]] (Sylvain Jaume)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FastMarchingSegmentation-Documentation-3.5|Fast Marching segmentation]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Statistics===&lt;br /&gt;
*[[Modules:LabelStatistics-Documentation-3.4|Label Statistics]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Diffusion===&lt;br /&gt;
====DWI====&lt;br /&gt;
*Estimation&lt;br /&gt;
**[[Modules:DiffusionTensorEstimation-Documentation-3.4|Diffusion Tensor Estimation]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExtractBaseline-Documentation-3.4|Python Extract Baseline DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*Filter&lt;br /&gt;
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.4|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:RicianLMMSEImageFilter-Documentation-3.4|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.4|Unbiased Non Local Means filter for DWI]]  (Antonio Tristán Vega, Santiago Aja-Fernandez)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ShiftDWIValues-Documentation-3.4|Python Shift DWI Values]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RecenterScalar2DWI-Documentation-3.4|Python Recenter Scalar to DWI Volume]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
*[[Modules:ResampleDTIVolume-Documentation-3.4|Resample DTI Volume]] (Francois Budin)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.4 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*Analysis&lt;br /&gt;
&lt;br /&gt;
====Tractography====&lt;br /&gt;
*[[Modules:ROISeeding-Documentation-3.4 | Label Seeding]] (Raul San Jose Estepar)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:FiducialSeeding-Documentation-3.4|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DTIDisplay-Documentation-3.4|FiberBundles]] (Alex Yarmakovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:StochasticTractography-Documentation-3.4|Python Stochastic Tractography]] (Julien de Siebenthal)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)   '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CollectFiducials-Documentation-3.5 | Collect Patient Fiducials ]] (Andrew Wiles)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Time Series===&lt;br /&gt;
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ImageLabelCombine-3.4|Image Label Combine]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolume2-Documentation-3.4|Resample Volume2]] (Francois Budin)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ThresholdImage-Documentation-3.4|Threshold Image]] (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
*Arithmetic&lt;br /&gt;
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:CastImage-Documentation-3.4|Cast Image]] (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
** [[Modules:MaskImage-Documentation-3.4|Mask Image]] (Steve Pieper)  '''Not yet 3.6'''&lt;br /&gt;
*Denoising&lt;br /&gt;
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward)   '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*Morphology&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Surface Models===&lt;br /&gt;
*[[Modules:Model_Maker-Documentation-3.4| Modelmaker]] (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
*Grayscale Model Maker (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GyriContourSegmentation-Documentation-3.5|Gyri Contour Segmentation]] (Peter Karasev)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ClipModel-Documentation-3.4| Clip Model]] (Alex Yarmarkovich)  '''Not yet 3.6'''&lt;br /&gt;
*[[Slicer3:Model_Into_Label_Volume_Documentation-3.4| Model into Label Volume]] (Nicole Aucoin)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
*[[Modules:EMSegmentBatch-Documentation-3.4|EM Segmenter batch]] (Julien Jomier, Brad Davis)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:GaussianBlurBatch-Documentation-3.4|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:RegisterImagesBatch-Documentation-3.4|Register Images batch]] (Julien Finet, Stephen Aylward)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ResampleVolumeBatch-Documentation-3.4|Resample Volume batch]] (Julien Finet)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
===Converters===&lt;br /&gt;
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek)  '''Not yet 3.6'''&lt;br /&gt;
*[[Modules:ExtractSubvolumeROI-Documentation-3.5|Subvolume extraction with ROI widget]] (Andriy Fedorov)  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
=Slicer Extensions=&lt;br /&gt;
&lt;br /&gt;
==Extensions for Downloading==&lt;br /&gt;
===Introduction===&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.&lt;br /&gt;
* Some of the extensions do not use the Slicer license. Please review carefully.&lt;br /&gt;
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.&lt;br /&gt;
* The version that is available through the extension manager is chosen by the developer of that extension   &lt;br /&gt;
&lt;br /&gt;
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.&lt;br /&gt;
&lt;br /&gt;
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]&lt;br /&gt;
To add extension modules to an installed binary of slicer:&lt;br /&gt;
* Use the View-&amp;gt;Extension Manager menu option&lt;br /&gt;
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.&lt;br /&gt;
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.&lt;br /&gt;
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).&lt;br /&gt;
* Select the extensions you wish to install and click to download them.  Installed extensions will be available when you restart slicer.&lt;br /&gt;
* To turn modules on or off, you can use the Module Settings page of the View-&amp;gt;Application Settings dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&lt;br /&gt;
*Click on the icon to start the extensions wizard&lt;br /&gt;
[[image:ExtensionsWizard.png|Extensions Wizard]]&lt;br /&gt;
&lt;br /&gt;
===Listing of plug-ins===&lt;br /&gt;
&lt;br /&gt;
'''Available Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ARCTIC|ARCTIC]] Cedric Mathieu (ced.mathieu@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BRAINSROIAuto|BRAINSROIAuto]] Greg Harris (gregory-harris@uiowa.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Thorsten Rolfry '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:DiffusionWarp|DiffusionWarp]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:EMDTIClustering-Documentation-3.5|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LesionSegmentationApplications|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:LocalRegionSeg|LocalRegionSeg]] '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKCenterlines|VTMKCenterlines]] Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms  '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKSlicerModule|VMTKkSlicerModule]] Daniel Haehn (haehn@bwh.harvard.edu) Prerequisite install for all VMTK plugins. '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] Daniel Haehn (haehn@bwh.harvard.edu) providing vessel enhancement filters to highlight vasculature or tubular structures '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example Extensions====&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Deprecated Extensions'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BubbleMaker|BubbleMaker]] Carlos Mendoza (carlos.sanchez.mendoza@gmail.com) '''Not yet 3.6'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Non-SPL Supported Compatibility Packages'''&lt;br /&gt;
&lt;br /&gt;
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12142</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12142"/>
		<updated>2010-02-05T16:10:28Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Mutual information based affine registration using a multi-resolution optimization strategy.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Note use cases for which this module is especially appropriate, and/or link to examples.&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Required:'''&lt;br /&gt;
** Fixed Image - Target image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Moving Image - Source image for registration.  The resulting transform will map the moving image to the fixed image.&lt;br /&gt;
** Resample Image - Image node to create a resampled moving image.  The image node specified in this transform will store the result of resampling the moving image with computed transform.  Typically the user should select to create a new volume here.  This does not need to be specified, but the user should select either this option or output transform.&lt;br /&gt;
** Output Transform - Store the result of the transform in the given transform node.  Typically the user should select to create a new transform node.&lt;br /&gt;
* '''Optional:'''&lt;br /&gt;
** Fixed Image Mask Image - A label image that is used to mask regions of interest in the fixed image.  The mask specified here is used to restrict the placement of samples in the fixed image used for optimizing the registration.  The user may want to mask the brain from background, mask everything in the brain except a lesion region, or otherwise specify the regions they would like to optimize in the registration.&lt;br /&gt;
* '''Advanced:'''&lt;br /&gt;
** Number of iteration - Number of iterations to run at each stage of the optimization.  This method uses Fletcher-Reeves-Polak-Ribiere optimizer and the number of 1-D optimization is bounded by the number of iterations times the dimensionality of the transform.&lt;br /&gt;
** Number of line iterations - Number of iterations to use in the 1-D line optimization.  This is used to bound the maximum number of iterations that can be used in the 1-D optimization at each iteration of the optimization .&lt;br /&gt;
** Step size - Maximum step size of each iteration of the transform.  The optimizer computes a 1-D minimum along the gradient direction that is bounded by the current location and this distance.  This should be specified in terms of voxels.&lt;br /&gt;
** Step Tolerance - Minimum step size to continue optimization.  When the 1-D minimization bounds the minimum within this tolerance, the optimizer moves to the next iteration.&lt;br /&gt;
** Metric Tolerance - When steps of the optimizer result in changes in the metric value less than this, the optimization stops and the current result is returned.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
* Editor, Threshold, Segmentation module: Useful for computing a label mask for the 'Fixed Image Mask Image' option.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/Applications/CLI/RegisterImagesModule/MultiResApplications/RegisterImagesMultiRes.cxx] &lt;br /&gt;
 &lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
* FSL Flirt&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12141</id>
		<title>Modules:RegisterImagesMultiRes-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:RegisterImagesMultiRes-Documentation-3.6&amp;diff=12141"/>
		<updated>2010-02-05T14:53:03Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: Use blank slicer doc template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]&lt;br /&gt;
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: Interactive or CLI&lt;br /&gt;
&lt;br /&gt;
Category: Base or (Filtering, Registration, ''etc.'')&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Affiliation &amp;amp; logo, if desired&lt;br /&gt;
* Contributor1: Affiliation &amp;amp; logo, if desired&lt;br /&gt;
* Contributor2: Affiliation &amp;amp; logo, if desired&lt;br /&gt;
* Contact: name, email&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
Overview of what the module does goes here.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Note use cases for which this module is especially appropriate, and/or link to examples.&lt;br /&gt;
* Link to examples of the module's use&lt;br /&gt;
* Link to any existing tutorials&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
List all the panels in your interface, their features, what they mean, and how to use them. For instance:&lt;br /&gt;
&lt;br /&gt;
* '''Input panel:'''&lt;br /&gt;
* '''Parameters panel:'''&lt;br /&gt;
* '''Output panel:'''&lt;br /&gt;
* '''Viewing panel:'''&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
&lt;br /&gt;
Other modules or packages that are required for this module's use.&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Customize following links for your module:&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.cxx ] &lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.h ]&lt;br /&gt;
 &lt;br /&gt;
Doxygen documentation:&lt;br /&gt;
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classes.html class1]&lt;br /&gt;
&lt;br /&gt;
== More Information == &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
Include funding and other support here.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12140</id>
		<title>Modules:TransformFromFiducials-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12140"/>
		<updated>2010-02-05T14:46:54Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: /* Source code &amp;amp; documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
===Transform From Fiducials===&lt;br /&gt;
Transform From Fiducials&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images with fiducials attached by user]]&lt;br /&gt;
|[[Image:Fiducial_registration_after.jpg|thumb|280px|Images with transform applied to moving image based on fiducial alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This module computs a linear transform from two lists of fiducials.  The transform can either be translation only, rigid transform, or similarity transform.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The user must create two lists of fiducials with the ordering of the two lists implying correspondence.  That is point 1 of list 1 goes with point 1 of list 2.  Note that only points which are considered selected in the fiducials model are included.  For rigid and similarity transforms, the user must specify at least three points in each list.&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Use case 1: Registration initialization.  If the user can specify a few anatomical points (at least 3), this module can be used to generate a transform which can be used to initialize image based registration.&lt;br /&gt;
* IGT tasks that generate landmarks from a tracker automatically can use this module to compute transforms.&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
* '''Main panel:'''&lt;br /&gt;
** Fixed landmarks - target list of points.  The resulting transform maps an object onto the fixed landmarks.&lt;br /&gt;
** Moving landmarks - source list of points.  The result transform maps objects from this space to the fixed landmark space.&lt;br /&gt;
** Save Transform - Transform node to save the result in.  Typically a new transform should be created.&lt;br /&gt;
** Transform Type&lt;br /&gt;
*** Translation - The resulting transform is the translation vector between the centroid of the moving landmarks to the centroid of the fixed landmarks.&lt;br /&gt;
*** Rigid - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone.&lt;br /&gt;
*** Similarity - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone and the rotation is equivalent to that from the rigid transform.  This uses the symmetric formulation of computing the scaling factory given by Horn 1987, see reference below.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
This module is based on [http://www.itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html itk::LandmarkBasedTransformInitializer].  Additional code is internally used in the module to compute the scaling factor for similarity transforms.  This code is based on (Horn 1987).&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications/TransformFromFiducials.cxx TransformFromFidcuals.cxx ]&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications/TransformFromFiducials.xml TransformFromFidcuals.xml ]&lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing. &lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
 Berthold K. P. Horn (1987),&lt;br /&gt;
 &amp;quot;Closed-form solution of absolute orientation using unit quaternions,&amp;quot;&lt;br /&gt;
 Journal of the Optical Society of America A, 4:629-642&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12139</id>
		<title>Modules:TransformFromFiducials-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12139"/>
		<updated>2010-02-05T14:46:02Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
===Transform From Fiducials===&lt;br /&gt;
Transform From Fiducials&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images with fiducials attached by user]]&lt;br /&gt;
|[[Image:Fiducial_registration_after.jpg|thumb|280px|Images with transform applied to moving image based on fiducial alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This module computs a linear transform from two lists of fiducials.  The transform can either be translation only, rigid transform, or similarity transform.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The user must create two lists of fiducials with the ordering of the two lists implying correspondence.  That is point 1 of list 1 goes with point 1 of list 2.  Note that only points which are considered selected in the fiducials model are included.  For rigid and similarity transforms, the user must specify at least three points in each list.&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Use case 1: Registration initialization.  If the user can specify a few anatomical points (at least 3), this module can be used to generate a transform which can be used to initialize image based registration.&lt;br /&gt;
* IGT tasks that generate landmarks from a tracker automatically can use this module to compute transforms.&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
* '''Main panel:'''&lt;br /&gt;
** Fixed landmarks - target list of points.  The resulting transform maps an object onto the fixed landmarks.&lt;br /&gt;
** Moving landmarks - source list of points.  The result transform maps objects from this space to the fixed landmark space.&lt;br /&gt;
** Save Transform - Transform node to save the result in.  Typically a new transform should be created.&lt;br /&gt;
** Transform Type&lt;br /&gt;
*** Translation - The resulting transform is the translation vector between the centroid of the moving landmarks to the centroid of the fixed landmarks.&lt;br /&gt;
*** Rigid - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone.&lt;br /&gt;
*** Similarity - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone and the rotation is equivalent to that from the rigid transform.  This uses the symmetric formulation of computing the scaling factory given by Horn 1987, see reference below.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
This module is based on [http://www.itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html itk::LandmarkBasedTransformInitializer].  Additional code is internally used in the module to compute the scaling factor for similarity transforms.  This code is based on (Horn 1987).&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications TransformFromFidcuals.cxx ] &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing. &lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
 Berthold K. P. Horn (1987),&lt;br /&gt;
 &amp;quot;Closed-form solution of absolute orientation using unit quaternions,&amp;quot;&lt;br /&gt;
 Journal of the Optical Society of America A, 4:629-642&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12138</id>
		<title>Modules:TransformFromFiducials-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12138"/>
		<updated>2010-02-05T14:45:37Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Fiducial_registration_before.jpg|thumb|280px|Images with fiducials attached by user]]&lt;br /&gt;
|[[Image:Fiducial_registration_after.jpg|thumb|280px|Images with transform applied to moving image based on fiducial alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This module computs a linear transform from two lists of fiducials.  The transform can either be translation only, rigid transform, or similarity transform.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The user must create two lists of fiducials with the ordering of the two lists implying correspondence.  That is point 1 of list 1 goes with point 1 of list 2.  Note that only points which are considered selected in the fiducials model are included.  For rigid and similarity transforms, the user must specify at least three points in each list.&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Use case 1: Registration initialization.  If the user can specify a few anatomical points (at least 3), this module can be used to generate a transform which can be used to initialize image based registration.&lt;br /&gt;
* IGT tasks that generate landmarks from a tracker automatically can use this module to compute transforms.&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
* '''Main panel:'''&lt;br /&gt;
** Fixed landmarks - target list of points.  The resulting transform maps an object onto the fixed landmarks.&lt;br /&gt;
** Moving landmarks - source list of points.  The result transform maps objects from this space to the fixed landmark space.&lt;br /&gt;
** Save Transform - Transform node to save the result in.  Typically a new transform should be created.&lt;br /&gt;
** Transform Type&lt;br /&gt;
*** Translation - The resulting transform is the translation vector between the centroid of the moving landmarks to the centroid of the fixed landmarks.&lt;br /&gt;
*** Rigid - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone.&lt;br /&gt;
*** Similarity - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone and the rotation is equivalent to that from the rigid transform.  This uses the symmetric formulation of computing the scaling factory given by Horn 1987, see reference below.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
This module is based on [http://www.itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html itk::LandmarkBasedTransformInitializer].  Additional code is internally used in the module to compute the scaling factor for similarity transforms.  This code is based on (Horn 1987).&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications TransformFromFidcuals.cxx ] &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing. &lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
 Berthold K. P. Horn (1987),&lt;br /&gt;
 &amp;quot;Closed-form solution of absolute orientation using unit quaternions,&amp;quot;&lt;br /&gt;
 Journal of the Optical Society of America A, 4:629-642&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12137</id>
		<title>Modules:TransformFromFiducials-Documentation-3.6</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Modules:TransformFromFiducials-Documentation-3.6&amp;diff=12137"/>
		<updated>2010-02-05T14:44:51Z</updated>

		<summary type="html">&lt;p&gt;Gcasey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Documentation-3.5|Return to Slicer 3.5 Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Announcements:Slicer3.5#Highlights|Gallery of New Features]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Module Name===&lt;br /&gt;
MyModule&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:FiducialRegistration_Before.jpg|thumb|280px|Images with fiducials attached by user]]&lt;br /&gt;
|[[Image:FiducialRegistration_After.jpg|thumb|280px|Images with transform applied to moving image based on fiducial alignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
===Module Type &amp;amp; Category===&lt;br /&gt;
&lt;br /&gt;
Type: CLI&lt;br /&gt;
&lt;br /&gt;
Category: Registration&lt;br /&gt;
&lt;br /&gt;
===Authors, Collaborators &amp;amp; Contact===&lt;br /&gt;
* Author1: Casey Goodlett, Kitware&lt;br /&gt;
* Contributor1: Dominik Meier, BWH&lt;br /&gt;
* Contact: Casey Goodlett&lt;br /&gt;
&lt;br /&gt;
===Module Description===&lt;br /&gt;
This module computs a linear transform from two lists of fiducials.  The transform can either be translation only, rigid transform, or similarity transform.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The user must create two lists of fiducials with the ordering of the two lists implying correspondence.  That is point 1 of list 1 goes with point 1 of list 2.  Note that only points which are considered selected in the fiducials model are included.  For rigid and similarity transforms, the user must specify at least three points in each list.&lt;br /&gt;
&lt;br /&gt;
===Examples, Use Cases &amp;amp; Tutorials===&lt;br /&gt;
&lt;br /&gt;
* Use case 1: Registration initialization.  If the user can specify a few anatomical points (at least 3), this module can be used to generate a transform which can be used to initialize image based registration.&lt;br /&gt;
* IGT tasks that generate landmarks from a tracker automatically can use this module to compute transforms.&lt;br /&gt;
&lt;br /&gt;
===Quick Tour of Features and Use===&lt;br /&gt;
&lt;br /&gt;
* '''Main panel:'''&lt;br /&gt;
** Fixed landmarks - target list of points.  The resulting transform maps an object onto the fixed landmarks.&lt;br /&gt;
** Moving landmarks - source list of points.  The result transform maps objects from this space to the fixed landmark space.&lt;br /&gt;
** Save Transform - Transform node to save the result in.  Typically a new transform should be created.&lt;br /&gt;
** Transform Type&lt;br /&gt;
*** Translation - The resulting transform is the translation vector between the centroid of the moving landmarks to the centroid of the fixed landmarks.&lt;br /&gt;
*** Rigid - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone.&lt;br /&gt;
*** Similarity - The resulting transform is the rigid transform that best moves the moving landmarks to the fixed landmarks in a least squares sense.  The translation component is identical to the translation produced by translation alone and the rotation is equivalent to that from the rigid transform.  This uses the symmetric formulation of computing the scaling factory given by Horn 1987, see reference below.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
This module is based on [http://www.itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html itk::LandmarkBasedTransformInitializer].  Additional code is internally used in the module to compute the scaling factor for similarity transforms.  This code is based on (Horn 1987).&lt;br /&gt;
&lt;br /&gt;
===Known bugs===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usability issues===&lt;br /&gt;
&lt;br /&gt;
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.&lt;br /&gt;
&lt;br /&gt;
===Source code &amp;amp; documentation===&lt;br /&gt;
&lt;br /&gt;
Source code:&lt;br /&gt;
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Applications/CLI/RegisterImagesModule/Applications TransformFromFidcuals.cxx ] &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Acknowledgment===&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing. &lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
 Berthold K. P. Horn (1987),&lt;br /&gt;
 &amp;quot;Closed-form solution of absolute orientation using unit quaternions,&amp;quot;&lt;br /&gt;
 Journal of the Optical Society of America A, 4:629-642&lt;/div&gt;</summary>
		<author><name>Gcasey</name></author>
		
	</entry>
</feed>