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

#include <rtkADMMTotalVariationConeBeamReconstructionFilter.h>

+ Inheritance diagram for rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >:
+ Collaboration diagram for rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >:

Public Types

using AddGradientsFilterType = itk::AddImageFilter< TGradientOutputImage >
 
using BackProjectionFilterPointer = typename BackProjectionFilterType::Pointer
 
using BackProjectionFilterType = rtk::BackProjectionImageFilter< TOutputImage, TOutputImage >
 
using BackProjectionType = typename Superclass::BackProjectionType
 
using CGOperatorFilterType = rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >
 
using ConjugateGradientFilterType = rtk::ConjugateGradientImageFilter< TOutputImage >
 
using DisplacedDetectorFilterType = rtk::DisplacedDetectorImageFilter< TOutputImage >
 
using ForwardProjectionFilterPointer = typename ForwardProjectionFilterType::Pointer
 
using ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< TOutputImage, TOutputImage >
 
using ForwardProjectionType = typename Superclass::ForwardProjectionType
 
using GatingWeightsFilterType = rtk::MultiplyByVectorImageFilter< TOutputImage >
 
using ImageDivergenceFilterType = rtk::BackwardDifferenceDivergenceImageFilter< TGradientOutputImage, TOutputImage >
 
using ImageGradientFilterType = ForwardDifferenceGradientImageFilter< TOutputImage, typename TOutputImage::ValueType, typename TOutputImage::ValueType, TGradientOutputImage >
 
using MultiplyGradientFilterType = itk::MultiplyImageFilter< TGradientOutputImage >
 
using MultiplyVolumeFilterType = itk::MultiplyImageFilter< TOutputImage >
 
using Pointer = itk::SmartPointer< Self >
 
using Self = ADMMTotalVariationConeBeamReconstructionFilter
 
typedef rtk::SoftThresholdTVImageFilter< TGradientOutputImage > SoftThresholdTVFilterType
 
using SubtractGradientsFilterType = itk::SubtractImageFilter< TGradientOutputImage >
 
using SubtractVolumeFilterType = itk::SubtractImageFilter< TOutputImage >
 
using Superclass = IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
 
- Public Types inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
using BackProjectionFilterType = rtk::BackProjectionImageFilter< TOutputImage, VolumeType >
 
using BackProjectionPointerType = typename BackProjectionFilterType::Pointer
 
enum  BackProjectionType
 
using ConstPointer = itk::SmartPointer< const Self >
 
using ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< VolumeType, TOutputImage >
 
using ForwardProjectionPointerType = typename ForwardProjectionFilterType::Pointer
 
enum  ForwardProjectionType
 
using Pointer = itk::SmartPointer< Self >
 
using Self = IterativeConeBeamReconstructionFilter
 
using Superclass = itk::ImageToImageFilter< TOutputImage, TOutputImage >
 
using TClipImageType = itk::Image< double, VolumeType::ImageDimension >
 
using VolumeType = TOutputImage
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual float GetAL_iterations ()
 
virtual float GetAlpha ()
 
virtual float GetBeta ()
 
virtual float GetCG_iterations ()
 
virtual void SetAL_iterations (float _arg)
 
virtual void SetAlpha (float _arg)
 
virtual void SetBeta (float _arg)
 
void SetBetaForCurrentIteration (int iter)
 
virtual void SetCG_iterations (float _arg)
 
void SetGatingWeights (std::vector< float > weights)
 
virtual void SetGeometry (ThreeDCircularProjectionGeometry *_arg)
 
virtual const char * GetNameOfClass () const
 
virtual void SetDisableDisplacedDetectorFilter (bool _arg)
 
virtual bool GetDisableDisplacedDetectorFilter ()
 
- Public Member Functions inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual void SetForwardProjectionFilter (ForwardProjectionType fwtype)
 
ForwardProjectionType GetForwardProjectionFilter ()
 
virtual void SetBackProjectionFilter (BackProjectionType bptype)
 
BackProjectionType GetBackProjectionFilter ()
 
void SetAttenuationMap (const VolumeType *attenuationMap)
 
VolumeType::ConstPointer GetAttenuationMap ()
 
void SetInferiorClipImage (const TClipImageType *inferiorClipImage)
 
TClipImageType::ConstPointer GetInferiorClipImage ()
 
void SetSuperiorClipImage (const TClipImageType *superiorClipImage)
 
TClipImageType::ConstPointer GetSuperiorClipImage ()
 
virtual double GetSigmaZero ()
 
virtual void SetSigmaZero (double _arg)
 
virtual double GetAlphaPSF ()
 
virtual void SetAlphaPSF (double _arg)
 
virtual double GetStepSize () const
 
virtual void SetStepSize (double _arg)
 

Static Public Member Functions

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

Protected Member Functions

 ADMMTotalVariationConeBeamReconstructionFilter ()
 
