Difference between revisions of "Slicer3:LinearRegistrationUseCases"

From Slicer Wiki
Jump to: navigation, search
m (moved Slicer3:Registration to Slicer3:LinearRegistrationUseCases: Make room for a top-level page to point to all the registration modules)
 
(3 intermediate revisions by one other user not shown)
Line 51: Line 51:
 
  -0 0 -0 1
 
  -0 0 -0 1
  
[[Image:RegisterImages-T2-fa-registration-setup-2008-07-30.png|thumb|right|250px|Setup using RegisterImages as of 2008-07-30]]
+
 
[[Image:RegisterImages-T2-fa-registration-results-2008-07-30.png|thumb|right|250px|Results using RegisterImages as of 2008-07-30]]
 
  
 
* Results 2008-07-30
 
* Results 2008-07-30
 
** Using RegisterImages module
 
** Using RegisterImages module
** Using Default parameters
+
** Using Default parameters, see below (left)
** Output volume looks correct
+
** Output volume looks correct, see below (right)
 
** Output transform looks correct
 
** Output transform looks correct
 
  1.0094 -0.0573823 -0.000750058  
 
  1.0094 -0.0573823 -0.000750058  
Line 64: Line 63:
 
  3.20002 -15.8546 -16.3295
 
  3.20002 -15.8546 -16.3295
  
 +
{|
 +
|-
 +
| [[Image:RegisterImages-T2-fa-registration-setup-2008-07-30.png|thumb|250px|Setup using RegisterImages as of 2008-07-30]]
 +
| [[Image:RegisterImages-T2-fa-registration-results-2008-07-30.png|thumb|250px|Results using RegisterImages as of 2008-07-30]]
 +
|-
 +
|}
  
 
----
 
----
Line 109: Line 114:
 
Line: 1036
 
Line: 1036
 
Description: itk::ERROR: MattesMutualInformationImageToImageMetric(0x198d470): Too many samples map outside moving image buffer: 2481 / 10000
 
Description: itk::ERROR: MattesMutualInformationImageToImageMetric(0x198d470): Too many samples map outside moving image buffer: 2481 / 10000
 
 
 
 
  
 
ERROR: In /Users/pieper/slicer3/latest/Slicer3/Modules/CommandLineModule/vtkCommandLineModuleLogic.cxx, line 1326
 
ERROR: In /Users/pieper/slicer3/latest/Slicer3/Modules/CommandLineModule/vtkCommandLineModuleLogic.cxx, line 1326
 
vtkCommandLineModuleLogic (0x1d265ac0): Affine registration completed with errors
 
vtkCommandLineModuleLogic (0x1d265ac0): Affine registration completed with errors
 
</pre>
 
</pre>
 +
 +
* Results 2008-07-30
 +
** Using RegisterImages module
 +
** DO NOT USE DEFAULT PARAMETERS
 +
*** One additional option must be set
 +
*** The difficulty is that fixed image is much larger than the moving image.  As a result, too many random samples chosen from the fixed image will fall outside of the moving image, even when they are registered.  ITK (correctly or incorrectly, its arguable) throw an exception when this happens. 
 +
*** To resolve this, the RegisterImages module has the option to limit the fixed image samples to the initial volume of overlap between the fixed and moving image.  This volume of overlap is computed only once, after the initial (center of mass, image centers, landmarks, or none) registration.
 +
*** In the tab, "Advanced registration options" select "Sample from Overlap"
 +
*** See below (left)
 +
** Output volume looks correct, see below (right)
 +
** Output transform looks correct
 +
0.984504 0.00242558 0.0181733
 +
0.00837315 0.921599 -0.432808
 +
-0.0215383 0.400563 0.942328
 +
-0.727524 -0.771725 -14.9462
 +
 +
{|
 +
|-
 +
| [[Image:RegisterImages-Debrecen-affine-setup-2008-07-30.png|thumb|250px|Setup using RegisterImages as of 2008-07-30]]
 +
| [[Image:RegisterImages-Debrecen-affine-results-2008-07-30.png|thumb|250px|Results using RegisterImages as of 2008-07-30]]
 +
|-
 +
|}

Latest revision as of 15:10, 14 January 2010

Home < Slicer3:LinearRegistrationUseCases

Slicer 3 includes linear and nonlinear registration tools built as command line modules. On this page we are working to collect a variety of example data sets which test the boundary cases in order to optimize the registration performance and accuracy.


See also additional use cases collected for nonlinear registration optimization.



