Difference between revisions of "Modules:RegisterImages-Documentation-3.4"
Line 222: | Line 222: | ||
===References=== | ===References=== | ||
Publications related to this module go here. Links to pdfs would be useful. | Publications related to this module go here. Links to pdfs would be useful. | ||
− | *[Image:Rigid registration of aligned images-03-2009.txt some email about initialization] | + | *[[Image:Rigid registration of aligned images-03-2009.txt|some email about initialization]] |
Revision as of 14:32, 8 March 2009
Home < Modules:RegisterImages-Documentation-3.4Return to Slicer 3.4 Documentation
Module Name
MyModule
General Information
Module Type & Category
Type: CLI Module calling ITK functions
Category: Registration
Authors, Collaborators & Contact
- Author1: Stephen Aylward, Kitware
- Contributor1: Ron Kikinis (copying documentation)
- Contact: name, email
Module Description
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.
Major Features
The major features of the module include:
- Default parameters register many full-head and skull-stripped MRI: rigid, affine, and BSpline
- Offers a complete, pipeline-based registration solution
- Load and apply existing transforms
- Compute rigid, affine, and bspline transforms in sequence with a single command
- Intuitive parameters
- Instead of setting obscure "scales" for parameters, you set global values for "Expected Offset", "Expected Rotation", ... to indicate how much mis-registration is anticipated in the data being registered
- MinimizeMemory option provides a way to compute bspline registrations using a dense set of control points and a large number of samples on "normal" computers (albeit computation time increases)
- SampleFromOverlap option allows images of vastly different sizes to be registered
- Helps to avoid (but does not completely eliminate) the annoying ITK exception, "too many samples falls outside of the image"
- Incorporates testing
- Specify a baseline image, and modules will perform the requested registration, compare its results with the baseline image, and return success/failure
- Based on an extensible and re-usable class structure.
Usage
Examples, Use Cases & Tutorials
- Note use cases for which this module is especially appropriate, and/or link to examples.
- Link to examples of the module's use
- Link to any existing tutorials
Quick Tour of Features and Use
See here for more information.
Main Registration Panel
Parameter Choices
- The default parameters should work for a wide range of cases
- In some cases (e.g. unusual acquisition conditions and/or highly inconsistent acquisition protocols) you will need to change the default parameters.
- In other situations, you may wish to tweak parameters to achieve your application-specific speed-vs-accuracy trade-off
Global Parameters
* Step 1: Loaded transform
|
Overview over the other panels
Detailed Information
IO Tab
* Set the fixed and moving images using images in the scene
|
Registration Parameters Tab
* Load Transform
|
Advaned Registration Parameters Tab
- Verbosity level
- Controls the level of detail in the reports in the log file
- Sample from fixed/moving overlap
- 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.
- Fixed image intensity percentage threshold
- 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.
- 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.
- Random number seed
- To ensure consistent performance, you can set a seed - repeated runs should produce identical results.
- Number of threads
- Number of multi-core/mult-processor threads to use during metric value computations.
- MimimizeMemory
- Turns off caching of intermediate values during bspline registration
- Provides a way to compute bspline registrations using a dense set of control points and a large number of samples on "normal" computers (albeit computation time increases)
- Rule of thumb, if the BSpline registration crashes - re-run with this option enabled.
- use windowed sinc for final interpolation
- If you have time to kill. Extremely slow and only marginally better than bspline resampling (the default).
Registration Testing Parameters
- Baseline Image
- Set the image against which the Resampled Image (IO tab) will be compared after registration
- Number of Failed Pixels Tolerance
- Registration returns "failure" if this many pixels are different between the Resampled and Baseline images
- Intensity Tolerance
- Minimum intensity difference between corresponding Resampled and Baseline pixels for those pixels to be counted as failures
- Radius Tolerance
- 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)
- Baseline Difference Image
- Result of subtracting the resampled image from the baseline image
- Baseline Resamples Moving Image
- resampled image, resampled into the space of the baseline image
Advanced Initial Registration Parameters
- Fixed / Moving Landmarks
- A vector string (comma separated base-3 list) of the indexes of corresponding points in the fixed and moving images
- If supplied, then choose "Landmarks" as the initial registration method (see discussion on registration pipeline)
Advanaced Rigid and Affine Parameters
- MaxIterations
- Number of iterations for one-plus-one and for FRPR registration
- Sampling Ratio
- Portion of the image pixels to be used when computing the metric
Advanced BSpline Parameters
- MaxIterations
- Number of iterations for one-plus-one and for FRPR registration
- Sampling Ratio
- Portion of the image pixels to be used when computing the metric
- 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.
- When in doubt, turn on MinimizeMemory
- Control point spacing (pixels)
- Don't think about grid size - instead think about the level of detail that needs to be resolved (see discussion on sampling ratio).
- When in doubt, turn on MinimizeMemory
Development
Dependencies
Other modules or packages that are required for this module's use.
Known bugs
Follow this link to the Slicer3 bug tracker.
Usability issues
Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.
Source code & documentation
Customize following links for your module.
Links to documentation generated by doxygen.
More Information
Acknowledgment
Include funding and other support here.
References
Publications related to this module go here. Links to pdfs would be useful.