RTK  1.4.0
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage > Class Template Reference

#include <rtkADMMWaveletsConeBeamReconstructionFilter.h>

+ Inheritance diagram for rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >:
+ Collaboration diagram for rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >:

Public Types

typedef itk::AddImageFilter< TOutputImage > AddFilterType
 
typedef rtk::BackProjectionImageFilter< TOutputImage, TOutputImage > BackProjectionFilterType
 
typedef Superclass::BackProjectionType BackProjectionType
 
typedef rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage > CGOperatorFilterType
 
typedef rtk::ConjugateGradientImageFilter< TOutputImage > ConjugateGradientFilterType
 
typedef rtk::DisplacedDetectorImageFilter< TOutputImage > DisplacedDetectorFilterType
 
typedef rtk::ForwardProjectionImageFilter< TOutputImage, TOutputImage > ForwardProjectionFilterType
 
typedef Superclass::ForwardProjectionType ForwardProjectionType
 
typedef itk::MultiplyImageFilter< TOutputImage > MultiplyFilterType
 
typedef itk::SmartPointer< SelfPointer
 
typedef ADMMWaveletsConeBeamReconstructionFilter Self
 
typedef rtk::DeconstructSoftThresholdReconstructImageFilter< TOutputImage > SoftThresholdFilterType
 
typedef itk::SubtractImageFilter< TOutputImage > SubtractFilterType
 
typedef IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage > Superclass
 
- Public Types inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
typedef rtk::BackProjectionImageFilter< TOutputImage, VolumeTypeBackProjectionFilterType
 
typedef BackProjectionFilterType::Pointer BackProjectionPointerType
 
enum  BackProjectionType
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef rtk::ForwardProjectionImageFilter< VolumeType, TOutputImage > ForwardProjectionFilterType
 
typedef ForwardProjectionFilterType::Pointer ForwardProjectionPointerType
 
enum  ForwardProjectionType
 
typedef itk::SmartPointer< SelfPointer
 
typedef IterativeConeBeamReconstructionFilter Self
 
typedef itk::ImageToImageFilter< TOutputImage, TOutputImage > Superclass
 
typedef TOutputImage VolumeType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual float GetAL_iterations ()
 
virtual float GetAlpha ()
 
virtual float GetBeta ()
 
virtual float GetCG_iterations ()
 
virtual bool GetDisableDisplacedDetectorFilter ()
 
virtual const char * GetNameOfClass () const
 
virtual unsigned int GetNumberOfLevels ()
 
virtual unsigned int GetOrder ()
 
virtual void SetAL_iterations (float _arg)
 
virtual void SetAlpha (float _arg)
 
void SetBackProjectionFilter (BackProjectionType _arg) override
 
virtual void SetBeta (float _arg)
 
virtual void SetCG_iterations (float _arg)
 
virtual void SetDisableDisplacedDetectorFilter (bool _arg)
 
void SetForwardProjectionFilter (ForwardProjectionType _arg) override
 
virtual void SetGeometry (ThreeDCircularProjectionGeometry *_arg)
 
virtual void SetNumberOfLevels (unsigned int _arg)
 
virtual void SetOrder (unsigned int _arg)
 
- Public Member Functions inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
virtual ::itk::LightObject::Pointer CreateAnother () const
 
ForwardProjectionType GetForwardProjectionFilter ()
 
BackProjectionType GetBackProjectionFilter ()
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
static Pointer New ()
 

Protected Member Functions

 ADMMWaveletsConeBeamReconstructionFilter ()
 
void GenerateData () override
 
void VerifyInputInformation () override
 
virtual ~ADMMWaveletsConeBeamReconstructionFilter () override
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
- Protected Member Functions inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
virtual BackProjectionPointerType InstantiateBackProjectionFilter (int bptype)
 
virtual ForwardProjectionPointerType InstantiateForwardProjectionFilter (int fwtype)
 
 IterativeConeBeamReconstructionFilter ()
 
virtual ~IterativeConeBeamReconstructionFilter () override
 

Protected Attributes

AddFilterType::Pointer m_AddFilter1
 
AddFilterType::Pointer m_AddFilter2
 
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilter
 
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilterForConjugateGradient
 
CGOperatorFilterType::Pointer m_CGOperator
 
ConjugateGradientFilterType::Pointer m_ConjugateGradientFilter
 
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
 
ForwardProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_ForwardProjectionFilterForConjugateGradient
 
MultiplyFilterType::Pointer m_MultiplyFilter
 
SoftThresholdFilterType::Pointer m_SoftThresholdFilter
 
SubtractFilterType::Pointer m_SubtractFilter1
 
SubtractFilterType::Pointer m_SubtractFilter2
 
MultiplyFilterType::Pointer m_ZeroMultiplyFilter
 
