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 noexcept override |
|
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.