RTK  2.6.0
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
rtk::WarpProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType > Class Template Reference

#include <rtkWarpProjectionStackToFourDImageFilter.h>

+ Inheritance diagram for rtk::WarpProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >:
+ Collaboration diagram for rtk::WarpProjectionStackToFourDImageFilter< 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 = WarpProjectionStackToFourDImageFilter
 
using SignalVectorType = std::vector< double >
 
using Superclass = ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >
 
using VectorForDVF = itk::CovariantVector< typename VolumeSeriesType::ValueType, VolumeSeriesType::ImageDimension - 1 >
 
using VolumeType = ProjectionStackType
 
using WarpBackProjectionImageFilter = BackProjectionImageFilter< VolumeType, VolumeType >
 
- Public Types inherited from rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >
using BackProjectionFilterType = rtk::BackProjectionImageFilter< VolumeType, VolumeType >
 
using ConstantVolumeSeriesSourceType = rtk::ConstantImageSource< VolumeSeriesType >
 
using ConstantVolumeSourceType = rtk::ConstantImageSource< VolumeType >
 
using CPUVolumeSeriesType = typename itk::Image< typename VolumeSeriesType::PixelType, VolumeSeriesType::ImageDimension >
 
using CudaConstantVolumeSeriesSourceType = ConstantVolumeSeriesSourceType
 
using CudaConstantVolumeSourceType = ConstantVolumeSourceType
 
using CudaSplatImageFilterType = SplatFilterType
 
using ExtractFilterType = itk::ExtractImageFilter< ProjectionStackType, ProjectionStackType >
 
using GeometryType = rtk::ThreeDCircularProjectionGeometry
 
using Pointer = itk::SmartPointer< Self >
 
using Self = ProjectionStackToFourDImageFilter
 
using SplatFilterType = rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >
 
using Superclass = itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType >
 
using VolumeType = ProjectionStackType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
void SetBackProjectionFilter (const typename Superclass::BackProjectionFilterType::Pointer)
 
void SetSignal (const std::vector< double > signal) override
 
virtual const char * GetNameOfClass () const
 
void SetDisplacementField (const DVFSequenceImageType *DisplacementField)
 
DVFSequenceImageType::ConstPointer GetDisplacementField ()
 
virtual void SetUseCudaCyclicDeformation (bool _arg)
 
virtual bool GetUseCudaCyclicDeformation ()
 
- Public Member Functions inherited from rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >
virtual ::itk::LightObject::Pointer CreateAnother () const
 
void SetBackProjectionFilter (const typename BackProjectionFilterType::Pointer _arg)
 
virtual void SetGeometry (const GeometryType *_arg)
 
void SetInputVolumeSeries (const VolumeSeriesType *VolumeSeries)
 
VolumeSeriesType::ConstPointer GetInputVolumeSeries ()
 
void SetInputProjectionStack (const ProjectionStackType *Projection)
 
ProjectionStackType::ConstPointer GetInputProjectionStack ()
 
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)
 

Static Public Member Functions

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

Protected Member Functions

void GenerateData () override
 
void GenerateOutputInformation () override
 
void VerifyInputInformation () const override
 
 WarpProjectionStackToFourDImageFilter ()
 
 ~WarpProjectionStackToFourDImageFilter () override=default
 
- Protected Member Functions inherited from rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >
void GenerateData () override
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
void InitializeConstantSource ()
 
 ProjectionStackToFourDImageFilter ()
 
void VerifyPreconditions () const override
 
 ~ProjectionStackToFourDImageFilter () override=default
 

Protected Attributes

CPUDVFInterpolatorType::Pointer m_DVFInterpolatorFilter
 
std::vector< double > m_Signal
 
bool m_UseCudaCyclicDeformation
 
- Protected Attributes inherited from rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >
BackProjectionFilterType::Pointer m_BackProjectionFilter
 
