Difference between revisions of "Slicer3:LinearRegistrationUseCases"

From Slicer Wiki
Jump to: navigation, search
Line 122: Line 122:
 
** Using RegisterImages module
 
** Using RegisterImages module
 
** DO NOT USE DEFAULT PARAMETERS
 
** DO NOT USE DEFAULT PARAMETERS
*** 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.  The RegisterImages module has the option to limit the fixed image samples to the 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.
+
*** One additional option must be set
*** In the tab, "Advanced registration options" select "Use Overlap as ROI"
+
*** 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 volume looks correct, see below (right)
 
** Output transform looks correct
 
** Output transform looks correct
  1.0094 -0.0573823 -0.000750058
+
  0.984504 0.00242558 0.0181733
  0.0351927 1.06887 0.0810613
+
  0.00837315 0.921599 -0.432808
  0.00242838 -0.0205891 0.991571
+
  -0.0215383 0.400563 0.942328
  3.20002 -15.8546 -16.3295
+
  -0.727524 -0.771725 -14.9462
  
 
{|
 
{|
 
|-
 
|-
| [[Image:RegisterImages-T2-fa-registration-setup-2008-07-30.png|thumb|250px|Setup using RegisterImages as of 2008-07-30]]
+
| [[Image:RegisterImages-Debrecen-affine-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]]
+
| [[Image:RegisterImages-Debrecen-affine-results-2008-07-30.png|thumb|250px|Results using RegisterImages as of 2008-07-30]]
 
|-
 
|-
 
|}
 
|}

Revision as of 00:09, 31 July 2008

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