void GenerateData () override
 
void VerifyInputInformation () const override
 
void VerifyPreconditions () ITKv5_CONST override
 
 ~ADMMTotalVariationConeBeamReconstructionFilter () override=default
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
- Protected Member Functions inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
virtual BackProjectionPointerType InstantiateBackProjectionFilter (int bptype)
 
BackProjectionPointerType InstantiateCudaBackProjection ()
 
BackProjectionPointerType InstantiateCudaBackProjection ()
 
ForwardProjectionPointerType InstantiateCudaForwardProjection ()
 
ForwardProjectionPointerType InstantiateCudaForwardProjection ()
 
BackProjectionPointerType InstantiateCudaRayCastBackProjection ()
 
BackProjectionPointerType InstantiateCudaRayCastBackProjection ()
 
virtual ForwardProjectionPointerType InstantiateForwardProjectionFilter (int fwtype)
 
BackProjectionPointerType InstantiateJosephBackAttenuatedProjection ()
 
BackProjectionPointerType InstantiateJosephBackAttenuatedProjection ()
 
ForwardProjectionPointerType InstantiateJosephForwardAttenuatedProjection ()
 
ForwardProjectionPointerType InstantiateJosephForwardAttenuatedProjection ()
 
BackProjectionPointerType InstantiateZengBackProjection ()
 
BackProjectionPointerType InstantiateZengBackProjection ()
 
ForwardProjectionPointerType InstantiateZengForwardProjection ()
 
ForwardProjectionPointerType InstantiateZengForwardProjection ()
 
 IterativeConeBeamReconstructionFilter ()
 
 ~IterativeConeBeamReconstructionFilter () override=default
 

Protected Attributes

AddGradientsFilterType::Pointer m_AddGradientsFilter
 
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilter
 
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilterForConjugateGradient
 
CGOperatorFilterType::Pointer m_CGOperator
 
ConjugateGradientFilterType::Pointer m_ConjugateGradientFilter
 
bool m_DisableDisplacedDetectorFilter
 
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
 
ImageDivergenceFilterType::Pointer m_DivergenceFilter
 
ForwardProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_ForwardProjectionFilter
 
std::vector< float > m_GatingWeights
 
GatingWeightsFilterType::Pointer m_GatingWeightsFilter
 
ImageGradientFilterType::Pointer m_GradientFilter1
 
ImageGradientFilterType::Pointer m_GradientFilter2
 
bool m_IsGated
 
MultiplyVolumeFilterType::Pointer m_MultiplyFilter
 
SoftThresholdTVFilterType::Pointer m_SoftThresholdFilter
 
SubtractGradientsFilterType::Pointer m_SubtractFilter1
 
SubtractGradientsFilterType::Pointer m_SubtractFilter2
 
SubtractVolumeFilterType::Pointer m_SubtractVolumeFilter
 
MultiplyGradientFilterType::Pointer m_ZeroMultiplyGradientFilter
 
MultiplyVolumeFilterType::Pointer m_ZeroMultiplyVolumeFilter
 
- Protected Attributes inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
double m_AlphaPSF
 
BackProjectionType m_CurrentBackProjectionConfiguration
 
ForwardProjectionType m_CurrentForwardProjectionConfiguration
 
std::default_random_engine m_DefaultRandomEngine
 
double m_SigmaZero
 
double m_StepSize
 

Private Attributes

unsigned int m_AL_iterations
 
float m_Alpha
 
float m_Beta
 
unsigned int m_CG_iterations
 
ThreeDCircularProjectionGeometry::Pointer m_Geometry
 

Additional Inherited Members

- Protected Types inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
using CPUImageType = typename itk::Image< typename TOutputImage ::PixelType, TOutputImage ::ImageDimension >
 
using EnableCudaScalarAndVectorType = typename std::enable_if< !std::is_same< CPUImageType, ImageType >::value &&std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value &&(itk::PixelTraits< typename ImageType::PixelType >::Dimension==1||itk::PixelTraits< typename ImageType::PixelType >::Dimension==2||itk::PixelTraits< typename ImageType::PixelType >::Dimension==3)>::type
 
using DisableCudaScalarAndVectorType = typename std::enable_if< std::is_same< CPUImageType, ImageType >::value||!std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value||(itk::PixelTraits< typename ImageType::PixelType >::Dimension !=1 &&itk::PixelTraits< typename ImageType::PixelType >::Dimension !=2 &&itk::PixelTraits< typename ImageType::PixelType >::Dimension !=3)>::type
 
using EnableCudaScalarType = typename std::enable_if< !std::is_same< CPUImageType, ImageType >::value &&std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value &&itk::PixelTraits< typename ImageType::PixelType >::Dimension==1 >::type
 
