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

#include <rtkFourDToProjectionStackImageFilter.h>

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

Public Types

typedef rtk::ConstantImageSource< ProjectionStackType > ConstantProjectionStackSourceType
 
typedef rtk::ConstantImageSource< VolumeTypeConstantVolumeSourceType
 
typedef rtk::ForwardProjectionImageFilter< ProjectionStackType, ProjectionStackType > ForwardProjectionFilterType
 
typedef rtk::ThreeDCircularProjectionGeometry GeometryType
 
typedef rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType > InterpolatorFilterType
 
typedef itk::PasteImageFilter< ProjectionStackType, ProjectionStackType > PasteFilterType
 
typedef itk::SmartPointer< SelfPointer
 
typedef FourDToProjectionStackImageFilter Self
 
typedef itk::ImageToImageFilter< ProjectionStackType, ProjectionStackType > Superclass
 
typedef ProjectionStackType VolumeType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
void InitializeConstantVolumeSource ()
 
void SetForwardProjectionFilter (const typename ForwardProjectionFilterType::Pointer _arg)
 
virtual void SetGeometry (GeometryType::Pointer _arg)
 
void SetInputProjectionStack (const ProjectionStackType *Projection)
 
void SetInputVolumeSeries (const VolumeSeriesType *VolumeSeries)
 
virtual void SetSignal (const std::vector< double > signal)
 
void SetWeights (const itk::Array2D< float > _arg)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 FourDToProjectionStackImageFilter ()
 
void GenerateData () override
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
ProjectionStackType::Pointer GetInputProjectionStack ()
 
VolumeSeriesType::ConstPointer GetInputVolumeSeries ()
 
virtual ~FourDToProjectionStackImageFilter () override
 

Protected Attributes

ConstantProjectionStackSourceType::Pointer m_ConstantProjectionStackSource
 
ConstantVolumeSourceType::Pointer m_ConstantVolumeSource
 
ForwardProjectionFilterType::Pointer m_ForwardProjectionFilter
 
GeometryType::Pointer m_Geometry
 
InterpolatorFilterType::Pointer m_InterpolationFilter
 
PasteFilterType::Pointer m_PasteFilter
 
ConstantProjectionStackSourceType::OutputImageRegionType m_PasteRegion
 
std::vector< double > m_Signal
 
itk::Array2D< float > m_Weights
 

Private Member Functions

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

Detailed Description

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

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.

FourDToProjectionStackImageFilter implements R_theta S_theta.

dot_inline_dotgraph_14.png
Test:
rtkfourdconjugategradienttest.cxx
Author
Cyril Mory

Definition at line 99 of file rtkFourDToProjectionStackImageFilter.h.

Member Typedef Documentation

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef rtk::ConstantImageSource<ProjectionStackType> rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::ConstantProjectionStackSourceType

Definition at line 128 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef rtk::ConstantImageSource<VolumeType> rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::ConstantVolumeSourceType

Definition at line 127 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef rtk::ForwardProjectionImageFilter< ProjectionStackType, ProjectionStackType > rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::ForwardProjectionFilterType

Typedefs for the sub filters

Definition at line 124 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef rtk::ThreeDCircularProjectionGeometry rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::GeometryType

Definition at line 129 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType> rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::InterpolatorFilterType

Definition at line 126 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef itk::PasteImageFilter<ProjectionStackType, ProjectionStackType> rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::PasteFilterType

Definition at line 125 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef itk::SmartPointer< Self > rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::Pointer

Definition at line 105 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef FourDToProjectionStackImageFilter rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::Self

Standard class typedefs.

Definition at line 103 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef itk::ImageToImageFilter<ProjectionStackType, ProjectionStackType> rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::Superclass

Definition at line 104 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
typedef ProjectionStackType rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::VolumeType

Convenient typedefs

Definition at line 108 of file rtkFourDToProjectionStackImageFilter.h.

Constructor & Destructor Documentation

template<typename ProjectionStackType , typename VolumeSeriesType >
rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::FourDToProjectionStackImageFilter ( )
protected
template<typename ProjectionStackType , typename VolumeSeriesType >
virtual rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::~FourDToProjectionStackImageFilter ( )
inlineoverrideprotectedvirtual
template<typename ProjectionStackType , typename VolumeSeriesType >
rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::FourDToProjectionStackImageFilter ( const Self )
private

Member Function Documentation

template<typename ProjectionStackType , typename VolumeSeriesType >
virtual::itk::LightObject::Pointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::CreateAnother ( ) const
template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::GenerateData ( )
overrideprotected
template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::GenerateInputRequestedRegion ( )
overrideprotected
template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::GenerateOutputInformation ( )
overrideprotected
template<typename ProjectionStackType , typename VolumeSeriesType >
ProjectionStackType::Pointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::GetInputProjectionStack ( )
protected
template<typename ProjectionStackType , typename VolumeSeriesType >
VolumeSeriesType::ConstPointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::GetInputVolumeSeries ( )
protected
template<typename ProjectionStackType , typename VolumeSeriesType >
virtual const char* rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

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

template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::InitializeConstantVolumeSource ( )

Initializes the empty volume source, set it and update it

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

Method for creation through the object factory.

template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::operator= ( const Self )
private
template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::SetForwardProjectionFilter ( const typename ForwardProjectionFilterType::Pointer  _arg)

Set the ForwardProjection filter

template<typename ProjectionStackType , typename VolumeSeriesType >
virtual void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::SetGeometry ( GeometryType::Pointer  _arg)
virtual

Pass the geometry to SingleProjectionToFourDFilter

template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::SetInputProjectionStack ( const ProjectionStackType *  Projection)

The image that will be backprojected, then added, with coefficients, to each 3D volume of the 4D image. It is 3D because the ForwardProjection filters need it, but the third dimension, which is the number of projections, is 1

template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::SetInputVolumeSeries ( const VolumeSeriesType *  VolumeSeries)

The 4D image to be updated.

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

Store the phase signal in a member variable

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

template<typename ProjectionStackType , typename VolumeSeriesType >
void rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::SetWeights ( const itk::Array2D< float >  _arg)

Pass the interpolation weights to SingleProjectionToFourDFilter

Member Data Documentation

template<typename ProjectionStackType , typename VolumeSeriesType >
ConstantProjectionStackSourceType::Pointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::m_ConstantProjectionStackSource
protected

Definition at line 164 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
ConstantVolumeSourceType::Pointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::m_ConstantVolumeSource
protected

Definition at line 163 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
ForwardProjectionFilterType::Pointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::m_ForwardProjectionFilter
protected

Definition at line 165 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
GeometryType::Pointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::m_Geometry
protected

Definition at line 169 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
InterpolatorFilterType::Pointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::m_InterpolationFilter
protected

Definition at line 162 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
PasteFilterType::Pointer rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::m_PasteFilter
protected

Member pointers to the filters used internally (for convenience)

Definition at line 161 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
ConstantProjectionStackSourceType::OutputImageRegionType rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::m_PasteRegion
protected

Definition at line 170 of file rtkFourDToProjectionStackImageFilter.h.

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

Definition at line 171 of file rtkFourDToProjectionStackImageFilter.h.

template<typename ProjectionStackType , typename VolumeSeriesType >
itk::Array2D<float> rtk::FourDToProjectionStackImageFilter< ProjectionStackType, VolumeSeriesType >::m_Weights
protected

Other member variables

Definition at line 168 of file rtkFourDToProjectionStackImageFilter.h.


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