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
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers

Reply via email to