[Insight-users] Re: Mail on MultiResolutionImageRegistration

Luis Ibanez luis.ibanez@kitware.com
Wed, 23 Apr 2003 21:19:31 -0400


Hi Sri,

MultiResolution is not your only option, you are simply subject
to use MutualInformation as metric since those are the only ones
capable of managing multi-modality registration.

It is true, however that multi-resolution is usually a good choice.


----

I would suggest you to use first the registration examples in
the directory:

            Insight/Examples/Registration

In particular:


            - ImageRegistration2.cxx
            - ImageRegistration4.cxx

Both examples have Command/Observer reporting the progress of
the optimizer. Please follow those values in order to determine
how to tune the registration parameters.

You will have to modify the line where the Dimension if defined:

   line 142 in the first file and line 111 in the second file.

Currently the dimension is set to 2, you may have to set it to 3
and adjust the transform initialization accordingly.

Please look at the Registration chapter in the SoftwareGuide,

   http://www.itk.org/ItkSoftwareGuide.pdf

about how to initialize transforms.



Regards,


    Luis


------------------------
Sri Valli wrote:
> Dear Mr.Luis,
>  
>  My requirement is to register CT and PET datasets .CT data is of size 
> 512X512X35 and PET of size 128X128X35. To  register these datasets only 
> option is MultiResolutionFramework.
> I used the itkRecursiveMultiResolutionPyramidImageFilter to set pyramids.
> My Input parameters are,
> if ( registration->GetCurrentLevel() == 0 )
>       {
>       optimizer->SetMaximumStepLength( 0.50 ); 
>       optimizer->SetMinimumStepLength(  0.050 );
>       }
>  else
>       {
>       optimizer->SetMaximumStepLength(
>                 optimizer->GetCurrentStepLength() );
>       optimizer->SetMinimumStepLength(
>                 optimizer->GetMinimumStepLength() / 10.0 );
>       } 
> <file://scales>
>   optimizerScales[0] = 1.0 ; // scale for M11
>   optimizerScales[1] = 1.0 ; // scale for M12
>   optimizerScales[2] = 1.0 ; // scale for M21
>   optimizerScales[3] = 1.0 ; // scale for M22
>   optimizerScales[4] = 1.0 / 1000.0; // scale for   translation on X000
>   optimizerScales[5] = 1.0 / 1000.0; // scale for   translation on Y000
>   optimizer->SetScales( optimizerScales );
>   metric->SetNumberOfHistogramBins( 50 );
>   metric->SetNumberOfSpatialSamples( 1000 );
>   optimizer->SetNumberOfIterations(  200  );
>   unsigned int fixedShrinkFactor[3];
>   fixedShrinkFactor[0]=16;
>   fixedShrinkFactor[1]=16;
>   fixedShrinkFactor[2]=1;
>   unsigned int movingShrinkFactor[3];
>   movingShrinkFactor[0]=4;
>   movingShrinkFactor[1]=4;
>   movingShrinkFactor[2]=1;
>  registration->SetNumberOfLevels( 3 );
>  registration->SetInitialTransformParameters(
>                             transform->GetParameters() );
>  
> With these parameters when I run the application I got the following error.
>  
> itk::ExceptionObject (0012FCE0)
> Location: "Unknown"
> File: F:\ITKNew\itksrc\Code\Algorithms\itkM
> Line: 546
> Description: itk::ERROR: MattesMutualInform
> utside moving image buffer: 52 / 1000
>  
> I tried by changing step length and scales.But, In all the cases I got 
> the same  exception.
> Can you please suggest where I am missing.
>  
> Thanking you,
> Regards,
> valli.
>  
>  
> 
> Catch all the cricket action. Download Yahoo! Score tracker 
> <http://in.sports.yahoo.com/cricket/tracker.html>
>