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

#include <rtkADMMWaveletsConjugateGradientOperator.h>

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

Public Types

using AddFilterType = itk::AddImageFilter< TOutputImage >
 
using BackProjectionFilterPointer = typename BackProjectionFilterType::Pointer
 
using BackProjectionFilterType = rtk::BackProjectionImageFilter< TOutputImage, TOutputImage >
 
using DisplacedDetectorFilterType = rtk::DisplacedDetectorImageFilter< TOutputImage >
 
using ForwardProjectionFilterPointer = typename ForwardProjectionFilterType::Pointer
 
using ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< TOutputImage, TOutputImage >
 
using MultiplyFilterType = itk::MultiplyImageFilter< TOutputImage >
 
using Pointer = itk::SmartPointer< Self >
 
using Self = ADMMWaveletsConjugateGradientOperator
 
using Superclass = ConjugateGradientOperator< TOutputImage >
 
- Public Types inherited from rtk::ConjugateGradientOperator< TOutputImage >
using Pointer = itk::SmartPointer< Self >
 
using Self = ConjugateGradientOperator
 
using Superclass = itk::ImageToImageFilter< TOutputImage, TOutputImage >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
void SetBackProjectionFilter (const BackProjectionFilterPointer _arg)
 
virtual void SetBeta (float _arg)
 
void SetForwardProjectionFilter (const ForwardProjectionFilterPointer _arg)
 
void SetGeometry (const ThreeDCircularProjectionGeometry::Pointer _arg)
 
virtual const char * GetNameOfClass () const
 
virtual void SetDisableDisplacedDetectorFilter (bool _arg)
 
virtual bool GetDisableDisplacedDetectorFilter ()
 
- Public Member Functions inherited from rtk::ConjugateGradientOperator< TOutputImage >
virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual void SetX (const TOutputImage *OutputImage)
 

Static Public Member Functions

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

Protected Member Functions

 ADMMWaveletsConjugateGradientOperator ()
 
void GenerateData () override
 
void VerifyInputInformation () const override
 
 ~ADMMWaveletsConjugateGradientOperator () override=default
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
- Protected Member Functions inherited from rtk::ConjugateGradientOperator< TOutputImage >
 ConjugateGradientOperator ()
 
 ~ConjugateGradientOperator () override=default
 

Protected Attributes

AddFilterType::Pointer m_AddFilter
 
BackProjectionFilterPointer m_BackProjectionFilter
 
float m_Beta
 
bool m_DisableDisplacedDetectorFilter
 
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
 
ForwardProjectionFilterPointer m_ForwardProjectionFilter
 
MultiplyFilterType::Pointer m_MultiplyFilter
 
MultiplyFilterType::Pointer m_ZeroMultiplyProjectionFilter
 
MultiplyFilterType::Pointer m_ZeroMultiplyVolumeFilter
 

Detailed Description

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

Implements the operator A used in the conjugate gradient step of 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. Details on the method and the calculations can be found in

Mory, C., B. Zhang, V. Auvray, M. Grass, D. Schafer, F. Peyrin, S. Rit, P. Douek, and L. Boussel. "ECG-Gated C-Arm Computed Tomography Using L1 Regularization." In Proceedings of the 20th European Signal Processing Conference (EUSIPCO), 2728-32, 2012.

This filter takes in input f and outputs R_t R f + beta * W_t W f. The Daubechies wavelets being orthogonal, W_t happens to be the inverse of W, and therefore the filter outputs R_t R f + beta * f

Test:
rtkadmmWaveletstest.cxx
Author
Cyril Mory

Definition at line 98 of file rtkADMMWaveletsConjugateGradientOperator.h.

Member Typedef Documentation

◆ AddFilterType

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::AddFilterType = itk::AddImageFilter<TOutputImage>

Definition at line 126 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ BackProjectionFilterPointer

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::BackProjectionFilterPointer = typename BackProjectionFilterType::Pointer

Definition at line 120 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ BackProjectionFilterType

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::BackProjectionFilterType = rtk::BackProjectionImageFilter<TOutputImage, TOutputImage>

Definition at line 119 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ DisplacedDetectorFilterType

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::DisplacedDetectorFilterType = rtk::DisplacedDetectorImageFilter<TOutputImage>

Definition at line 128 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ ForwardProjectionFilterPointer

Definition at line 123 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ ForwardProjectionFilterType

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter<TOutputImage, TOutputImage>

Definition at line 122 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ MultiplyFilterType

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::MultiplyFilterType = itk::MultiplyImageFilter<TOutputImage>

Definition at line 125 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ Pointer

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::Pointer = itk::SmartPointer<Self>