- Protected Attributes inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
BackProjectionType m_CurrentBackProjectionConfiguration
 
ForwardProjectionType m_CurrentForwardProjectionConfiguration
 

Private Member Functions

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

Private Attributes

unsigned int m_AL_iterations
 
float m_Alpha
 
float m_Beta
 
unsigned int m_CG_iterations
 
bool m_DisableDisplacedDetectorFilter
 
ThreeDCircularProjectionGeometry::Pointer m_Geometry
 
unsigned int m_NumberOfLevels
 
unsigned int m_Order
 

Detailed Description

template<typename TOutputImage>
class rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >

Implements the ADMM reconstruction with wavelets regularization.

This filter implements the operator A used in the conjugate gradient step of a reconstruction method based on compressed sensing. The method attempts to find the f that minimizes || Rf -p ||_2^2 + alpha * || W(f) ||_1, with R the forward projection operator, p the measured projections, and W the Daubechies wavelets transform. Note that since Daubechies wavelets are orthogonal, \( W^{T} = W^{-1} \) Details on the method and the calculations can be found on page 53 of

Mory, C. “Cardiac C-Arm Computed Tomography”, PhD thesis, 2014. https://hal.inria.fr/tel-00985728/document

\( f_{k+1} \) is obtained by linear conjugate solving the following:

\[ ( R^T R + \beta I ) f = R^T p + \beta W^{-1} ( g_k + d_k ) \]

\( g_{k+1} \) is obtained by soft thresholding:

\[ g_{k+1} = ST_{ \frac{\alpha}{2 \beta} } ( W f_{k+1} - d_k ) \]

\( d_{k+1} \) is a simple subtraction:

\[ d_{k+1} = g_{k+1} - ( W f_{k+1} - d_k) \]

In ITK, it is much easier to store a volume than its wavelets decomposition. Therefore, we store \( g'_k = W^{-1} g_k \) and \( d'_k = W^{-1} d_k \) instead of \( g_k \) and \( d_k \). The above algorithm can therefore be re-written as follows:

\( f_{k+1} \) is obtained by linear conjugate solving the following:

\[ ( R^T R + \beta I ) f = R^T p + \beta ( g'_k + d'_k ) \]

\( g'_{k+1} \) is obtained by soft thresholding:

\[ g'_{k+1} = W^{-1} ( ST_{ \frac{\alpha}{2 \beta} } W( f_{k+1} - d'_k )) \]

