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

#include <rtkConjugateGradientConeBeamReconstructionFilter.h>

+ Inheritance diagram for rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >:
+ Collaboration diagram for rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >:

Public Types

using BackProjectionFilterType = BackProjectionImageFilter< TOutputImage, TOutputImage >
 
using BackProjectionType = typename Superclass::BackProjectionType
 
using CGOperatorFilterType = ReconstructionConjugateGradientOperator< TOutputImage, TSingleComponentImage, TWeightsImage >
 
using ConjugateGradientFilterPointer = typename ConjugateGradientFilterType::Pointer
 
using ConjugateGradientFilterType = ConjugateGradientImageFilter< TOutputImage >
 
using ConstantImageSourceType = ConstantImageSource< TOutputImage >
 
using ConstantWeightSourceType = ConstantImageSource< TWeightsImage >
 
using CPUOutputImageType = typename itk::Image< typename TOutputImage::PixelType, TOutputImage::ImageDimension >
 
using DisplacedDetectorFilterType = DisplacedDetectorImageFilter< TWeightsImage >
 
using DivideFilterType = itk::DivideOrZeroOutImageFilter< TOutputImage >
 
using ForwardProjectionFilterPointer = typename ForwardProjectionFilterType::Pointer
 
using ForwardProjectionFilterType = ForwardProjectionImageFilter< TOutputImage, TOutputImage >
 
using ForwardProjectionType = typename Superclass::ForwardProjectionType
 
using MatrixVectorMultiplyFilterType = BlockDiagonalMatrixVectorMultiplyImageFilter< TOutputImage, TWeightsImage >
 
using MultiplyFilterType = itk::MultiplyImageFilter< TOutputImage, TSingleComponentImage, TOutputImage >
 
typedef std::conditional< std::is_same< TSingleComponentImage, TOutputImage >::value, PlainMultiplyFilterType, MatrixVectorMultiplyFilterType >::type MultiplyWithWeightsFilterType
 
using OutputImagePointer = typename TOutputImage::Pointer
 
using PlainMultiplyFilterType = itk::MultiplyImageFilter< TOutputImage, TOutputImage, TOutputImage >
 
using Pointer = itk::SmartPointer< Self >
 
using Self = ConjugateGradientConeBeamReconstructionFilter
 
using StatisticsFilterType = itk::StatisticsImageFilter< TSingleComponentImage >
 
using StatisticsImageFilterType = itk::StatisticsImageFilter< TOutputImage >
 
using Superclass = IterativeConeBeamReconstructionFilter< TOutputImage >
 
- Public Types inherited from rtk::IterativeConeBeamReconstructionFilter< 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 int GetNumberOfIterations ()
 
virtual void SetGeometry (const ThreeDCircularProjectionGeometry *_arg)
 
virtual void SetNumberOfIterations (int _arg)
 
virtual const char * GetNameOfClass () const
 
void SetInputVolume (const TOutputImage *vol)
 
void SetInputProjectionStack (const TOutputImage *projs)
 
void SetInputWeights (const TWeightsImage *weights)
 
void SetLocalRegularizationWeights (const TSingleComponentImage *weights)
 
void SetSupportMask (const TSingleComponentImage *SupportMask)
 
TSingleComponentImage::ConstPointer GetSupportMask ()
 
virtual void SetDisableDisplacedDetectorFilter (bool _arg)
 
virtual bool GetDisableDisplacedDetectorFilter ()
 
virtual void SetTikhonov (float _arg)
 
virtual float GetTikhonov ()
 
virtual void SetGamma (float _arg)
 
virtual float GetGamma ()
 
virtual bool GetCudaConjugateGradient ()
 
virtual void SetCudaConjugateGradient (bool _arg)
 
- Public Member Functions inherited from rtk::IterativeConeBeamReconstructionFilter< 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 >
static Pointer New ()
 

Protected Member Functions

 ConjugateGradientConeBeamReconstructionFilter ()
 
void GenerateData () override
 
template<typename ImageType , typename IterativeConeBeamReconstructionFilter< TOutputImage >::template EnableCudaScalarAndVectorType< ImageType > * = nullptr>
ConjugateGradientFilterPointer InstantiateCudaConjugateGradientImageFilter ()
 
template<typename ImageType , typename IterativeConeBeamReconstructionFilter< TOutputImage >::template DisableCudaScalarAndVectorType< ImageType > * = nullptr>
ConjugateGradientFilterPointer InstantiateCudaConjugateGradientImageFilter ()
 
