[Insight-users] help with cardiac CT registration

Karthik Krishnan Karthik.Krishnan at kitware.com
Mon Jul 11 07:15:17 EDT 2005


hariharan ganesh lalgudi wrote:

>
> hello,
>
>   I am trying to register cardiac CT images (cubes in a cardiac cycle) 
> based on "Deformableregistration7" example in itk(The one using 
> B-splines). The physical size of the dataset is 220x220x130 mm.
> With the No. of control point being 5x5x5  it takes about a day to 
> register 2 cubes. 

Did you try Multi-resolution registration. With B-splines, there are two 
ways to try multi-resolution registration..

1.  Subsample the image at each resolution as in

  // Create a multi-resolution pyramid with shrink factors of 4,2,1
  typedef itk::PyramidImageFilter < FixedImageType, MovingImageType> 
PyramidFilterType;
  typename PyramidFilterType::Pointer subsampleFixedImageFilter = 
PyramidFilterType::New();
  typename PyramidFilterType::Pointer subsampleMovingImageFilter = 
PyramidFilterType::New();
  subsampleFixedImageFilter->SetInput( fixedImage );
  subsampleFixedImageFilter->SetShrinkFactors(4);
  subsampleFixedImageFilter->Update();
  subsampleMovingImageFilter->SetInput( movingImage );
  subsampleMovingImageFilter->SetShrinkFactors(4);

  typename FixedImageType::ConstPointer fixedImage = 
subsampleFixedImageFilter->GetOutput();
  m_Registration->SetFixedImage( fixedImage ); 
  typename MovingImageType::ConstPointer movingImage = 
subsampleMovingImageFilter->GetOutput();
  m_Registration->SetMovingImage( movingImage );

  // Set initial transform for registration
  // Set other registration paramters.
  // Set Optimizer parameters....
  m_Registration->StartRegistration();

 
  subsampleFixedImageFilter->SetShrinkFactors(2);
  subsampleFixedImageFilter->Update();
  subsampleMovingImageFilter->SetShrinkFactors(2);
  subsampleMovingImageFilter->Update();
  m_Registration->SetInitialTransformParameters(
      m_Registration->GetLastTransformParameters() );
  m_Registration->StartRegistration();

  // Do this again with Pyramid factors of 1, ie full resolution
 
  // now get the resulting parameters
  typename RegistrationType::ParametersType finalParameters =
    m_Registration->GetLastTransformParameters();


2.  Instead of changing the pyramid shrink factors as above, double the 
number of control points at each resolution

> The reduction in MSE (before and after registration) is also not much.
>
>   To have a reasonable control point spacing (20x20x20 mm) No. of 
> control points needs to be atleast 10x10x10. With the number of 
> parameters being so high, I guess it would take much longer time to 
> register two cubes. I was wondering if it would take so long for 
> registration or if I am doing something wrong. Does have itk have 
> hierarchical B-splines implemented?
>
> I am also looking for some tips on registering cardiac cubes using 
> tools in itk.
>
> Any help would be appreciated.
>
> Thanks,
> Hari
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>


More information about the Insight-users mailing list