Loading...
Searching...
No Matches
elastix::MovingGenericPyramid< TElastix > Class Template Reference
Components » ImagePyramids

`#include <elxMovingGenericPyramid.h>`

## Detailed Description

template<class TElastix>
class elastix::MovingGenericPyramid< TElastix >

A pyramid based on the itk::GenericMultiResolutionPyramidImageFilter.

It is generic since it has all functionality that the MovingRecursivePyramid, MovingShrinkingPyramid and MovingSmoothingPyramid have together. This pyramid has two separate schedules: one for size rescaling and one for the Gaussian smoothing factor sigma. In addition, it has an option to compute pyramid output per resolution, and not all at once, to reduce memory consumption.

The parameters used in this class are:

Parameters

  MovingImagePyramid: Select this pyramid as follows:
  (MovingImagePyramid "MovingGenericImagePyramid")

  MovingImagePyramidRescaleSchedule: downsampling factors for the moving image pyramid.
  For each dimension, for each resolution level, the downsampling factor of the moving image can be specified.
  Syntax for 2D images:
  (MovingImagePyramidRescaleSchedule <reslevel0,dim0> <reslevel0,dim1> <reslevel1,dim0> <reslevel1,dim1> ...)
  example: (MovingImagePyramidRescaleSchedule 4 4 2 2 1 1)
  Default: isotropic, halved in each resolution, so, like in the example. If ImagePyramidRescaleSchedule is specified, that schedule is used for both moving and moving image pyramid.

  ImagePyramidRescaleSchedule: rescale schedule for both pyramids

  ImagePyramidSchedule: same as ImagePyramidRescaleSchedule

  MovingImagePyramidSchedule: same as MovingImagePyramidRescaleSchedule

  MovingImagePyramidSmoothingSchedule: sigma's for smoothing the moving image pyramid.
  For each dimension, for each resolution level, the sigma of the moving image can be specified.
  Syntax for 2D images:
  (MovingImagePyramidSmoothingSchedule <reslevel0,dim0> <reslevel0,dim1> <reslevel1,dim0> <reslevel1,dim1> ...)
  example: (MovingImagePyramidSmoothingSchedule 4 4 2 2 1 1)
  Default: 0.5 x rescale_factor x moving_image_spacing.
  If ImagePyramidSmoothingSchedule is specified, that schedule is used for both moving and moving image pyramid.

  ImagePyramidSmoothingSchedule: smoothing schedule for both pyramids

  ComputePyramidImagesPerResolution: Flag to specify if all resolution levels are computed at once, or per resolution. Latter saves memory.
  example: (ComputePyramidImagesPerResolution "true")
  Default false.

  ImagePyramidUseShrinkImageFilter: Flag to specify if the ShrinkingImageFilter is used for rescaling the image, or the ResampleImageFilter. Shrinker is faster.
  example: (ImagePyramidUseShrinkImageFilter "true")
  Default false, so by default the resampler is used.

Definition at line 68 of file elxMovingGenericPyramid.h.

Inheritance diagram for elastix::MovingGenericPyramid< TElastix >:
[legend]

## Public Types

using | ConstPointer = itk::SmartPointer<const Self>
using | ITKBaseType = typename Superclass2::ITKBaseType
using | Pointer = itk::SmartPointer<Self>
using | Self = MovingGenericPyramid
using | Superclass1
using | Superclass2 = MovingImagePyramidBase<TElastix>
Public Types inherited from itk::GenericMultiResolutionPyramidImageFilter< TInputImage, TOutputImage, TPrecisionType >
using | ConstPointer = SmartPointer<const Self>
using | Pointer = SmartPointer<Self>
using | RescaleFactorArrayType = SigmaArrayType
using | RescaleScheduleType = ScheduleType
using | ScalarRealType = typename NumericTraits<PixelType>::ScalarRealType
using | Self = GenericMultiResolutionPyramidImageFilter
using | SigmaArrayType = FixedArray<ScalarRealType, Self::ImageDimension>
using | SmoothingScheduleType = vnl_matrix<ScalarRealType>
using | SpacingType = typename Superclass::InputImageType::SpacingType
using | Superclass = MultiResolutionPyramidImageFilter<TInputImage, TOutputImage>
using | SuperSuperclass = typename Superclass::Superclass
Public Types inherited from elastix::MovingImagePyramidBase< TElastix >
using | ElastixType
using | InputImageType = typename ElastixType::MovingImageType
using | ITKBaseType = itk::MultiResolutionPyramidImageFilter<InputImageType, OutputImageType>
using | OutputImageType = typename ElastixType::MovingImageType
using | RegistrationType
using | ScheduleType = typename ITKBaseType::ScheduleType
using | Self = MovingImagePyramidBase
using | Superclass = BaseComponentSE<TElastix>
Public Types inherited from elastix::BaseComponentSE< TElastix >
using | ElastixType = TElastix
using | RegistrationType = typename ElastixType::RegistrationBaseType
using | Self = BaseComponentSE
using | Superclass = BaseComponent