\( d'_{k+1} \) is a simple subtraction:

\[ d'_{k+1} = g'_{k+1} - ( f_{k+1} - d'_k) \]

The wavelet decomposition and reconstruction steps are therefore performed only for soft thresholding.

dot_inline_dotgraph_3.png
Test:
rtkadmmwaveletstest.cxx
Author
Cyril Mory

Definition at line 142 of file rtkADMMWaveletsConeBeamReconstructionFilter.h.

Member Typedef Documentation

template<typename TOutputImage >
typedef itk::AddImageFilter<TOutputImage> rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::AddFilterType
template<typename TOutputImage >
typedef rtk::BackProjectionImageFilter< TOutputImage, TOutputImage > rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::BackProjectionFilterType
template<typename TOutputImage >
typedef Superclass::BackProjectionType rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::BackProjectionType
template<typename TOutputImage >
typedef rtk::ADMMWaveletsConjugateGradientOperator<TOutputImage> rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::CGOperatorFilterType
template<typename TOutputImage >
typedef rtk::ConjugateGradientImageFilter<TOutputImage> rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::ConjugateGradientFilterType
template<typename TOutputImage >
typedef rtk::DisplacedDetectorImageFilter<TOutputImage> rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::DisplacedDetectorFilterType
template<typename TOutputImage >
typedef rtk::ForwardProjectionImageFilter< TOutputImage, TOutputImage > rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::ForwardProjectionFilterType

The 3D image to be updated The gated measured projections

Definition at line 162 of file rtkADMMWaveletsConeBeamReconstructionFilter.h.

template<typename TOutputImage >
typedef itk::MultiplyImageFilter<TOutputImage> rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::MultiplyFilterType
template<typename TOutputImage >
typedef itk::SmartPointer< Self > rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::Pointer
template<typename TOutputImage >
typedef ADMMWaveletsConeBeamReconstructionFilter rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::Self

Standard class typedefs.

Definition at line 146 of file rtkADMMWaveletsConeBeamReconstructionFilter.h.

template<typename TOutputImage >
typedef itk::SubtractImageFilter<TOutputImage> rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SubtractFilterType
template<typename TOutputImage >
typedef IterativeConeBeamReconstructionFilter<TOutputImage, TOutputImage> rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::Superclass

Constructor & Destructor Documentation

template<typename TOutputImage >
rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::ADMMWaveletsConeBeamReconstructionFilter ( )
protected
template<typename TOutputImage >
virtual rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::~ADMMWaveletsConeBeamReconstructionFilter ( )
inlineoverrideprotectedvirtual
template<typename TOutputImage >
rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::ADMMWaveletsConeBeamReconstructionFilter ( const Self )
private

Member Function Documentation

template<typename TOutputImage >
virtual::itk::LightObject::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::CreateAnother ( ) const
template<typename TOutputImage >
void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GenerateData ( )
overrideprotected
template<typename TOutputImage >
void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GenerateInputRequestedRegion ( )
overrideprotected

The volume and the projections must have different requested regions

Referenced by rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::VerifyInputInformation().

template<typename TOutputImage >
void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GenerateOutputInformation ( )
overrideprotected

The volume and the projections must have different requested regions

Referenced by rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::VerifyInputInformation().

template<typename TOutputImage >
virtual float rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GetAL_iterations ( )
virtual
template<typename TOutputImage >
virtual float rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GetAlpha ( )
virtual
template<typename TOutputImage >
virtual float rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GetBeta ( )
virtual
template<typename TOutputImage >
virtual float rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GetCG_iterations ( )
virtual
template<typename TOutputImage >
virtual bool rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GetDisableDisplacedDetectorFilter ( )
virtual
template<typename TOutputImage >
virtual const char* rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >.

template<typename TOutputImage >
virtual unsigned int rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GetNumberOfLevels ( )
virtual
template<typename TOutputImage >
virtual unsigned int rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::GetOrder ( )
virtual
template<typename TOutputImage >
static Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::New ( )
static

Method for creation through the object factory.

template<typename TOutputImage >
void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::operator= ( const Self )
private
template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetAL_iterations ( float  _arg)
virtual
template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetAlpha ( float  _arg)
virtual
template<typename TOutputImage >
void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetBackProjectionFilter ( BackProjectionType  _arg)
overridevirtual

Pass the backprojection filter to the conjugate gradient operator and to the back projection filter generating the B of AX=B

Reimplemented from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >.

template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetBeta ( float  _arg)
virtual
template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetCG_iterations ( float  _arg)
virtual
template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetDisableDisplacedDetectorFilter ( bool  _arg)
virtual

Set / Get whether the displaced detector filter should be disabled

template<typename TOutputImage >
void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetForwardProjectionFilter ( ForwardProjectionType  _arg)
overridevirtual

Pass the ForwardProjection filter to the conjugate gradient operator

Reimplemented from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >.

template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetGeometry ( ThreeDCircularProjectionGeometry _arg)
virtual

Pass the geometry to all filters needing it

template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetNumberOfLevels ( unsigned int  _arg)
virtual
template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::SetOrder ( unsigned int  _arg)
virtual
template<typename TOutputImage >
void rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::VerifyInputInformation ( )
inlineoverrideprotected

Member Data Documentation

template<typename TOutputImage >
AddFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_AddFilter1
protected
template<typename TOutputImage >
AddFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_AddFilter2
protected
template<typename TOutputImage >
unsigned int rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_AL_iterations
private
template<typename TOutputImage >
float rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_Alpha
private
template<typename TOutputImage >
BackProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_BackProjectionFilter
protected
template<typename TOutputImage >
BackProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_BackProjectionFilterForConjugateGradient
protected
template<typename TOutputImage >
float rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_Beta
private
template<typename TOutputImage >
unsigned int rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_CG_iterations
private
template<typename TOutputImage >
CGOperatorFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_CGOperator
protected
template<typename TOutputImage >
ConjugateGradientFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_ConjugateGradientFilter
protected
template<typename TOutputImage >
bool rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_DisableDisplacedDetectorFilter
private
template<typename TOutputImage >
DisplacedDetectorFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_DisplacedDetectorFilter
protected
template<typename TOutputImage >
ForwardProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_ForwardProjectionFilterForConjugateGradient
protected
template<typename TOutputImage >
ThreeDCircularProjectionGeometry::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_Geometry
private
template<typename TOutputImage >
MultiplyFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_MultiplyFilter
protected
template<typename TOutputImage >
unsigned int rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_NumberOfLevels
private
template<typename TOutputImage >
unsigned int rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_Order
private
template<typename TOutputImage >
SoftThresholdFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_SoftThresholdFilter
protected
template<typename TOutputImage >
SubtractFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_SubtractFilter1
protected

Member pointers to the filters used internally (for convenience)

Definition at line 214 of file rtkADMMWaveletsConeBeamReconstructionFilter.h.

template<typename TOutputImage >
SubtractFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_SubtractFilter2
protected
template<typename TOutputImage >
MultiplyFilterType::Pointer rtk::ADMMWaveletsConeBeamReconstructionFilter< TOutputImage >::m_ZeroMultiplyFilter
protected

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