[Insight-users] Error using Registration - Mutual Information + AffineTransform

sharath v sharath20284 at yahoo.com
Tue Jun 23 19:52:07 EDT 2009


Hi,

I am trying to run example ImageRegistration2 with Affine Transform. This example uses originally used Mutual Information based registration with Translation. 

I extended by using AffineTransform, and used the  CenteredTransformInitializer for initialization ( according to example ImageRegistration9, which uses Affine with MeanSquares optimizer)

But, I do run into errors. I am using the BrainProtonDensity images for testing.

For the CenteredTransformInitializer, I use the following piece of code

typedef itk::CenteredTransformInitializer< TransformType,  FixedImageType,  MovingImageType >  TransformInitializerType;
    TransformInitializerType::Pointer initializer = TransformInitializerType::New();
    initializer->SetTransform(   transform );
    initializer->SetFixedImage(  fixedImageReader->GetOutput() ); //*******
    initializer->SetMovingImage( movingImageReader->GetOutput() ); //*******
    initializer->MomentsOn();

    initializer->InitializeTransform();
    registration->SetInitialTransformParameters(transform->GetParameters() );

The program runs into completion, but gives WRONG values for scale and rotation parameters. The translation parameters obtained are correct. 

If I change the starred lines (above in the code) to the take the output of the  fixedSmoother and movingSmoother respectively ( which I think is correct, as they are output of the smoothing function in example2) , I get an exception 

***** Description: itk::ERROR: MutualInformationImageToImageMetric(012D3058): All the sampled point mapped  to outside of the moving image

I have tried the same with Mattes Mutual Information example, to get the same exception.

I have also used the appropriate scale setting code as in example 9.



Thanks in advance for the help,

Sharath Venkatesha


      



More information about the Insight-users mailing list