T2 to FA Affine Registration

Results using slicer2
Results using slicer3 as of 2008-04-07


  • Reference 'Gold Standard'
    • Slicer2 calculation using Mattes MI Affine (also uses ITK implementation)
    • Result transform:
   0.998582 0.0548244 0.00874164 1.86596 
   -0.051956 0.957673 0.0339914 -12.8223 
   -0.00506141 -0.00847398 0.994165 16.2862 
   0 0 0 1 


  • Software
    • Slicer3 svn trunk 2008-04-07
  • Parameters
    • Defaults
  • Method
    • Use T2 as fixed, FA as moving
    • Create new output transform and output volume (no input transform)
    • In data module drag FA volume under the newly calculated transform
    • In Transform Module select the output transform and click Invert
  • Results 2008-04-07
    • Output volume appears to be all 0
    • Output transform looks correct, see image to the right.
0.924175 0.0524361 0.0617505 -0.457981 
0.0453017 0.99089 0.0283234 -8.79902 
-0.0525653 -0.0657896 1.11031 18.5389 
-0 0 -0 1


  • Results 2008-07-30
    • Using RegisterImages module
    • Using Default parameters, see below (left)
    • Output volume looks correct, see below (right)
    • Output transform looks correct
1.0094 -0.0573823 -0.000750058 
0.0351927 1.06887 0.0810613 
0.00242838 -0.0205891 0.991571 
3.20002 -15.8546 -16.3295
Setup using RegisterImages as of 2008-07-30
Results using RegisterImages as of 2008-07-30


T1 to Average Gradient Affine Registration

Results using slicer2
Results using slicer3 as of 2008-04-10


  • Input Volumes
  • Reference 'Gold Standard'
    • Slicer2 calculation using Mattes MI Affine (also uses ITK implementation)
    • Result transform:
   0.950655 0.024335 0.0259082 0.857786 
   0.0086567 0.8889 -0.379321 -6.77365 
   -0.0395529 0.39257 0.835359 14.664 
   0 0 0 1 


  • Software
    • Slicer3 svn trunk 2008-04-10
  • Parameters
    • Defaults
  • Method
    • Use T1 as fixed, Gradient as moving
  • Results 2008-04-10
    • Cannot run due to sampling issue
itk::ExceptionObject (0x1990140)
Location: "void itk::MattesMutualInformationImageToImageMetric<TFixedImage, TMovingImage>::GetValueAndDerivative(const typename itk::ImageToImageMetric<TFixedImage, TMovingImage>::ParametersType&, typename itk::ImageToImageMetric<TFixedImage, TMovingImage>::MeasureType&, typename itk::ImageToImageMetric<TFixedImage, TMovingImage>::DerivativeType&) const [with TFixedImage = itk::OrientedImage<short int, 3u>, TMovingImage = itk::OrientedImage<short int, 3u>]" 
File: /Users/pieper/slicer3/latest/Slicer3-lib/Insight/Code/Algorithms/itkMattesMutualInformationImageToImageMetric.txx
Line: 1036
Description: itk::ERROR: MattesMutualInformationImageToImageMetric(0x198d470): Too many samples map outside moving image buffer: 2481 / 10000

ERROR: In /Users/pieper/slicer3/latest/Slicer3/Modules/CommandLineModule/vtkCommandLineModuleLogic.cxx, line 1326
vtkCommandLineModuleLogic (0x1d265ac0): Affine registration completed with errors
  • Results 2008-07-30
    • Using RegisterImages module
    • DO NOT USE DEFAULT PARAMETERS
      • One additional option must be set
      • The difficulty is that fixed image is much larger than the moving image. As a result, too many random samples chosen from the fixed image will fall outside of the moving image, even when they are registered. ITK (correctly or incorrectly, its arguable) throw an exception when this happens.
      • To resolve this, the RegisterImages module has the option to limit the fixed image samples to the initial volume of overlap between the fixed and moving image. This volume of overlap is computed only once, after the initial (center of mass, image centers, landmarks, or none) registration.
      • In the tab, "Advanced registration options" select "Sample from Overlap"
      • See below (left)
    • Output volume looks correct, see below (right)
    • Output transform looks correct
0.984504 0.00242558 0.0181733
0.00837315 0.921599 -0.432808
-0.0215383 0.400563 0.942328
-0.727524 -0.771725 -14.9462
Setup using RegisterImages as of 2008-07-30
Results using RegisterImages as of 2008-07-30