ConstantVolumeSeriesSourceType::Pointer m_ConstantVolumeSeriesSource
 
ConstantVolumeSourceType::Pointer m_ConstantVolumeSource
 
ExtractFilterType::Pointer m_ExtractFilter
 
GeometryType::ConstPointer m_Geometry
 
std::vector< double > m_Signal
 
SplatFilterType::Pointer m_SplatFilter
 
bool m_UseCudaSources
 
bool m_UseCudaSplat
 
itk::Array2D< float > m_Weights
 

Detailed Description

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

Back projection part for motion compensated iterative 4D reconstruction.

This filter is similar to ProjectionStackToFourDImageFilter, except that it uses a motion-compensated backprojection. A 4D displacement vector field is therefore required, and its back projection filter cannot be changed.

Test:
rtkfourdconjugategradienttest.cxx
Author
Cyril Mory

Definition at line 85 of file rtkWarpProjectionStackToFourDImageFilter.h.

Member Typedef Documentation

◆ CPUDVFInterpolatorType

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

Definition at line 123 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ CPUVolumeSeriesType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::WarpProjectionStackToFourDImageFilter< 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 102 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ CudaCyclicDeformationImageFilterType

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

Definition at line 124 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ DVFImageType

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

Definition at line 121 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ DVFSequenceImageType

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

Definition at line 120 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ Pointer

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

Definition at line 94 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ Self

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

Standard class type alias.

Definition at line 92 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ SignalVectorType

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::WarpProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >::SignalVectorType = std::vector<double>

Definition at line 138 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ Superclass

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::WarpProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >::Superclass = ProjectionStackToFourDImageFilter<VolumeSeriesType, ProjectionStackType>

Definition at line 93 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ VectorForDVF

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

Definition at line 98 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ VolumeType

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

Convenient type alias

Definition at line 97 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ WarpBackProjectionImageFilter

template<typename VolumeSeriesType , typename ProjectionStackType >
using rtk::WarpProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >::WarpBackProjectionImageFilter = BackProjectionImageFilter<VolumeType, VolumeType>

Definition at line 122 of file rtkWarpProjectionStackToFourDImageFilter.h.

Constructor & Destructor Documentation

◆ WarpProjectionStackToFourDImageFilter()

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

◆ ~WarpProjectionStackToFourDImageFilter()

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

Member Function Documentation

◆ CreateAnother()

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

Reimplemented from itk::Object.

◆ GenerateData()

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

Does the real work.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GenerateOutputInformation()

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

Reimplemented from itk::ProcessObject.

◆ GetDisplacementField()

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

The ND + time motion vector field

◆ GetNameOfClass()

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

Run-time type information (and related methods).

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

◆ GetUseCudaCyclicDeformation()

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

Set and Get for the UseCudaCyclicDeformation variable

◆ New()

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

Method for creation through the object factory.

◆ SetBackProjectionFilter()

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

The back projection filter cannot be set by the user

Definition at line 142 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ SetDisplacementField()

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

The ND + time motion vector field

◆ SetSignal()

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

Store the phase signal in a member variable

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

◆ SetUseCudaCyclicDeformation()

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

Set and Get for the UseCudaCyclicDeformation variable

◆ VerifyInputInformation()

template<typename VolumeSeriesType , typename ProjectionStackType >
void rtk::WarpProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >::VerifyInputInformation ( ) const
inlineoverrideprotectedvirtual

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

Reimplemented from itk::ProcessObject.

Definition at line 176 of file rtkWarpProjectionStackToFourDImageFilter.h.

Member Data Documentation

◆ m_DVFInterpolatorFilter

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

Member pointers to the filters used internally (for convenience)

Definition at line 180 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ m_Signal

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

Definition at line 181 of file rtkWarpProjectionStackToFourDImageFilter.h.

◆ m_UseCudaCyclicDeformation

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

Definition at line 182 of file rtkWarpProjectionStackToFourDImageFilter.h.


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