void ReportProgress (itk::Object *, const itk::EventObject &)
 
void VerifyInputInformation () const override
 
void VerifyPreconditions () const override
 
 ~ConjugateGradientConeBeamReconstructionFilter () override=default
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
TOutputImage::ConstPointer GetInputVolume ()
 
TOutputImage::ConstPointer GetInputProjectionStack ()
 
TWeightsImage::ConstPointer GetInputWeights ()
 
TSingleComponentImage::ConstPointer GetLocalRegularizationWeights ()
 
- Protected Member Functions inherited from rtk::IterativeConeBeamReconstructionFilter< 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

BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilter
 
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilterForB
 
CGOperatorFilterType::Pointer m_CGOperator
 
ConjugateGradientFilterPointer m_ConjugateGradientFilter
 
ConstantImageSourceType::Pointer m_ConstantVolumeSource
 
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
 
ForwardProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_ForwardProjectionFilter
 
MultiplyFilterType::Pointer m_MultiplyOutputFilter
 
MultiplyFilterType::Pointer m_MultiplyProjectionsFilter
 
MultiplyFilterType::Pointer m_MultiplyVolumeFilter
 
MultiplyWithWeightsFilterType::Pointer m_MultiplyWithWeightsFilter
 
- Protected Attributes inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage >
double m_AlphaPSF
 
BackProjectionType m_CurrentBackProjectionConfiguration
 
ForwardProjectionType m_CurrentForwardProjectionConfiguration
 
std::default_random_engine m_DefaultRandomEngine
 
double m_SigmaZero
 
double m_StepSize
 

Private Attributes

bool m_CudaConjugateGradient
 
bool m_DisableDisplacedDetectorFilter
 
float m_Gamma
 
ThreeDCircularProjectionGeometry::ConstPointer m_Geometry
 
itk::IterationReporter m_IterationReporter
 
int m_NumberOfIterations
 
float m_Tikhonov
 

Additional Inherited Members

- Protected Types inherited from rtk::IterativeConeBeamReconstructionFilter< 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 TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
class rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >

Implements ConjugateGradient.

This filter implements the ConjugateGradient method. ConjugateGradient attempts to find the f that minimizes (1/2).|| sqrt(D) (Rf -p) ||_2^2 + (1/2).gamma.|| grad f ||_2^2 with R the forward projection operator, p the measured projections, and D the displaced detector weighting operator.

With gamma=0, this it is similar to the ART and SART methods. The difference lies in the algorithm employed to minimize this cost function. ART uses the Kaczmarz method (projects and back projects one ray at a time), SART the block-Kaczmarz method (projects and back projects one projection at a time), and ConjugateGradient a conjugate gradient method (projects and back projects all projections together).

With gamma > 0, a regularization is applied.

Test:
rtkconjugategradientreconstructiontest.cxx
Author
Cyril Mory

Definition at line 110 of file rtkConjugateGradientConeBeamReconstructionFilter.h.

Member Typedef Documentation

◆ BackProjectionFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::BackProjectionFilterType = BackProjectionImageFilter<TOutputImage, TOutputImage>

◆ BackProjectionType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::BackProjectionType = typename Superclass::BackProjectionType

◆ CGOperatorFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::CGOperatorFilterType = ReconstructionConjugateGradientOperator<TOutputImage, TSingleComponentImage, TWeightsImage>

◆ ConjugateGradientFilterPointer

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ConjugateGradientFilterPointer = typename ConjugateGradientFilterType::Pointer

◆ ConjugateGradientFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ConjugateGradientFilterType = ConjugateGradientImageFilter<TOutputImage>

◆ ConstantImageSourceType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ConstantImageSourceType = ConstantImageSource<TOutputImage>

◆ ConstantWeightSourceType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ConstantWeightSourceType = ConstantImageSource<TWeightsImage>

◆ CPUOutputImageType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::CPUOutputImageType = typename itk::Image<typename TOutputImage::PixelType, TOutputImage::ImageDimension>

◆ DisplacedDetectorFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::DisplacedDetectorFilterType = DisplacedDetectorImageFilter<TWeightsImage>

◆ DivideFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::DivideFilterType = itk::DivideOrZeroOutImageFilter<TOutputImage>

◆ ForwardProjectionFilterPointer

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ForwardProjectionFilterPointer = typename ForwardProjectionFilterType::Pointer

◆ ForwardProjectionFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ForwardProjectionFilterType = ForwardProjectionImageFilter<TOutputImage, TOutputImage>

