Translate a Vector Image¶
Synopsis¶
Translate a vector image.
Results¶
Code¶
C++¶
#include "itkImage.h"
#include "itkTranslationTransform.h"
#include "itkImageFileReader.h"
#include "itkResampleImageFilter.h"
#include "itkCovariantVector.h"
#include "itkNumericTraits.h"
int
main(int, char *[])
{
  using VectorType = itk::CovariantVector<double, 3>;
  using VectorImageType = itk::Image<VectorType, 2>;
  VectorImageType::Pointer image = VectorImageType::New();
  itk::Index<2>            start;
  start.Fill(0);
  itk::Size<2> size;
  size.Fill(10);
  itk::ImageRegion<2> region(start, size);
  image->SetRegions(region);
  image->Allocate();
  image->FillBuffer(itk::NumericTraits<VectorType>::ZeroValue());
  itk::TranslationTransform<double, 2>::Pointer          transform = itk::TranslationTransform<double, 2>::New();
  itk::TranslationTransform<double, 2>::OutputVectorType translation;
  translation[0] = 10;
  translation[1] = 20;
  transform->Translate(translation);
  using ResampleFilterType = itk::ResampleImageFilter<VectorImageType, VectorImageType>;
  ResampleFilterType::Pointer vectorResampleFilter = ResampleFilterType::New();
  vectorResampleFilter->SetInput(image);
  vectorResampleFilter->SetSize(image->GetLargestPossibleRegion().GetSize());
  vectorResampleFilter->SetTransform(transform);
  vectorResampleFilter->Update();
  return EXIT_SUCCESS;
}
Classes demonstrated¶
- 
template<typename 
TParametersValueType= double, unsigned intNDimensions= 3>
classTranslationTransform: public itk::Transform<TParametersValueType, NDimensions, NDimensions> Translation transformation of a vector space (e.g. space coordinates)
The same functionality could be obtained by using the Affine transform, but with a large difference in performance.
- ITK Sphinx Examples:
 

