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

#include <rtkProjectionStackToFourDImageFilter.h>

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

Public Types

typedef rtk::BackProjectionImageFilter< VolumeType, VolumeTypeBackProjectionFilterType
 
typedef rtk::ConstantImageSource< VolumeSeriesType > ConstantVolumeSeriesSourceType
 
typedef rtk::ConstantImageSource< VolumeTypeConstantVolumeSourceType
 
typedef itk::ExtractImageFilter< ProjectionStackType, ProjectionStackType > ExtractFilterType
 
typedef rtk::ThreeDCircularProjectionGeometry GeometryType
 
typedef itk::SmartPointer< SelfPointer
 
typedef ProjectionStackToFourDImageFilter Self
 
typedef rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeTypeSplatFilterType
 
typedef itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType > Superclass
 
typedef ProjectionStackType VolumeType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
virtual bool GetUseCudaSources ()
 
virtual bool GetUseCudaSplat ()
 
virtual itk::Array2D< float > GetWeights ()
 
void SetBackProjectionFilter (const typename BackProjectionFilterType::Pointer _arg)
 
virtual void SetGeometry (const GeometryType *_arg)
 
virtual void SetSignal (const std::vector< double > signal)
 
virtual void SetUseCudaSources (bool _arg)
 
virtual void SetUseCudaSplat (bool _arg)
 
virtual void SetWeights (itk::Array2D< float > _arg)
 
void SetInputVolumeSeries (const VolumeSeriesType *VolumeSeries)
 
VolumeSeriesType::ConstPointer GetInputVolumeSeries ()
 
void SetInputProjectionStack (const ProjectionStackType *Projections)
 
ProjectionStackType::ConstPointer GetInputProjectionStack ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

void GenerateData () override
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
void InitializeConstantSource ()
 
 ProjectionStackToFourDImageFilter ()
 
virtual ~ProjectionStackToFourDImageFilter () override
 

Protected Attributes

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
 

Private Member Functions

void operator= (const Self &)
 
 ProjectionStackToFourDImageFilter (const Self &)
 

Detailed Description

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
class rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >

Implements part of the 4D reconstruction by conjugate gradient.

See the reference paper: "Cardiac C-arm computed tomography using a 3D + time ROI reconstruction method with spatial and temporal regularization" by Mory et al.

4D conjugate gradient reconstruction consists in iteratively minimizing the following cost function:

Sum_over_theta || R_theta S_theta f - p_theta ||_2^2

with

Computing the gradient of this cost function yields:

S_theta^T R_theta^T R_theta S_theta f - S_theta^T R_theta^T p_theta

where A^T means the adjoint of operator A.

ProjectionStackToFourDImageFilter implements S_theta^T R_theta^T.

dot_inline_dotgraph_23.png
Test:
rtkfourdconjugategradienttest.cxx
Author
Cyril Mory

Definition at line 105 of file rtkProjectionStackToFourDImageFilter.h.

Member Typedef Documentation

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef rtk::BackProjectionImageFilter< VolumeType, VolumeType > rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::BackProjectionFilterType

Definition at line 132 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef rtk::ConstantImageSource< VolumeSeriesType > rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::ConstantVolumeSeriesSourceType

Definition at line 135 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef rtk::ConstantImageSource< VolumeType > rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::ConstantVolumeSourceType

Definition at line 134 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef itk::ExtractImageFilter< ProjectionStackType, ProjectionStackType > rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::ExtractFilterType

Definition at line 133 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef rtk::ThreeDCircularProjectionGeometry rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GeometryType

Definition at line 138 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef itk::SmartPointer< Self > rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::Pointer

Definition at line 111 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef ProjectionStackToFourDImageFilter rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::Self

Standard class typedefs.

Definition at line 109 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef rtk::SplatWithKnownWeightsImageFilter<VolumeSeriesType, VolumeType> rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SplatFilterType

Definition at line 136 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType > rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::Superclass

Definition at line 110 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
typedef ProjectionStackType rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::VolumeType

Convenient typedefs

Definition at line 114 of file rtkProjectionStackToFourDImageFilter.h.

Constructor & Destructor Documentation

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::ProjectionStackToFourDImageFilter ( )
protected
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::~ProjectionStackToFourDImageFilter ( )
inlineoverrideprotectedvirtual

Definition at line 161 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::ProjectionStackToFourDImageFilter ( const Self )
private

Member Function Documentation

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual::itk::LightObject::Pointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::CreateAnother ( ) const
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GenerateData ( )
overrideprotected
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GenerateInputRequestedRegion ( )
overrideprotected
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GenerateOutputInformation ( )
overrideprotected
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
ProjectionStackType::ConstPointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GetInputProjectionStack ( )

Set/Get the stack of projections

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
VolumeSeriesType::ConstPointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GetInputVolumeSeries ( )

Set/Get the 4D image to be updated.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual const char* rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

Reimplemented in rtk::WarpProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual bool rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GetUseCudaSources ( )
virtual
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual bool rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GetUseCudaSplat ( )
virtual
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual itk::Array2D<float> rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::GetWeights ( )
virtual

Macros that take care of implementing the Get and Set methods for Weights

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::InitializeConstantSource ( )
protected
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
static Pointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::New ( )
static

Method for creation through the object factory.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::operator= ( const Self )
private
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SetBackProjectionFilter ( const typename BackProjectionFilterType::Pointer  _arg)

Pass the backprojection filter to SingleProjectionToFourDFilter

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SetGeometry ( const GeometryType _arg)
virtual

Pass the geometry to SingleProjectionToFourDFilter

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SetInputProjectionStack ( const ProjectionStackType *  Projections)

Set/Get the stack of projections

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SetInputVolumeSeries ( const VolumeSeriesType *  VolumeSeries)

Set/Get the 4D image to be updated.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SetSignal ( const std::vector< double >  signal)
virtual

Store the phase signal in a member variable

Reimplemented in rtk::WarpProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType >.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SetUseCudaSources ( bool  _arg)
virtual
template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SetUseCudaSplat ( bool  _arg)
virtual

Use CUDA splat / sources

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
virtual void rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::SetWeights ( itk::Array2D< float >  _arg)
virtual

Member Data Documentation

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
BackProjectionFilterType::Pointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_BackProjectionFilter
protected

Definition at line 174 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
ConstantVolumeSeriesSourceType::Pointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_ConstantVolumeSeriesSource
protected

Definition at line 177 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
ConstantVolumeSourceType::Pointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_ConstantVolumeSource
protected

Definition at line 176 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
ExtractFilterType::Pointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_ExtractFilter
protected

Definition at line 175 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
GeometryType::ConstPointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_Geometry
protected

Definition at line 181 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
std::vector<double> rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_Signal
protected

Definition at line 184 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
SplatFilterType::Pointer rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_SplatFilter
protected

Member pointers to the filters used internally (for convenience)

Definition at line 173 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
bool rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_UseCudaSources
protected

Definition at line 183 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
bool rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_UseCudaSplat
protected

Definition at line 182 of file rtkProjectionStackToFourDImageFilter.h.

template<typename VolumeSeriesType, typename ProjectionStackType, typename TFFTPrecision = double>
itk::Array2D<float> rtk::ProjectionStackToFourDImageFilter< VolumeSeriesType, ProjectionStackType, TFFTPrecision >::m_Weights
protected

Other member variables

Definition at line 180 of file rtkProjectionStackToFourDImageFilter.h.


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