RTK  2.5.0
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage > Class Template Reference

#include <rtkUnwarpSequenceConjugateGradientOperator.h>

+ Inheritance diagram for rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >:
+ Collaboration diagram for rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >:

Public Types

using Pointer = itk::SmartPointer< Self >
 
using Self = UnwarpSequenceConjugateGradientOperator
 
using Superclass = ConjugateGradientOperator< TImageSequence >
 
using WarpSequenceFilterType = rtk::WarpSequenceImageFilter< TImageSequence, TDVFImageSequence, TImage, TDVFImage >
 
- Public Types inherited from rtk::ConjugateGradientOperator< TImageSequence >
using Pointer = itk::SmartPointer< Self >
 
using Self = ConjugateGradientOperator
 
using Superclass = itk::ImageToImageFilter< TImageSequence, TImageSequence >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
TDVFImageSequence::Pointer GetDisplacementField ()
 
virtual bool GetUseNearestNeighborInterpolationInWarping ()
 
void SetDisplacementField (const TDVFImageSequence *DVFs)
 
virtual void SetUseNearestNeighborInterpolationInWarping (bool _arg)
 
virtual const char * GetNameOfClass () const
 
virtual void SetPhaseShift (float _arg)
 
virtual float GetPhaseShift ()
 
virtual void SetUseCudaCyclicDeformation (bool _arg)
 
virtual bool GetUseCudaCyclicDeformation ()
 
- Public Member Functions inherited from rtk::ConjugateGradientOperator< TImageSequence >
virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual void SetX (const TImageSequence *OutputImage)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from rtk::ConjugateGradientOperator< TImageSequence >
static Pointer New ()
 

Protected Member Functions

void GenerateData () override
 
 UnwarpSequenceConjugateGradientOperator ()
 
void VerifyInputInformation () const override
 
 ~UnwarpSequenceConjugateGradientOperator () override=default
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
- Protected Member Functions inherited from rtk::ConjugateGradientOperator< TImageSequence >
 ConjugateGradientOperator ()
 
 ~ConjugateGradientOperator () override=default
 

Protected Attributes

float m_PhaseShift
 
bool m_UseCudaCyclicDeformation
 
bool m_UseNearestNeighborInterpolationInWarping
 
WarpSequenceFilterType::Pointer m_WarpSequenceBackwardFilter
 
WarpSequenceFilterType::Pointer m_WarpSequenceForwardFilter
 

Detailed Description

template<typename TImageSequence, typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
class rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >

Implements the operator A used in the conjugate gradient unwarp sequence filter.

Test:
rtkunwarpsequencetest.cxx
Author
Cyril Mory

Definition at line 67 of file rtkUnwarpSequenceConjugateGradientOperator.h.

Member Typedef Documentation

◆ Pointer

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
using rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::Pointer = itk::SmartPointer<Self>

Definition at line 75 of file rtkUnwarpSequenceConjugateGradientOperator.h.

◆ Self

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
using rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::Self = UnwarpSequenceConjugateGradientOperator

Standard class type alias.

Definition at line 73 of file rtkUnwarpSequenceConjugateGradientOperator.h.

◆ Superclass

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
using rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::Superclass = ConjugateGradientOperator<TImageSequence>

Definition at line 74 of file rtkUnwarpSequenceConjugateGradientOperator.h.

◆ WarpSequenceFilterType

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
using rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::WarpSequenceFilterType = rtk::WarpSequenceImageFilter<TImageSequence, TDVFImageSequence, TImage, TDVFImage>

Definition at line 88 of file rtkUnwarpSequenceConjugateGradientOperator.h.

Constructor & Destructor Documentation

◆ UnwarpSequenceConjugateGradientOperator()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::UnwarpSequenceConjugateGradientOperator ( )
protected

◆ ~UnwarpSequenceConjugateGradientOperator()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::~UnwarpSequenceConjugateGradientOperator ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
virtual::itk::LightObject::Pointer rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ GenerateData()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
void rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::GenerateData ( )
overrideprotectedvirtual

Does the real work.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GenerateInputRequestedRegion()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
void rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GenerateOutputInformation()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
void rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::GenerateOutputInformation ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GetDisplacementField()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
TDVFImageSequence::Pointer rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::GetDisplacementField ( )

Get the motion vector field used in input 1

◆ GetNameOfClass()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
virtual const char* rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from rtk::ConjugateGradientOperator< TImageSequence >.

◆ GetPhaseShift()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
virtual float rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::GetPhaseShift ( )
virtual

Phase shift to simulate phase estimation errors

◆ GetUseCudaCyclicDeformation()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
virtual bool rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::GetUseCudaCyclicDeformation ( )
virtual

Set and Get for the UseCudaCyclicDeformation variable

◆ GetUseNearestNeighborInterpolationInWarping()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
virtual bool rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::GetUseNearestNeighborInterpolationInWarping ( )
virtual

◆ New()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
static Pointer rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::New ( )
static

Method for creation through the object factory.

◆ SetDisplacementField()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
void rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::SetDisplacementField ( const TDVFImageSequence *  DVFs)

Set the motion vector field used in input 1

◆ SetPhaseShift()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
virtual void rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::SetPhaseShift ( float  _arg)
virtual

Phase shift to simulate phase estimation errors

◆ SetUseCudaCyclicDeformation()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
virtual void rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::SetUseCudaCyclicDeformation ( bool  _arg)
virtual

Set and Get for the UseCudaCyclicDeformation variable

◆ SetUseNearestNeighborInterpolationInWarping()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
virtual void rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::SetUseNearestNeighborInterpolationInWarping ( bool  _arg)
virtual

◆ VerifyInputInformation()

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
void rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::VerifyInputInformation ( ) const
inlineoverrideprotected

When the inputs have the same type, ITK checks whether they occupy the same physical space or not. Obviously they dont, so we have to remove this check

Definition at line 130 of file rtkUnwarpSequenceConjugateGradientOperator.h.

Member Data Documentation

◆ m_PhaseShift

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
float rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::m_PhaseShift
protected

◆ m_UseCudaCyclicDeformation

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
bool rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::m_UseCudaCyclicDeformation
protected

◆ m_UseNearestNeighborInterpolationInWarping

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
bool rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::m_UseNearestNeighborInterpolationInWarping
protected

◆ m_WarpSequenceBackwardFilter

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
WarpSequenceFilterType::Pointer rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::m_WarpSequenceBackwardFilter
protected

Member pointers to the filters used internally (for convenience)

Definition at line 120 of file rtkUnwarpSequenceConjugateGradientOperator.h.

◆ m_WarpSequenceForwardFilter

template<typename TImageSequence , typename TDVFImageSequence = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension>, typename TImage = itk::Image<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, typename TDVFImage = itk::Image<itk::CovariantVector<typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>, TImageSequence::ImageDimension - 1>>
WarpSequenceFilterType::Pointer rtk::UnwarpSequenceConjugateGradientOperator< TImageSequence, TDVFImageSequence, TImage, TDVFImage >::m_WarpSequenceForwardFilter
protected

The documentation for this class was generated from the following file: