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::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType > Class Template Reference

#include <rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h>

+ Inheritance diagram for rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >:
+ Collaboration diagram for rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >:

Public Types

using CPUDVFInterpolatorType = CyclicDeformationImageFilter< DVFSequenceImageType, DVFImageType >
 
using CPUVolumeSeriesType = typename itk::Image< typename VolumeSeriesType::PixelType, VolumeSeriesType::ImageDimension >
 
using CudaCyclicDeformationImageFilterType = CPUDVFInterpolatorType
 
using DVFImageType = itk::Image< VectorForDVF, VolumeSeriesType::ImageDimension - 1 >
 
using DVFSequenceImageType = itk::Image< VectorForDVF, VolumeSeriesType::ImageDimension >
 
using Pointer = itk::SmartPointer< Self >
 
using Self = MotionCompensatedFourDReconstructionConjugateGradientOperator
 
using Superclass = FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >
 
using VectorForDVF = itk::CovariantVector< typename VolumeSeriesType::ValueType, VolumeSeriesType::ImageDimension - 1 >
 
using VolumeType = ProjectionStackType
 
using WarpBackProjectionImageFilterType = BackProjectionImageFilter< VolumeType, VolumeType >
 
using WarpForwardProjectionImageFilterType = JosephForwardProjectionImageFilter< ProjectionStackType, ProjectionStackType >
 
- Public Types inherited from rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >
using BackProjectionFilterType = BackProjectionImageFilter< ProjectionStackType, ProjectionStackType >
 
using ConstantProjectionStackSourceType = ConstantImageSource< ProjectionStackType >
 
using ConstantVolumeSeriesSourceType = ConstantImageSource< VolumeSeriesType >
 
using ConstantVolumeSourceType = ConstantImageSource< VolumeType >
 
using CPUProjectionStackType = typename itk::Image< typename ProjectionStackType::PixelType, ProjectionStackType::ImageDimension >
 
using CudaConstantVolumeSeriesSourceType = ConstantVolumeSeriesSourceType
 
using CudaConstantVolumeSourceType = ConstantVolumeSourceType
 
using CudaInterpolateImageFilterType = InterpolationFilterType
 
using CudaSplatImageFilterType = SplatFilterType
 
using DisplacedDetectorFilterType = DisplacedDetectorImageFilter< ProjectionStackType >
 
using ForwardProjectionFilterType = ForwardProjectionImageFilter< ProjectionStackType, ProjectionStackType >
 
using InterpolationFilterType = InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >
 
using Pointer = itk::SmartPointer< Self >
 
using Self = FourDReconstructionConjugateGradientOperator
 
using SplatFilterType = SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >
 
using Superclass = ConjugateGradientOperator< VolumeSeriesType >
 
using VolumeType = ProjectionStackType
 
- Public Types inherited from rtk::ConjugateGradientOperator< VolumeSeriesType >
using Pointer = itk::SmartPointer< Self >
 
using Self = ConjugateGradientOperator
 
using Superclass = itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
void SetSignal (const std::vector< double > signal) override
 
virtual const char * GetNameOfClass () const
 
void SetForwardProjectionFilter (const typename Superclass::ForwardProjectionFilterType::Pointer)
 
void SetBackProjectionFilter (const typename Superclass::BackProjectionFilterType::Pointer)
 
void SetDisplacementField (const DVFSequenceImageType *DisplacementField)
 
void SetInverseDisplacementField (const DVFSequenceImageType *InverseDisplacementField)
 
DVFSequenceImageType::ConstPointer GetInverseDisplacementField ()
 
DVFSequenceImageType::ConstPointer GetDisplacementField ()
 
virtual void SetUseCudaCyclicDeformation (bool _arg)
 
virtual bool GetUseCudaCyclicDeformation ()
 
- Public Member Functions inherited from rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >
void SetBackProjectionFilter (const typename BackProjectionFilterType::Pointer _arg)
 
void SetForwardProjectionFilter (const typename ForwardProjectionFilterType::Pointer _arg)
 
virtual void SetGeometry (const ThreeDCircularProjectionGeometry *_arg)
 
void SetInputVolumeSeries (const VolumeSeriesType *VolumeSeries)
 
VolumeSeriesType::ConstPointer GetInputVolumeSeries ()
 
void SetInputProjectionStack (const ProjectionStackType *Projections)
 
ProjectionStackType::ConstPointer GetInputProjectionStack ()
 
virtual void SetUseCudaInterpolation (bool _arg)
 
virtual bool GetUseCudaInterpolation ()
 
virtual void SetUseCudaSplat (bool _arg)
 
virtual bool GetUseCudaSplat ()
 
virtual void SetUseCudaSources (bool _arg)
 
virtual bool GetUseCudaSources ()
 
virtual itk::Array2D< float > GetWeights ()
 
virtual void SetWeights (itk::Array2D< float > _arg)
 
virtual void SetDisableDisplacedDetectorFilter (bool _arg)
 
virtual bool GetDisableDisplacedDetectorFilter ()
 
- Public Member Functions inherited from rtk::ConjugateGradientOperator< VolumeSeriesType >
virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual void SetX (const VolumeSeriesType *OutputImage)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >
static Pointer New ()
 
- Static Public Member Functions inherited from rtk::ConjugateGradientOperator< VolumeSeriesType >
static Pointer New ()
 

Protected Member Functions

void GenerateData () override
 
void GenerateOutputInformation () override
 
 MotionCompensatedFourDReconstructionConjugateGradientOperator ()
 
void VerifyInputInformation () const override
 
 ~MotionCompensatedFourDReconstructionConjugateGradientOperator () override=default
 
- Protected Member Functions inherited from rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >
 FourDReconstructionConjugateGradientOperator ()
 
void GenerateInputRequestedRegion () override
 
void InitializeConstantSources ()
 
void VerifyPreconditions () ITKv5_CONST override
 
 ~FourDReconstructionConjugateGradientOperator () override=default
 
- Protected Member Functions inherited from rtk::ConjugateGradientOperator< VolumeSeriesType >
 ConjugateGradientOperator ()
 
 ~ConjugateGradientOperator () override=default
 

Protected Attributes

CPUDVFInterpolatorType::Pointer m_DVFInterpolatorFilter
 
CPUDVFInterpolatorType::Pointer m_InverseDVFInterpolatorFilter
 
std::vector< double > m_Signal
 
bool m_UseCudaCyclicDeformation
 
- Protected Attributes inherited from rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >
BackProjectionFilterType::Pointer m_BackProjectionFilter
 
ConstantProjectionStackSourceType::Pointer m_ConstantProjectionStackSource
 
ConstantVolumeSeriesSourceType::Pointer m_ConstantVolumeSeriesSource
 
ConstantVolumeSourceType::Pointer m_ConstantVolumeSource1
 
ConstantVolumeSourceType::Pointer m_ConstantVolumeSource2
 
bool m_DisableDisplacedDetectorFilter
 
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
 
ForwardProjectionFilterType::Pointer m_ForwardProjectionFilter
 
ThreeDCircularProjectionGeometry::ConstPointer m_Geometry
 
InterpolationFilterType::Pointer m_InterpolationFilter
 
std::vector< double > m_Signal
 
SplatFilterType::Pointer m_SplatFilter
 
bool m_UseCudaInterpolation
 
bool m_UseCudaSources
 
bool m_UseCudaSplat
 
itk::Array2D< float > m_Weights
 

Detailed Description

template<typename VolumeSeriesType, typename ProjectionStackType>
class rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >

Like FourDReconstructionConjugateGradientOperator, but motion-compensated.

Test:
rtkfourdconjugategradienttest.cxx
Author
Cyril Mory

Definition at line 100 of file rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h.

Member Typedef Documentation

◆ CPUDVFInterpolatorType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CPUDVFInterpolatorType = CyclicDeformationImageFilter<DVFSequenceImageType, DVFImageType>

◆ CPUVolumeSeriesType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CPUVolumeSeriesType = typename itk::Image<typename VolumeSeriesType::PixelType, VolumeSeriesType::ImageDimension>

SFINAE type alias, depending on whether a CUDA image is used.

Definition at line 117 of file rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h.

◆ CudaCyclicDeformationImageFilterType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CudaCyclicDeformationImageFilterType = CPUDVFInterpolatorType

◆ DVFImageType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::DVFImageType = itk::Image<VectorForDVF, VolumeSeriesType::ImageDimension - 1>

◆ DVFSequenceImageType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::DVFSequenceImageType = itk::Image<VectorForDVF, VolumeSeriesType::ImageDimension>

◆ Pointer

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::Pointer = itk::SmartPointer<Self>

◆ Self

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::Self = MotionCompensatedFourDReconstructionConjugateGradientOperator

Standard class type alias.

Definition at line 107 of file rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h.

◆ Superclass

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::Superclass = FourDReconstructionConjugateGradientOperator<VolumeSeriesType, ProjectionStackType>

◆ VectorForDVF

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::VectorForDVF = itk::CovariantVector<typename VolumeSeriesType::ValueType, VolumeSeriesType::ImageDimension - 1>

◆ VolumeType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::VolumeType = ProjectionStackType

Convenient type alias

Definition at line 112 of file rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h.

◆ WarpBackProjectionImageFilterType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::WarpBackProjectionImageFilterType = BackProjectionImageFilter<VolumeType, VolumeType>

◆ WarpForwardProjectionImageFilterType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::WarpForwardProjectionImageFilterType = JosephForwardProjectionImageFilter<ProjectionStackType, ProjectionStackType>

Constructor & Destructor Documentation

◆ MotionCompensatedFourDReconstructionConjugateGradientOperator()

template<typename VolumeSeriesType , typename ProjectionStackType >
rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::MotionCompensatedFourDReconstructionConjugateGradientOperator ( )
protected

◆ ~MotionCompensatedFourDReconstructionConjugateGradientOperator()

template<typename VolumeSeriesType , typename ProjectionStackType >
rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::~MotionCompensatedFourDReconstructionConjugateGradientOperator ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<typename VolumeSeriesType , typename ProjectionStackType >
virtual::itk::LightObject::Pointer rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CreateAnother ( ) const
virtual

◆ GenerateData()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::GenerateData ( )
overrideprotectedvirtual

◆ GenerateOutputInformation()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::GenerateOutputInformation ( )
overrideprotectedvirtual

Builds the pipeline and computes output information

Reimplemented from rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >.

◆ GetDisplacementField()

template<typename VolumeSeriesType , typename ProjectionStackType >
DVFSequenceImageType::ConstPointer rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::GetDisplacementField ( )

The ND + time motion vector field

◆ GetInverseDisplacementField()

template<typename VolumeSeriesType , typename ProjectionStackType >
DVFSequenceImageType::ConstPointer rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::GetInverseDisplacementField ( )

The ND + time motion vector field

◆ GetNameOfClass()

template<typename VolumeSeriesType , typename ProjectionStackType >
virtual const char* rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >.

◆ GetUseCudaCyclicDeformation()

template<typename VolumeSeriesType , typename ProjectionStackType >
virtual bool rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::GetUseCudaCyclicDeformation ( )
virtual

Set and Get for the UseCudaCyclicDeformation variable

◆ New()

template<typename VolumeSeriesType , typename ProjectionStackType >
static Pointer rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::New ( )
static

Method for creation through the object factory.

◆ SetBackProjectionFilter()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetBackProjectionFilter ( const typename Superclass::BackProjectionFilterType::Pointer  )
inline

The forward and back projection filters cannot be set by the user

Definition at line 168 of file rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h.

◆ SetDisplacementField()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetDisplacementField ( const DVFSequenceImageType DisplacementField)

The ND + time motion vector field

◆ SetForwardProjectionFilter()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetForwardProjectionFilter ( const typename Superclass::ForwardProjectionFilterType::Pointer  )
inline

The forward and back projection filters cannot be set by the user

Definition at line 163 of file rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h.

◆ SetInverseDisplacementField()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetInverseDisplacementField ( const DVFSequenceImageType InverseDisplacementField)

The ND + time motion vector field

◆ SetSignal()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetSignal ( const std::vector< double >  signal)
overridevirtual

Set the vector containing the signal in the sub-filters

Reimplemented from rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >.

◆ SetUseCudaCyclicDeformation()

template<typename VolumeSeriesType , typename ProjectionStackType >
virtual void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetUseCudaCyclicDeformation ( bool  _arg)
virtual

Set and Get for the UseCudaCyclicDeformation variable

◆ VerifyInputInformation()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::VerifyInputInformation ( ) const
inlineoverrideprotected

The inputs should not be in the same space so there is nothing to verify

Definition at line 204 of file rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h.

Member Data Documentation

◆ m_DVFInterpolatorFilter

template<typename VolumeSeriesType , typename ProjectionStackType >
CPUDVFInterpolatorType::Pointer rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::m_DVFInterpolatorFilter
protected

Member pointers to the filters used internally (for convenience)

Definition at line 212 of file rtkMotionCompensatedFourDReconstructionConjugateGradientOperator.h.

◆ m_InverseDVFInterpolatorFilter

template<typename VolumeSeriesType , typename ProjectionStackType >
CPUDVFInterpolatorType::Pointer rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::m_InverseDVFInterpolatorFilter
protected

◆ m_Signal

template<typename VolumeSeriesType , typename ProjectionStackType >
std::vector<double> rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::m_Signal
protected

◆ m_UseCudaCyclicDeformation

template<typename VolumeSeriesType , typename ProjectionStackType >
bool rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::m_UseCudaCyclicDeformation
protected

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