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

#include <rtkSplatWithKnownWeightsImageFilter.h>

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

Public Types

typedef VolumeSeriesType::RegionType OutputImageRegionType
 
typedef itk::SmartPointer< SelfPointer
 
typedef SplatWithKnownWeightsImageFilter Self
 
typedef itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType > 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

const itk::ImageRegionSplitterBaseGetImageRegionSplitter (void) const override
 
VolumeType::Pointer GetInputVolume ()
 
VolumeSeriesType::ConstPointer GetInputVolumeSeries ()
 
 SplatWithKnownWeightsImageFilter ()
 
void ThreadedGenerateData (const typename VolumeSeriesType::RegionType &outputRegionForThread, itk::ThreadIdType) override
 
virtual ~SplatWithKnownWeightsImageFilter () override
 

Protected Attributes

int m_ProjectionNumber
 
itk::ImageRegionSplitterDirection::Pointer m_Splitter
 
itk::Array2D< float > m_Weights
 

Private Member Functions

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

Detailed Description

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

Splats (linearly) a 3D volume into a 3D+t sequence of volumes.

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.

SplatWithKnownWeightsImageFilter implements S_theta^T.

Test:
rtkfourdconjugategradienttest.cxx
Author
Cyril Mory

Definition at line 67 of file rtkSplatWithKnownWeightsImageFilter.h.

Member Typedef Documentation

template<typename VolumeSeriesType , typename VolumeType >
typedef VolumeSeriesType::RegionType rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::OutputImageRegionType

Definition at line 74 of file rtkSplatWithKnownWeightsImageFilter.h.

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

Definition at line 73 of file rtkSplatWithKnownWeightsImageFilter.h.

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

Standard class typedefs.

Definition at line 71 of file rtkSplatWithKnownWeightsImageFilter.h.

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

Definition at line 72 of file rtkSplatWithKnownWeightsImageFilter.h.

Constructor & Destructor Documentation

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

Member Function Documentation

template<typename VolumeSeriesType , typename VolumeType >
virtual::itk::LightObject::Pointer rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::CreateAnother ( ) const
template<typename VolumeSeriesType , typename VolumeType >
const itk::ImageRegionSplitterBase* rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::GetImageRegionSplitter ( void  ) const
overrideprotected

Splits the OutputRequestedRegion along the first direction, not the last

Referenced by rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::~SplatWithKnownWeightsImageFilter().

template<typename VolumeSeriesType , typename VolumeType >
VolumeType::Pointer rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::GetInputVolume ( )
protected
template<typename VolumeSeriesType , typename VolumeType >
VolumeSeriesType::ConstPointer rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::GetInputVolumeSeries ( )
protected
template<typename VolumeSeriesType , typename VolumeType >
virtual const char* rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

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

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

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

Method for creation through the object factory.

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

The 3D image that will be added, with coefficients, to each 3D volume of the 4D image.

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

The 4D image to be updated.

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

Member Data Documentation

template<typename VolumeSeriesType , typename VolumeType >
int rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::m_ProjectionNumber
protected

Definition at line 110 of file rtkSplatWithKnownWeightsImageFilter.h.

template<typename VolumeSeriesType , typename VolumeType >
itk::ImageRegionSplitterDirection::Pointer rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::m_Splitter
protected

Definition at line 107 of file rtkSplatWithKnownWeightsImageFilter.h.

template<typename VolumeSeriesType , typename VolumeType >
itk::Array2D<float> rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::m_Weights
protected

Definition at line 109 of file rtkSplatWithKnownWeightsImageFilter.h.


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