using DisableCudaScalarType = typename std::enable_if< std::is_same< CPUImageType, ImageType >::value||!std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value||itk::PixelTraits< typename ImageType::PixelType >::Dimension !=1 >::type
 
using EnableVectorType = typename std::enable_if< itk::PixelTraits< typename ImageType::PixelType >::Dimension !=1 >::type
 
using DisableVectorType = typename std::enable_if< itk::PixelTraits< typename ImageType::PixelType >::Dimension==1 >::type
 

Detailed Description

template<typename TOutputImage, typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
class rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >

Implements the ADMM reconstruction with total variation regularization.

This filter implements a reconstruction method based on compressed sensing. The method attempts to find the f that minimizes || sqrt(D) (Rf -p) ||_2^2 + alpha * TV(f), with R the forward projection operator, p the measured projections, D the displaced detector weighting matrix, and TV the total variation. Details on the method and the calculations can be found on page 48 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 \nabla^T \nabla ) f = R^T p + \beta \nabla^T ( g_k + d_k ) \]

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

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

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

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

Test:
rtkadmmtotalvariationtest.cxx
Author
Cyril Mory

Definition at line 137 of file rtkADMMTotalVariationConeBeamReconstructionFilter.h.

Member Typedef Documentation

◆ AddGradientsFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::AddGradientsFilterType = itk::AddImageFilter<TGradientOutputImage>

◆ BackProjectionFilterPointer

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::BackProjectionFilterPointer = typename BackProjectionFilterType::Pointer

◆ BackProjectionFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::BackProjectionFilterType = rtk::BackProjectionImageFilter<TOutputImage, TOutputImage>

◆ BackProjectionType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::BackProjectionType = typename Superclass::BackProjectionType

◆ CGOperatorFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::CGOperatorFilterType = rtk::ADMMTotalVariationConjugateGradientOperator<TOutputImage>

◆ ConjugateGradientFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::ConjugateGradientFilterType = rtk::ConjugateGradientImageFilter<TOutputImage>

◆ DisplacedDetectorFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::DisplacedDetectorFilterType = rtk::DisplacedDetectorImageFilter<TOutputImage>

◆ ForwardProjectionFilterPointer

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::ForwardProjectionFilterPointer = typename ForwardProjectionFilterType::Pointer

◆ ForwardProjectionFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter<TOutputImage, TOutputImage>

◆ ForwardProjectionType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::ForwardProjectionType = typename Superclass::ForwardProjectionType

◆ GatingWeightsFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GatingWeightsFilterType = rtk::MultiplyByVectorImageFilter<TOutputImage>

◆ ImageDivergenceFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::ImageDivergenceFilterType = rtk::BackwardDifferenceDivergenceImageFilter<TGradientOutputImage, TOutputImage>

◆ ImageGradientFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::ImageGradientFilterType = ForwardDifferenceGradientImageFilter<TOutputImage, typename TOutputImage::ValueType, typename TOutputImage::ValueType, TGradientOutputImage>

◆ MultiplyGradientFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::MultiplyGradientFilterType = itk::MultiplyImageFilter<TGradientOutputImage>

◆ MultiplyVolumeFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::MultiplyVolumeFilterType = itk::MultiplyImageFilter<TOutputImage>

◆ Pointer

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::Pointer = itk::SmartPointer<Self>

◆ Self

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::Self = ADMMTotalVariationConeBeamReconstructionFilter

Standard class type alias.

Definition at line 144 of file rtkADMMTotalVariationConeBeamReconstructionFilter.h.

◆ SoftThresholdTVFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
typedef rtk::SoftThresholdTVImageFilter<TGradientOutputImage> rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SoftThresholdTVFilterType

◆ SubtractGradientsFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SubtractGradientsFilterType = itk::SubtractImageFilter<TGradientOutputImage>

◆ SubtractVolumeFilterType

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SubtractVolumeFilterType = itk::SubtractImageFilter<TOutputImage>

◆ Superclass

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
using rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::Superclass = IterativeConeBeamReconstructionFilter<TOutputImage, TOutputImage>

Constructor & Destructor Documentation

◆ ADMMTotalVariationConeBeamReconstructionFilter()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::ADMMTotalVariationConeBeamReconstructionFilter ( )
protected

◆ ~ADMMTotalVariationConeBeamReconstructionFilter()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::~ADMMTotalVariationConeBeamReconstructionFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual::itk::LightObject::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ GenerateData()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GenerateData ( )
overrideprotectedvirtual

Does the real work.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GenerateInputRequestedRegion()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GenerateOutputInformation()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GenerateOutputInformation ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GetAL_iterations()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual float rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GetAL_iterations ( )
virtual

◆ GetAlpha()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual float rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GetAlpha ( )
virtual

◆ GetBeta()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual float rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GetBeta ( )
virtual

◆ GetCG_iterations()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual float rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GetCG_iterations ( )
virtual

