[Insight-developers] "itkSyNImageRegistrationMethod" cannot return its metric's transform properly

Ghayoor, Ali ali-ghayoor at uiowa.edu
Sat Dec 1 20:30:41 EST 2012


Hello Developers,

In a registration framework, at each iteration, I get the current moving transform from the metric of the "itkSyNImageRegistrationMethod" filter; however, the returned moving transform has a displacement field with all zero values at every iteration.

To inspect this deficiency in ITK, I used "itkSyNImageRegistrationTest.cxx", and made some modifications in the test code for this purpose.
I added an iteration observer to the SyN registration stage:

    typedef CommandIterationUpdate<DisplacementFieldRegistrationType> DisplacementFieldCommandType;
    typename DisplacementFieldCommandType::Pointer DisplacementFieldObserver = DisplacementFieldCommandType::New();
    displacementFieldRegistration->AddObserver( itk::IterationEvent(), DisplacementFieldObserver );

Then, inside the observer class, I asked for the parameters of the moving transform at the current iteration:

   std::cout << " parameters: " << const_cast<TFilter *>( filter )->GetMetric()->GetMovingTransform()->GetParameters() << std::endl;
   std::cout << " fixed parameters " << const_cast<TFilter *>( filter )->GetMetric()->GetMovingTransform()->GetFixedParameters() << std::endl;

However, the Parameters of the moving transform is an all zero valued displacement field at each iteration.
Do you know why the registration filter does not return the right moving transform? Could you please help about this problem.

Thanks,
Ali
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-developers/attachments/20121202/ab502086/attachment.htm>


More information about the Insight-developers mailing list