◆ ForwardProjectionType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ForwardProjectionType = typename Superclass::ForwardProjectionType

◆ MatrixVectorMultiplyFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::MatrixVectorMultiplyFilterType = BlockDiagonalMatrixVectorMultiplyImageFilter<TOutputImage, TWeightsImage>

◆ MultiplyFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::MultiplyFilterType = itk::MultiplyImageFilter<TOutputImage, TSingleComponentImage, TOutputImage>

◆ MultiplyWithWeightsFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
typedef std::conditional<std::is_same<TSingleComponentImage, TOutputImage>::value, PlainMultiplyFilterType, MatrixVectorMultiplyFilterType>::type rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::MultiplyWithWeightsFilterType

◆ OutputImagePointer

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::OutputImagePointer = typename TOutputImage::Pointer

◆ PlainMultiplyFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::PlainMultiplyFilterType = itk::MultiplyImageFilter<TOutputImage, TOutputImage, TOutputImage>

◆ Pointer

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::Pointer = itk::SmartPointer<Self>

◆ Self

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::Self = ConjugateGradientConeBeamReconstructionFilter

Standard class type alias.

Definition at line 117 of file rtkConjugateGradientConeBeamReconstructionFilter.h.

◆ StatisticsFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::StatisticsFilterType = itk::StatisticsImageFilter<TSingleComponentImage>

◆ StatisticsImageFilterType

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::StatisticsImageFilterType = itk::StatisticsImageFilter<TOutputImage>

◆ Superclass

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
using rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::Superclass = IterativeConeBeamReconstructionFilter<TOutputImage>

Constructor & Destructor Documentation

◆ ConjugateGradientConeBeamReconstructionFilter()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ConjugateGradientConeBeamReconstructionFilter ( )
protected

◆ ~ConjugateGradientConeBeamReconstructionFilter()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::~ConjugateGradientConeBeamReconstructionFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual::itk::LightObject::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ GenerateData()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GenerateData ( )
overrideprotectedvirtual

Does the real work.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GenerateInputRequestedRegion()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GenerateOutputInformation()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GenerateOutputInformation ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GetCudaConjugateGradient()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual bool rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetCudaConjugateGradient ( )
virtual

Get / Set whether conjugate gradient should be performed on GPU

◆ GetDisableDisplacedDetectorFilter()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual bool rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetDisableDisplacedDetectorFilter ( )
virtual

Set / Get whether the displaced detector filter should be disabled

◆ GetGamma()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual float rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetGamma ( )
virtual

If Regularized, perform laplacian-based regularization during reconstruction (gamma is the strength of the regularization)

◆ GetInputProjectionStack()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
TOutputImage::ConstPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetInputProjectionStack ( )
protected

Getters for the inputs

◆ GetInputVolume()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
TOutputImage::ConstPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetInputVolume ( )
protected

Getters for the inputs

◆ GetInputWeights()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
TWeightsImage::ConstPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetInputWeights ( )
protected

Getters for the inputs

◆ GetLocalRegularizationWeights()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
TSingleComponentImage::ConstPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetLocalRegularizationWeights ( )
protected

Getters for the inputs

◆ GetNameOfClass()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual const char* rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from rtk::IterativeConeBeamReconstructionFilter< TOutputImage >.

◆ GetNumberOfIterations()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual int rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetNumberOfIterations ( )
virtual

◆ GetSupportMask()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
TSingleComponentImage::ConstPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetSupportMask ( )

Set the support mask, if any, for support constraint in reconstruction

◆ GetTikhonov()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual float rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::GetTikhonov ( )
virtual

If Regularized, perform laplacian-based regularization during reconstruction (gamma is the strength of the regularization)

◆ InstantiateCudaConjugateGradientImageFilter() [1/2]

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
template<typename ImageType , typename IterativeConeBeamReconstructionFilter< TOutputImage >::template EnableCudaScalarAndVectorType< ImageType > * = nullptr>
ConjugateGradientFilterPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::InstantiateCudaConjugateGradientImageFilter ( )
protected

◆ InstantiateCudaConjugateGradientImageFilter() [2/2]

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
template<typename ImageType , typename IterativeConeBeamReconstructionFilter< TOutputImage >::template DisableCudaScalarAndVectorType< ImageType > * = nullptr>
ConjugateGradientFilterPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::InstantiateCudaConjugateGradientImageFilter ( )
protected

◆ New()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
static Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::New ( )
static