Definition at line 106 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ Self

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::Self = ADMMWaveletsConjugateGradientOperator

Standard class type alias.

Definition at line 104 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ Superclass

template<typename TOutputImage >
using rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::Superclass = ConjugateGradientOperator<TOutputImage>

Definition at line 105 of file rtkADMMWaveletsConjugateGradientOperator.h.

Constructor & Destructor Documentation

◆ ADMMWaveletsConjugateGradientOperator()

template<typename TOutputImage >
rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::ADMMWaveletsConjugateGradientOperator ( )
protected

◆ ~ADMMWaveletsConjugateGradientOperator()

template<typename TOutputImage >
rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::~ADMMWaveletsConjugateGradientOperator ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<typename TOutputImage >
virtual::itk::LightObject::Pointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ GenerateData()

template<typename TOutputImage >
void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::GenerateData ( )
overrideprotectedvirtual

Does the real work.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GenerateInputRequestedRegion()

template<typename TOutputImage >
void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GenerateOutputInformation()

template<typename TOutputImage >
void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::GenerateOutputInformation ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GetDisableDisplacedDetectorFilter()

template<typename TOutputImage >
virtual bool rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::GetDisableDisplacedDetectorFilter ( )
virtual

Set / Get whether the displaced detector filter should be disabled

◆ GetNameOfClass()

template<typename TOutputImage >
virtual const char* rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from rtk::ConjugateGradientOperator< TOutputImage >.

◆ New()

template<typename TOutputImage >
static Pointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::New ( )
static

Method for creation through the object factory.

◆ SetBackProjectionFilter()

template<typename TOutputImage >
void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::SetBackProjectionFilter ( const BackProjectionFilterPointer  _arg)

Set the backprojection filter

◆ SetBeta()

template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::SetBeta ( float  _arg)
virtual

Set the regularization parameter

◆ SetDisableDisplacedDetectorFilter()

template<typename TOutputImage >
virtual void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::SetDisableDisplacedDetectorFilter ( bool  _arg)
virtual

Set / Get whether the displaced detector filter should be disabled

◆ SetForwardProjectionFilter()

template<typename TOutputImage >
void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::SetForwardProjectionFilter ( const ForwardProjectionFilterPointer  _arg)

Set the forward projection filter

◆ SetGeometry()

template<typename TOutputImage >
void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::SetGeometry ( const ThreeDCircularProjectionGeometry::Pointer  _arg)

Set the geometry of both m_BackProjectionFilter and m_ForwardProjectionFilter

◆ VerifyInputInformation()

template<typename TOutputImage >
void rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::VerifyInputInformation ( ) const
inlineoverrideprotectedvirtual

When the inputs have the same type, ITK checks whether they occupy the same physical space or not. Obviously they dont, so we have to remove this check

Reimplemented from itk::ProcessObject.

Definition at line 175 of file rtkADMMWaveletsConjugateGradientOperator.h.

Member Data Documentation

◆ m_AddFilter

template<typename TOutputImage >
AddFilterType::Pointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_AddFilter
protected

Definition at line 162 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ m_BackProjectionFilter

template<typename TOutputImage >
BackProjectionFilterPointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_BackProjectionFilter
protected

Member pointers to the filters used internally (for convenience)

Definition at line 159 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ m_Beta

template<typename TOutputImage >
float rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_Beta
protected

Definition at line 168 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ m_DisableDisplacedDetectorFilter

template<typename TOutputImage >
bool rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_DisableDisplacedDetectorFilter
protected

Definition at line 169 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ m_DisplacedDetectorFilter

template<typename TOutputImage >
DisplacedDetectorFilterType::Pointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_DisplacedDetectorFilter
protected

Definition at line 166 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ m_ForwardProjectionFilter

template<typename TOutputImage >
ForwardProjectionFilterPointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_ForwardProjectionFilter
protected

Definition at line 160 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ m_MultiplyFilter

template<typename TOutputImage >
MultiplyFilterType::Pointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_MultiplyFilter
protected

Definition at line 163 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ m_ZeroMultiplyProjectionFilter

template<typename TOutputImage >
MultiplyFilterType::Pointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_ZeroMultiplyProjectionFilter
protected

Definition at line 164 of file rtkADMMWaveletsConjugateGradientOperator.h.

◆ m_ZeroMultiplyVolumeFilter

template<typename TOutputImage >
MultiplyFilterType::Pointer rtk::ADMMWaveletsConjugateGradientOperator< TOutputImage >::m_ZeroMultiplyVolumeFilter
protected

Definition at line 165 of file rtkADMMWaveletsConjugateGradientOperator.h.


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