template<class TFixedImage, class TMovingImage, class TDisplacementField, class TRealType = float>
class itk::VariationalRegistrationMultiResolutionFilter< TFixedImage, TMovingImage, TDisplacementField, TRealType >
Framework for performing multi-resolution variational registration.
VariationalRegistrationMultiResolutionFilter provides a generic framework to perform multi-resolution variational registration.
At each resolution level a VariationalRegistrationFilter is used to register two images by computing the deformation field which will map a moving image onto a fixed image.
A displacement field is represented as an image whose pixel type is some vector type with at least N elements, where N is the dimension of the fixed image. The vector type must support element access via operator []. It is assumed that the vector elements behave like floating point scalars.
The internal VariationalRegistrationFilter can be set using SetRegistrationFilter. By default the standard VariationalRegistrationFilter is used.
The input fixed and moving images are set via methods SetFixedImage and SetMovingImage respectively.
The input and output of the filter can be set via SetInput() or SetInitialField() and is interpreted either as a displacement field (standard registration) or velocity field (diffeomorphic registration). The same is true for the outpur field returned by GetOutput() or GetOutputField(). However, GetDisplacementField() always returns the corresponding displacement field.
MultiResolutionPyramidImageFilter are used to downsample the fixed and moving images. A VectorExpandImageFilter is used to upsample the deformation as we move from a coarse to fine solution.
This class is templated over the fixed image type, the moving image type, and the Deformation Field type.
- Warning
- This class assumes that the fixed, moving and deformation field image types all have the same number of dimensions.
- See Also
- MultiResolutionPyramidImageFilter
-
VectorExpandImageFilter
- Note
- This class was developed with funding from the German Research Foundation (DFG: EH 224/3-1 and HA 235/9-1).
- Author
- Alexander Schmidt-Richberg
-
Rene Werner
-
Jan Ehrhardt
Definition at line 81 of file itkVariationalRegistrationMultiResolutionFilter.h.
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef
VariationalRegistrationFilter
< FixedImageType,
MovingImageType,
DisplacementFieldType > | DefaultRegistrationType |
|
typedef
DisplacementFieldType::Pointer | DisplacementFieldPointer |
|
typedef TDisplacementField | DisplacementFieldType |
|
typedef FieldExpanderType::Pointer | FieldExpanderPointer |
|
typedef
VectorResampleImageFilter
< DisplacementFieldType,
DisplacementFieldType > | FieldExpanderType |
|
typedef
FixedImageType::ConstPointer | FixedImageConstPointer |
|
typedef FixedImageType::Pointer | FixedImagePointer |
|
typedef
FixedImagePyramidType::Pointer | FixedImagePyramidPointer |
|
typedef
MultiResolutionPyramidImageFilter
< FixedImageType,
FixedImageType > | FixedImagePyramidType |
|
typedef TFixedImage | FixedImageType |
|
typedef Image< TRealType,
itkGetStaticConstMacro(ImageDimension) > | FloatImageType |
|
typedef MaskImageType::ConstPointer | MaskImageConstPointer |
|
typedef unsigned char | MaskImagePixelType |
|
typedef MaskImageType::Pointer | MaskImagePointer |
|
typedef
MaskImagePyramidType::Pointer | MaskImagePyramidPointer |
|
typedef
MultiResolutionPyramidImageFilter
< FloatImageType,
FloatImageType > | MaskImagePyramidType |
|
typedef Image
< MaskImagePixelType,
ImageDimension > | MaskImageType |
|
typedef
MovingImageType::ConstPointer | MovingImageConstPointer |
|
typedef MovingImageType::Pointer | MovingImagePointer |
|
typedef
MovingImagePyramidType::Pointer | MovingImagePyramidPointer |
|
typedef
MultiResolutionPyramidImageFilter
< MovingImageType,
MovingImageType > | MovingImagePyramidType |
|
typedef TMovingImage | MovingImageType |
|
typedef Array< unsigned int > | NumberOfIterationsType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef RegistrationType::Pointer | RegistrationPointer |
|
typedef
VariationalRegistrationFilter
< FixedImageType,
MovingImageType,
DisplacementFieldType > | RegistrationType |
|
typedef
VariationalRegistrationMultiResolutionFilter | Self |
|
typedef ImageToImageFilter
< TDisplacementField,
TDisplacementField > | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef
InputImageType::ConstPointer | InputImageConstPointer |
|
typedef InputImageType::PixelType | InputImagePixelType |
|
typedef InputImageType::Pointer | InputImagePointer |
|
typedef InputImageType::RegionType | InputImageRegionType |
|
typedef TDisplacementField | InputImageType |
|
typedef
Superclass::OutputImagePixelType | OutputImagePixelType |
|
typedef
Superclass::OutputImageRegionType | OutputImageRegionType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ImageToImageFilter | Self |
|
typedef ImageSource
< TDisplacementField > | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef
Superclass::DataObjectIdentifierType | DataObjectIdentifierType |
|
typedef DataObject::Pointer | DataObjectPointer |
|
typedef
Superclass::DataObjectPointerArraySizeType | DataObjectPointerArraySizeType |
|
typedef OutputImageType::PixelType | OutputImagePixelType |
|
typedef OutputImageType::Pointer | OutputImagePointer |
|
typedef OutputImageType::RegionType | OutputImageRegionType |
|
typedef TDisplacementField | OutputImageType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ImageSource | Self |
|
typedef ProcessObject | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef
DataObject::DataObjectIdentifierType | DataObjectIdentifierType |
|
typedef DataObject::Pointer | DataObjectPointer |
|
typedef std::vector
< DataObjectPointer > | DataObjectPointerArray |
|
typedef
DataObjectPointerArray::size_type | DataObjectPointerArraySizeType |
|
typedef std::vector
< DataObjectIdentifierType > | NameArray |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ProcessObject | Self |
|
typedef Object | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef SmartPointer< Self > | Pointer |
|
typedef Object | Self |
|
typedef LightObject | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef SmartPointer< Self > | Pointer |
|
typedef LightObject | Self |
|
|
virtual ::itk::LightObject::Pointer | CreateAnother () const |
|
virtual const unsigned int & | GetElapsedLevels () const |
|
const FixedImageType * | GetFixedImage (void) const |
|
const DisplacementFieldType * | GetInitialField (void) |
|
const MaskImageType * | GetMaskImage (void) const |
|
const MovingImageType * | GetMovingImage (void) const |
|
virtual const char * | GetNameOfClass () const |
|
virtual const
NumberOfIterationsType & | GetNumberOfIterations () const |
|
virtual const unsigned int & | GetNumberOfLevels () const |
|
virtual std::vector
< SmartPointer< DataObject >
>::size_type | GetNumberOfValidRequiredInputs () const |
|
const DisplacementFieldType * | GetOutputField (void) |
|
| itkGetObjectMacro (DisplacementField, DisplacementFieldType) |
|
| itkGetObjectMacro (RegistrationFilter, RegistrationType) |
|
| itkGetObjectMacro (FixedImagePyramid, FixedImagePyramidType) |
|
| itkGetObjectMacro (MovingImagePyramid, MovingImagePyramidType) |
|
| itkGetObjectMacro (MaskImagePyramid, MaskImagePyramidType) |
|
| itkGetObjectMacro (FieldExpander, FieldExpanderType) |
|
virtual void | SetFieldExpander (FieldExpanderType *_arg) |
|
virtual void | SetFixedImage (const FixedImageType *ptr) |
|
virtual void | SetFixedImagePyramid (FixedImagePyramidType *_arg) |
|
virtual void | SetInitialField (DisplacementFieldType *ptr) |
|
void | SetMaskImage (const MaskImageType *ptr) |
|
virtual void | SetMaskImagePyramid (MaskImagePyramidType *_arg) |
|
virtual void | SetMovingImage (const MovingImageType *ptr) |
|
virtual void | SetMovingImagePyramid (MovingImagePyramidType *_arg) |
|
virtual void | SetNumberOfIterations (NumberOfIterationsType _arg) |
|
virtual void | SetNumberOfIterations (unsigned int data[]) |
|
virtual void | SetNumberOfLevels (unsigned int num) |
|
virtual void | SetRegistrationFilter (RegistrationType *_arg) |
|
virtual void | StopRegistration () |
|
const InputImageType * | GetInput () const |
|
const InputImageType * | GetInput (unsigned int idx) const |
|
virtual void | PopBackInput () override |
|
virtual void | PopFrontInput () override |
|
virtual void | PushBackInput (const InputImageType *image) |
|
virtual void | PushFrontInput (const InputImageType *image) |
|
virtual void | SetInput (const InputImageType *image) |
|
virtual void | SetInput (unsigned int, const TDisplacementField *image) |
|
virtual void | SetCoordinateTolerance (double _arg) |
|
virtual double | GetCoordinateTolerance () const |
|
virtual void | SetDirectionTolerance (double _arg) |
|
virtual double | GetDirectionTolerance () const |
|
OutputImageType * | GetOutput (unsigned int idx) |
|
virtual void | GraftNthOutput (unsigned int idx, DataObject *output) |
|
virtual void | GraftOutput (const DataObjectIdentifierType &key, DataObject *output) |
|
OutputImageType * | GetOutput () |
|
const OutputImageType * | GetOutput () const |
|
virtual void | GraftOutput (DataObject *output) |
|
virtual
ProcessObject::DataObjectPointer | MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) override |
|
virtual
ProcessObject::DataObjectPointer | MakeOutput (const ProcessObject::DataObjectIdentifierType &) override |
|
virtual void | AbortGenerateDataOff () |
|
virtual void | AbortGenerateDataOn () |
|
virtual const bool & | GetAbortGenerateData () const |
|
DataObjectPointerArray | GetIndexedInputs () |
|
DataObjectPointerArray | GetIndexedOutputs () |
|
NameArray | GetInputNames () const |
|
DataObjectPointerArray | GetInputs () |
|
MultiThreader * | GetMultiThreader () const |
|
DataObjectPointerArraySizeType | GetNumberOfIndexedInputs () const |
|
DataObjectPointerArraySizeType | GetNumberOfIndexedOutputs () const |
|
DataObjectPointerArraySizeType | GetNumberOfInputs () const |
|
DataObjectPointerArraySizeType | GetNumberOfOutputs () const |
|
NameArray | GetOutputNames () const |
|
DataObjectPointerArray | GetOutputs () |
|
virtual const float & | GetProgress () const |
|
NameArray | GetRequiredInputNames () const |
|
bool | HasInput (const DataObjectIdentifierType &key) const |
|
bool | HasOutput (const DataObjectIdentifierType &key) const |
|
virtual void | PrepareOutputs () |
|
virtual void | PropagateRequestedRegion (DataObject *output) |
|
virtual void | ResetPipeline () |
|
virtual void | SetAbortGenerateData (bool _arg) |
|
virtual void | Update () |
|
virtual void | UpdateLargestPossibleRegion () |
|
virtual void | UpdateOutputData (DataObject *output) |
|
virtual void | UpdateOutputInformation () |
|
void | UpdateProgress (float progress) |
|
void | SetProgress (float progress) |
|
virtual void | SetReleaseDataFlag (bool flag) |
|
virtual bool | GetReleaseDataFlag () const |
|
void | ReleaseDataFlagOn () |
|
void | ReleaseDataFlagOff () |
|
virtual void | SetReleaseDataBeforeUpdateFlag (bool _arg) |
|
virtual const bool & | GetReleaseDataBeforeUpdateFlag () const |
|
virtual void | ReleaseDataBeforeUpdateFlagOn () |
|
virtual void | ReleaseDataBeforeUpdateFlagOff () |
|
virtual void | SetNumberOfThreads (ThreadIdType _arg) |
|
virtual const ThreadIdType & | GetNumberOfThreads () const |
|
unsigned long | AddObserver (const EventObject &event, Command *) |
|
unsigned long | AddObserver (const EventObject &event, Command *) const |
|
virtual void | DebugOff () const |
|
virtual void | DebugOn () const |
|
Command * | GetCommand (unsigned long tag) |
|
bool | GetDebug () const |
|
MetaDataDictionary & | GetMetaDataDictionary () |
|
const MetaDataDictionary & | GetMetaDataDictionary () const |
|
virtual ModifiedTimeType | GetMTime () const |
|
virtual const TimeStamp & | GetTimeStamp () const |
|
bool | HasObserver (const EventObject &event) const |
|
void | InvokeEvent (const EventObject &) |
|
void | InvokeEvent (const EventObject &) const |
|
virtual void | Modified () const |
|
virtual void | Register () const override |
|
void | RemoveAllObservers () |
|
void | RemoveObserver (unsigned long tag) |
|
void | SetDebug (bool debugFlag) const |
|
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
|
virtual void | SetReferenceCount (int) override |
|
virtual void | UnRegister () const noexceptoverride |
|
virtual void | SetObjectName (std::string _arg) |
|
virtual const std::string & | GetObjectName () const |
|
virtual void | Delete () |
|
virtual int | GetReferenceCount () const |
|
| itkCloneMacro (Self) |
|
void | Print (std::ostream &os, Indent indent=0) const |
|
|
virtual void | EnlargeOutputRequestedRegion (DataObject *ptr) |
|
virtual void | GenerateData () |
|
virtual void | GenerateInputRequestedRegion () |
|
virtual void | GenerateOutputInformation () |
|
virtual bool | Halt () |
|
void | PrintSelf (std::ostream &os, Indent indent) const |
|
| VariationalRegistrationMultiResolutionFilter () |
|
| ~VariationalRegistrationMultiResolutionFilter () |
|
virtual void | CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion) |
|
virtual void | CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion) |
|
| ImageToImageFilter () |
|
virtual void | VerifyInputInformation () override |
|
| ~ImageToImageFilter () |
|
void | PushBackInput (const DataObject *input) override |
|
void | PushFrontInput (const DataObject *input) override |
|
virtual void | AfterThreadedGenerateData () |
|
virtual void | AllocateOutputs () |
|
virtual void | BeforeThreadedGenerateData () |
|
virtual const
ImageRegionSplitterBase * | GetImageRegionSplitter () const |
|
| ImageSource () |
|
virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion) |
|
virtual void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) |
|
virtual | ~ImageSource () |
|
virtual void | AddInput (DataObject *input) |
|
virtual void | AddOutput (DataObject *output) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
virtual void | CacheInputReleaseDataFlags () |
|
virtual void | GenerateOutputRequestedRegion (DataObject *output) |
|
DataObject * | GetInput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
|
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () const |
|
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () const |
|
bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
|
bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
|
bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
|
| itkLegacyMacro (virtual void RemoveOutput(DataObject *output)) |
|
| itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num)) |
|
| itkLegacyMacro (virtual void RemoveInput(DataObject *input)) |
|
| itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num)) |
|
DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
|
DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
|
DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
|
DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
|
| ProcessObject () |
|
virtual void | PropagateResetPipeline () |
|
virtual void | ReleaseInputs () |
|
virtual void | RemoveInput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveInput (DataObjectPointerArraySizeType) |
|
virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
|
bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
|
virtual void | RestoreInputReleaseDataFlags () |
|
virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
|
virtual void | SetNthInput (DataObjectPointerArraySizeType num, DataObject *input) |
|
virtual void | SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output) |
|
void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
|
void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
|
virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
|
virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
|
virtual void | SetOutput (const DataObjectIdentifierType &key, DataObject *output) |
|
virtual void | SetPrimaryInput (DataObject *input) |
|
virtual void | SetPrimaryOutput (DataObject *output) |
|
void | SetRequiredInputNames (const NameArray &) |
|
virtual void | VerifyPreconditions () |
|
| ~ProcessObject () |
|
DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryInput () |
|
const DataObject * | GetPrimaryInput () const |
|
virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryInputName (void) const |
|
DataObject * | GetOutput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
|
virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryOutputName (void) const |
|
DataObject * | GetOutput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetOutput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryOutput () |
|
const DataObject * | GetPrimaryOutput () const |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &time) |
|
virtual | ~Object () |
|
virtual LightObject::Pointer | InternalClone () const |
|
| LightObject () |
|
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|
template<class TFixedImage , class TMovingImage , class TDisplacementField , class TRealType = float>
By default, the output deformation field has the same spacing, origin and LargestPossibleRegion as the input/initial deformation field.
If the initial deformation field is not set, the output information is copied from the fixed image.
Reimplemented from itk::ProcessObject.