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::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType > Class Template Reference

#include <rtkInterpolatorWithKnownWeightsImageFilter.h>

+ Inheritance diagram for rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >:
+ Collaboration diagram for rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >:

Public Types

typedef itk::SmartPointer< SelfPointer
 
typedef InterpolatorWithKnownWeightsImageFilter Self
 
typedef itk::ImageToImageFilter< VolumeType, VolumeType > Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
virtual int GetProjectionNumber ()
 
virtual itk::Array2D< float > GetWeights ()
 
void SetInputVolume (const VolumeType *Volume)
 
void SetInputVolumeSeries (const VolumeSeriesType *VolumeSeries)
 
void SetProjectionNumber (int n)
 
virtual void SetWeights (itk::Array2D< float > _arg)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

void GenerateInputRequestedRegion () override
 
VolumeType::ConstPointer GetInputVolume ()
 
VolumeSeriesType::Pointer GetInputVolumeSeries ()
 
 InterpolatorWithKnownWeightsImageFilter ()
 
virtual ~InterpolatorWithKnownWeightsImageFilter () override
 
void ThreadedGenerateData (const typename VolumeType::RegionType &outputRegionForThread, ThreadIdType threadId) override
 

Protected Attributes

int m_ProjectionNumber
 
itk::Array2D< float > m_Weights
 

Private Member Functions

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

Detailed Description

template<typename VolumeType, typename VolumeSeriesType>
class rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >

Interpolates (linearly) in a 3D+t sequence of volumes to get a 3D volume.

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.

InterpolatorWithKnownWeightsImageFilter implements S_theta.

Test:
rtkfourdconjugategradienttest.cxx
Author
Cyril Mory

Definition at line 64 of file rtkInterpolatorWithKnownWeightsImageFilter.h.

Member Typedef Documentation

template<typename VolumeType , typename VolumeSeriesType >
typedef itk::SmartPointer< Self > rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::Pointer

Definition at line 70 of file rtkInterpolatorWithKnownWeightsImageFilter.h.

template<typename VolumeType , typename VolumeSeriesType >
typedef InterpolatorWithKnownWeightsImageFilter rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::Self

Standard class typedefs.

Definition at line 68 of file rtkInterpolatorWithKnownWeightsImageFilter.h.

template<typename VolumeType , typename VolumeSeriesType >
typedef itk::ImageToImageFilter< VolumeType, VolumeType > rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::Superclass

Definition at line 69 of file rtkInterpolatorWithKnownWeightsImageFilter.h.

Constructor & Destructor Documentation

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

Member Function Documentation

template<typename VolumeType , typename VolumeSeriesType >
virtual::itk::LightObject::Pointer rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::CreateAnother ( ) const
template<typename VolumeType , typename VolumeSeriesType >
void rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::GenerateInputRequestedRegion ( )
overrideprotected
template<typename VolumeType , typename VolumeSeriesType >
VolumeType::ConstPointer rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::GetInputVolume ( )
protected
template<typename VolumeType , typename VolumeSeriesType >
VolumeSeriesType::Pointer rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::GetInputVolumeSeries ( )
protected
template<typename VolumeType , typename VolumeSeriesType >
virtual const char* rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

template<typename VolumeType , typename VolumeSeriesType >
virtual int rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::GetProjectionNumber ( )
virtual
template<typename VolumeType , typename VolumeSeriesType >
virtual itk::Array2D<float> rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::GetWeights ( )
virtual

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

template<typename VolumeType , typename VolumeSeriesType >
static Pointer rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::New ( )
static

Method for creation through the object factory.

template<typename VolumeType , typename VolumeSeriesType >
void rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::operator= ( const Self )
private
template<typename VolumeType , typename VolumeSeriesType >
void rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::SetInputVolume ( const VolumeType *  Volume)

The 3D image to be updated.

template<typename VolumeType , typename VolumeSeriesType >
void rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::SetInputVolumeSeries ( const VolumeSeriesType *  VolumeSeries)

The 4D image that will be interpolated, with coefficients, generate a 3D volume.

template<typename VolumeType , typename VolumeSeriesType >
void rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::SetProjectionNumber ( int  n)
template<typename VolumeType , typename VolumeSeriesType >
virtual void rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::SetWeights ( itk::Array2D< float >  _arg)
virtual
template<typename VolumeType , typename VolumeSeriesType >
void rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::ThreadedGenerateData ( const typename VolumeType::RegionType outputRegionForThread,
ThreadIdType  threadId 
)
overrideprotected

Member Data Documentation

template<typename VolumeType , typename VolumeSeriesType >
int rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::m_ProjectionNumber
protected
template<typename VolumeType , typename VolumeSeriesType >
itk::Array2D<float> rtk::InterpolatorWithKnownWeightsImageFilter< VolumeType, VolumeSeriesType >::m_Weights
protected

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