◆ GetDisableDisplacedDetectorFilter()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual bool rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GetDisableDisplacedDetectorFilter ( )
virtual

Set / Get whether the displaced detector filter should be disabled

◆ GetNameOfClass()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual const char* rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

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

◆ New()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
static Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::New ( )
static

Method for creation through the object factory.

◆ SetAL_iterations()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SetAL_iterations ( float  _arg)
virtual

◆ SetAlpha()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SetAlpha ( float  _arg)
virtual

◆ SetBeta()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SetBeta ( float  _arg)
virtual

◆ SetBetaForCurrentIteration()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SetBetaForCurrentIteration ( int  iter)

Increase the value of Beta at each iteration

◆ SetCG_iterations()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SetCG_iterations ( float  _arg)
virtual

◆ SetDisableDisplacedDetectorFilter()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SetDisableDisplacedDetectorFilter ( bool  _arg)
virtual

Set / Get whether the displaced detector filter should be disabled

◆ SetGatingWeights()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SetGatingWeights ( std::vector< float >  weights)

In the case of a gated reconstruction, set the gating weights

◆ SetGeometry()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
virtual void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::SetGeometry ( ThreeDCircularProjectionGeometry _arg)
virtual

Pass the geometry to all filters needing it

◆ VerifyInputInformation()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::VerifyInputInformation ( ) const
inlineoverrideprotected

The inputs of this filter have the same type (float, 3) but not the same meaning It is normal that they do not occupy the same physical space. Therefore this check must be removed

Definition at line 246 of file rtkADMMTotalVariationConeBeamReconstructionFilter.h.

◆ VerifyPreconditions()

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
void rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::VerifyPreconditions ( )
overrideprotectedvirtual

Checks that inputs are correctly set.

Reimplemented from itk::ProcessObject.

Member Data Documentation

◆ m_AddGradientsFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
AddGradientsFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_AddGradientsFilter
protected

◆ m_AL_iterations

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
unsigned int rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_AL_iterations
private

◆ m_Alpha

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
float rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_Alpha
private

◆ m_BackProjectionFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
BackProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_BackProjectionFilter
protected

◆ m_BackProjectionFilterForConjugateGradient

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
BackProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_BackProjectionFilterForConjugateGradient
protected

◆ m_Beta

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
float rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_Beta
private

◆ m_CG_iterations

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
unsigned int rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_CG_iterations
private

◆ m_CGOperator

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
CGOperatorFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_CGOperator
protected

◆ m_ConjugateGradientFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
ConjugateGradientFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_ConjugateGradientFilter
protected

◆ m_DisableDisplacedDetectorFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
bool rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_DisableDisplacedDetectorFilter
protected

◆ m_DisplacedDetectorFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
DisplacedDetectorFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_DisplacedDetectorFilter
protected

◆ m_DivergenceFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
ImageDivergenceFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_DivergenceFilter
protected

◆ m_ForwardProjectionFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
ForwardProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_ForwardProjectionFilter
protected

◆ m_GatingWeights

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
std::vector<float> rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_GatingWeights
protected

◆ m_GatingWeightsFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
GatingWeightsFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_GatingWeightsFilter
protected

◆ m_Geometry

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
ThreeDCircularProjectionGeometry::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_Geometry
private

◆ m_GradientFilter1

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
ImageGradientFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_GradientFilter1
protected

◆ m_GradientFilter2

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
ImageGradientFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_GradientFilter2
protected

◆ m_IsGated

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
bool rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_IsGated
protected

Have gating weights been set ? If so, apply them, otherwise ignore the gating weights filter

Definition at line 259 of file rtkADMMTotalVariationConeBeamReconstructionFilter.h.

◆ m_MultiplyFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
MultiplyVolumeFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_MultiplyFilter
protected

◆ m_SoftThresholdFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
SoftThresholdTVFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_SoftThresholdFilter
protected

◆ m_SubtractFilter1

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
SubtractGradientsFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_SubtractFilter1
protected

Member pointers to the filters used internally (for convenience)

Definition at line 223 of file rtkADMMTotalVariationConeBeamReconstructionFilter.h.

◆ m_SubtractFilter2

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
SubtractGradientsFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_SubtractFilter2
protected

◆ m_SubtractVolumeFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
SubtractVolumeFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_SubtractVolumeFilter
protected

◆ m_ZeroMultiplyGradientFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
MultiplyGradientFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_ZeroMultiplyGradientFilter
protected

◆ m_ZeroMultiplyVolumeFilter

template<typename TOutputImage , typename TGradientOutputImage = itk::Image<itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>, TOutputImage::ImageDimension>>
MultiplyVolumeFilterType::Pointer rtk::ADMMTotalVariationConeBeamReconstructionFilter< TOutputImage, TGradientOutputImage >::m_ZeroMultiplyVolumeFilter
protected

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