版权声明:本文为博主原创文章,转载请注明出处,谢谢 https://blog.csdn.net/rabbitbride/article/details/82423090
空间位置变换
typedef itk::TranslationTransform<double,2> TranslationTransformType;
TranslationTransformType::Pointer transform =
TranslationTransformType::New();
TranslationTransformType::OutputVectorType translation;
translation[0] = 10;
translation[1] = 20;
transform->Translate(translation);
typedef itk::ResampleImageFilter<ImageType, ImageType> ResampleImageFilterType;
ResampleImageFilterType::Pointer resampleFilter = ResampleImageFilterType::New();
resampleFilter->SetTransform(transform.GetPointer());
resampleFilter->SetInput(image);
/*
// These are the defaults
double spacing[ 2 ];
spacing[0] = 1.0;
spacing[1] = 1.0;
resampleFilter->SetOutputSpacing( spacing );
double origin[ 2 ];
origin[0] = 0.0;
origin[1] = 0.0;
resampleFilter->SetOutputOrigin( origin );
*/
// Without this, the program crashes
ImageType::SizeType size = image->GetLargestPossibleRegion().GetSize();
resampleFilter->SetSize( size );
resampleFilter->Update();