Method for creation through the object factory.

◆ ReportProgress()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::ReportProgress ( itk::Object ,
const itk::EventObject  
)
protected

Iteration reporter

◆ SetCudaConjugateGradient()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetCudaConjugateGradient ( bool  _arg)
virtual

Get / Set whether conjugate gradient should be performed on GPU

◆ SetDisableDisplacedDetectorFilter()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetDisableDisplacedDetectorFilter ( bool  _arg)
virtual

Set / Get whether the displaced detector filter should be disabled

◆ SetGamma()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetGamma ( float  _arg)
virtual

If Regularized, perform laplacian-based regularization during reconstruction (gamma is the strength of the regularization)

◆ SetGeometry()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetGeometry ( const ThreeDCircularProjectionGeometry _arg)
virtual

Pass the geometry to all filters needing it

◆ SetInputProjectionStack()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetInputProjectionStack ( const TOutputImage *  projs)

Setters for the inputs

◆ SetInputVolume()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetInputVolume ( const TOutputImage *  vol)

Setters for the inputs

◆ SetInputWeights()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetInputWeights ( const TWeightsImage *  weights)

Setters for the inputs

◆ SetLocalRegularizationWeights()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetLocalRegularizationWeights ( const TSingleComponentImage *  weights)

Setters for the inputs

◆ SetNumberOfIterations()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetNumberOfIterations ( int  _arg)
virtual

◆ SetSupportMask()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetSupportMask ( const TSingleComponentImage *  SupportMask)

Set the support mask, if any, for support constraint in reconstruction

◆ SetTikhonov()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
virtual void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::SetTikhonov ( float  _arg)
virtual

If Regularized, perform laplacian-based regularization during reconstruction (gamma is the strength of the regularization)

◆ VerifyInputInformation()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::VerifyInputInformation ( ) const
inlineoverrideprotectedvirtual

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

Reimplemented from itk::ProcessObject.

Definition at line 247 of file rtkConjugateGradientConeBeamReconstructionFilter.h.

◆ VerifyPreconditions()

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
void rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::VerifyPreconditions ( ) const
overrideprotectedvirtual

Checks that inputs are correctly set.

Reimplemented from itk::ProcessObject.

Member Data Documentation

◆ m_BackProjectionFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
BackProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_BackProjectionFilter
protected

◆ m_BackProjectionFilterForB

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
BackProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_BackProjectionFilterForB
protected

◆ m_CGOperator

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
CGOperatorFilterType::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_CGOperator
protected

◆ m_ConjugateGradientFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
ConjugateGradientFilterPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_ConjugateGradientFilter
protected

◆ m_ConstantVolumeSource

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
ConstantImageSourceType::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_ConstantVolumeSource
protected

◆ m_CudaConjugateGradient

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
bool rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_CudaConjugateGradient
private

◆ m_DisableDisplacedDetectorFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
bool rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_DisableDisplacedDetectorFilter
private

◆ m_DisplacedDetectorFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
DisplacedDetectorFilterType::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_DisplacedDetectorFilter
protected

◆ m_ForwardProjectionFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
ForwardProjectionImageFilter<TOutputImage, TOutputImage>::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_ForwardProjectionFilter
protected

◆ m_Gamma

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
float rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_Gamma
private

◆ m_Geometry

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
ThreeDCircularProjectionGeometry::ConstPointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_Geometry
private

◆ m_IterationReporter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
itk::IterationReporter rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_IterationReporter
private

◆ m_MultiplyOutputFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
MultiplyFilterType::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_MultiplyOutputFilter
protected

◆ m_MultiplyProjectionsFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
MultiplyFilterType::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_MultiplyProjectionsFilter
protected

Member pointers to the filters used internally (for convenience)

Definition at line 231 of file rtkConjugateGradientConeBeamReconstructionFilter.h.

◆ m_MultiplyVolumeFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
MultiplyFilterType::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_MultiplyVolumeFilter
protected

◆ m_MultiplyWithWeightsFilter

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
MultiplyWithWeightsFilterType::Pointer rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_MultiplyWithWeightsFilter
protected

◆ m_NumberOfIterations

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
int rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_NumberOfIterations
private

◆ m_Tikhonov

template<typename TOutputImage , typename TSingleComponentImage = TOutputImage, typename TWeightsImage = TOutputImage>
float rtk::ConjugateGradientConeBeamReconstructionFilter< TOutputImage, TSingleComponentImage, TWeightsImage >::m_Tikhonov
private

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