[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