## Public Member Functions

void | BeforeEachResolution () override
| elxClassNameMacro ("MovingGenericImagePyramid")
virtual const char * | GetClassName () const
| ITK_DISALLOW_COPY_AND_MOVE (MovingGenericPyramid)
| itkStaticConstMacro (ImageDimension, unsigned int, Superclass1::ImageDimension)
void | SetMovingSchedule () override
Public Member Functions inherited from itk::GenericMultiResolutionPyramidImageFilter< TInputImage, TOutputImage, TPrecisionType >
virtual void | ComputeOnlyForCurrentLevelOff ()
virtual void | ComputeOnlyForCurrentLevelOn ()
virtual bool | GetComputeOnlyForCurrentLevel () const
virtual const unsigned int & | GetCurrentLevel ()
const RescaleScheduleType & | GetRescaleSchedule () const
virtual const SmoothingScheduleType & | GetSmoothingSchedule ()
| ITK_DISALLOW_COPY_AND_MOVE (GenericMultiResolutionPyramidImageFilter)
| itkStaticConstMacro (ImageDimension, unsigned int, TInputImage::ImageDimension)
| itkStaticConstMacro (OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
virtual void | SetComputeOnlyForCurrentLevel (const bool _arg)
virtual void | SetCurrentLevel (unsigned int level)
void | SetNumberOfLevels (unsigned int num) override
virtual void | SetRescaleSchedule (const RescaleScheduleType &schedule)
virtual void | SetRescaleScheduleToUnity ()
void | SetSchedule (const ScheduleType &schedule) override
virtual void | SetSmoothingSchedule (const SmoothingScheduleType &schedule)
virtual void | SetSmoothingScheduleToZero ()
Public Member Functions inherited from elastix::MovingImagePyramidBase< TElastix >
void | BeforeEachResolutionBase () override
void | BeforeRegistrationBase () override
ITKBaseType * | GetAsITKBaseType ()
const ITKBaseType * | GetAsITKBaseType () const
| ITK_DISALLOW_COPY_AND_MOVE (MovingImagePyramidBase)
void | WritePyramidImage (const std::string &filename, const unsigned int level)
Public Member Functions inherited from elastix::BaseComponentSE< TElastix >
void | AddTargetCellToIterationInfo (const char *const name)
const Configuration * | GetConfiguration () const
ElastixType * | GetElastix () const
auto & | GetIterationInfoAt (const char *const name)
RegistrationType * | GetRegistration () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE)
void | RemoveTargetCellFromIterationInfo (const char *const name)
void | SetConfiguration (const Configuration *_arg)
void | SetElastix (ElastixType *_arg)
Public Member Functions inherited from elastix::BaseComponent
virtual void | AfterEachIteration ()
virtual void | AfterEachIterationBase ()
virtual void | AfterEachResolution ()
virtual void | AfterEachResolutionBase ()
virtual void | AfterRegistration ()
virtual void | AfterRegistrationBase ()
virtual int | BeforeAll ()
virtual int | BeforeAllBase ()
virtual void | BeforeRegistration ()
virtual const char * | elxGetClassName () const
const char * | GetComponentLabel () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponent)
| itkTypeMacroNoParent (BaseComponent)
void | SetComponentLabel (const char *label, unsigned int idx)

## Static Public Member Functions

static Pointer | New ()
Static Public Member Functions inherited from itk::GenericMultiResolutionPyramidImageFilter< TInputImage, TOutputImage, TPrecisionType >
static Pointer | New ()
Static Public Member Functions inherited from elastix::BaseComponent
template<typename TBaseComponent>
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType())
static void | InitializeElastixExecutable ()
static bool | IsElastixLibrary ()

## Protected Member Functions

| MovingGenericPyramid ()=default
| ~MovingGenericPyramid () override=default
Protected Member Functions inherited from itk::GenericMultiResolutionPyramidImageFilter< TInputImage, TOutputImage, TPrecisionType >
void | GenerateData () override
void | GenerateInputRequestedRegion () override
void | GenerateOutputInformation () override
void | GenerateOutputRequestedRegion (DataObject *output) override
| GenericMultiResolutionPyramidImageFilter ()
void | PrintSelf (std::ostream &os, Indent indent) const override
void | ReleaseOutputs ()
| ~GenericMultiResolutionPyramidImageFilter () override=default
Protected Member Functions inherited from elastix::MovingImagePyramidBase< TElastix >
| MovingImagePyramidBase ()=default
| ~MovingImagePyramidBase () override=default
Protected Member Functions inherited from elastix::BaseComponentSE< TElastix >
| BaseComponentSE ()=default
| ~BaseComponentSE () override=default
Protected Member Functions inherited from elastix::BaseComponent
| BaseComponent ()=default
virtual | ~BaseComponent ()=default

## Private Attributes

| elxOverrideGetSelfMacro

## Additional Inherited Members

Protected Attributes inherited from itk::GenericMultiResolutionPyramidImageFilter< TInputImage, TOutputImage, TPrecisionType >
bool | m_ComputeOnlyForCurrentLevel {}
unsigned int | m_CurrentLevel {}
SmoothingScheduleType | m_SmoothingSchedule {}
bool | m_SmoothingScheduleDefined {}
Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
Configuration::ConstPointer | m_Configuration {}
itk::WeakPointer< TElastix > | m_Elastix {}
RegistrationType * | m_Registration {}

## Member Typedef Documentation

## ConstPointer

template<class TElastix>

using elastix::MovingGenericPyramid< TElastix >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 83 of file elxMovingGenericPyramid.h.

## ITKBaseType

template<class TElastix>

using elastix::MovingGenericPyramid< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType

Definition at line 113 of file elxMovingGenericPyramid.h.

## Pointer

template<class TElastix>

using elastix::MovingGenericPyramid< TElastix >::Pointer = itk::SmartPointer<Self>

Definition at line 82 of file elxMovingGenericPyramid.h.

## Self

template<class TElastix>

using elastix::MovingGenericPyramid< TElastix >::Self = MovingGenericPyramid

Standard ITK-stuff.

Definition at line 77 of file elxMovingGenericPyramid.h.

## Superclass1

template<class TElastix>

using elastix::MovingGenericPyramid< TElastix >::Superclass1

Initial value:
itk::GenericMultiResolutionPyramidImageFilter<typename MovingImagePyramidBase<TElastix>::InputImageType,
typename MovingImagePyramidBase<TElastix>::OutputImageType>
elastix::MovingImagePyramidBase::OutputImageType
typename ElastixType::MovingImageType OutputImageType
Definition elxMovingImagePyramidBase.h:78
itk::GenericMultiResolutionPyramidImageFilter
Framework for creating images in a multi-resolution pyramid.
Definition itkGenericMultiResolutionPyramidImageFilter.h:119

Definition at line 78 of file elxMovingGenericPyramid.h.

## Superclass2

template<class TElastix>

using elastix::MovingGenericPyramid< TElastix >::Superclass2 = MovingImagePyramidBase<TElastix>

Definition at line 81 of file elxMovingGenericPyramid.h.

## Constructor & Destructor Documentation

## MovingGenericPyramid()

template<class TElastix>

elastix::MovingGenericPyramid< TElastix >::MovingGenericPyramid | ( |  | ) |

protected default

The constructor.

## ~MovingGenericPyramid()

template<class TElastix>

elastix::MovingGenericPyramid< TElastix >::~MovingGenericPyramid | ( |  | ) |

override protected default

The destructor.

## Member Function Documentation

## BeforeEachResolution()

template<class TElastix>

void elastix::MovingGenericPyramid< TElastix >::BeforeEachResolution | ( |  | ) |

override virtual

Update the current resolution level.

Reimplemented from elastix::BaseComponent.

## elxClassNameMacro()

template<class TElastix>

elastix::MovingGenericPyramid< TElastix >::elxClassNameMacro | ( | "MovingGenericImagePyramid" |  | ) |

Name of this class. Use this name in the parameter file to select this specific pyramid.
example: (MovingImagePyramid "MovingGenericImagePyramid")

## GetClassName()

template<class TElastix>

virtual const char * elastix::MovingGenericPyramid< TElastix >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::GenericMultiResolutionPyramidImageFilter< TInputImage, TOutputImage, TPrecisionType >.

Reimplemented in elastix::OpenCLMovingGenericPyramid< TElastix >.

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TElastix>

elastix::MovingGenericPyramid< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | MovingGenericPyramid< TElastix > |  | ) |

## itkStaticConstMacro()

template<class TElastix>

elastix::MovingGenericPyramid< TElastix >::itkStaticConstMacro | ( | ImageDimension | ,
|  | unsigned int | ,
|  | Superclass1::ImageDimension | )

Get the ImageDimension.

## New()

template<class TElastix>

Pointer elastix::MovingGenericPyramid< TElastix >::New | ( |  | ) |

static

Method for creation through the object factory.

## SetMovingSchedule()

template<class TElastix>

void elastix::MovingGenericPyramid< TElastix >::SetMovingSchedule | ( |  | ) |

override virtual

Method for setting the schedule. Override from MovingImagePyramidBase, since we now have two schedules, rescaling and smoothing.

Reimplemented from elastix::MovingImagePyramidBase< TElastix >.

## Field Documentation

## elxOverrideGetSelfMacro

template<class TElastix>

elastix::MovingGenericPyramid< TElastix >::elxOverrideGetSelfMacro

private

Definition at line 132 of file elxMovingGenericPyramid.h.

Generated on 1768596610 for elastix by 1.15.0 |