RTK  2.1.0
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum > Class Template Reference

#include <rtkMechlemOneStepSpectralReconstructionFilter.h>

+ Inheritance diagram for rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >:
+ Collaboration diagram for rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >:

Public Types

using AddFilterType = itk::AddImageFilter< TGradientsImage >
 
using AddMatrixAndDiagonalFilterType = rtk::AddMatrixAndDiagonalImageFilter< TGradientsImage, THessiansImage >
 
using BackProjectionType = typename Superclass::BackProjectionType
 
using CPUOutputImageType = typename itk::Image< typename TOutputImage::PixelType, TOutputImage::ImageDimension >
 
using CudaHessiansBackProjectionImageFilterType = BackProjectionImageFilter< THessiansImage, THessiansImage >
 
using CudaSingleComponentForwardProjectionImageFilterType = JosephForwardProjectionImageFilter< SingleComponentImageType, SingleComponentImageType >
 
using dataType = typename TOutputImage::PixelType::ValueType
 
using ExtractPhotonCountsFilterType = itk::ExtractImageFilter< TPhotonCounts, TPhotonCounts >
 
using ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< TOutputImage, TOutputImage >
 
using ForwardProjectionType = typename Superclass::ForwardProjectionType
 
using GradientsBackProjectionFilterType = rtk::BackProjectionImageFilter< TGradientsImage, TGradientsImage >
 
using GradientsSourceType = rtk::ConstantImageSource< TGradientsImage >
 
using HessiansBackProjectionFilterType = rtk::BackProjectionImageFilter< THessiansImage, THessiansImage >
 
using HessiansSourceType = rtk::ConstantImageSource< THessiansImage >
 
using MaterialProjectionsSourceType = rtk::ConstantImageSource< TOutputImage >
 
using MultiplyFilterType = itk::MultiplyImageFilter< TOutputImage, SingleComponentImageType >
 
using MultiplyGradientFilterType = itk::MultiplyImageFilter< TGradientsImage, SingleComponentImageType >
 
using NesterovFilterType = rtk::NesterovUpdateImageFilter< TOutputImage >
 
using NewtonFilterType = rtk::GetNewtonUpdateImageFilter< TGradientsImage, THessiansImage >
 
using Pointer = itk::SmartPointer< Self >
 
using Self = MechlemOneStepSpectralReconstructionFilter
 
using SingleComponentForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< SingleComponentImageType, SingleComponentImageType >
 
using SingleComponentImageSourceType = rtk::ConstantImageSource< SingleComponentImageType >
 
using SingleComponentImageType = typename itk::Image< dataType, TOutputImage::ImageDimension >
 
using SQSRegularizationType = rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TGradientsImage >
 
using Superclass = IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
 
using TGradientsImage = TOutputImage
 
using THessiansImage = typename itk::Image< itk::Vector< dataType, nMaterials *nMaterials >, TOutputImage::ImageDimension >
 
using WeidingerForwardModelType = WeidingerForwardModelImageFilter< TOutputImage, TPhotonCounts, TSpectrum >
 
- 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 VolumeType = TOutputImage
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
virtual int GetNumberOfIterations ()
 
virtual void SetGeometry (const ThreeDCircularProjectionGeometry *_arg)
 
virtual void SetNumberOfIterations (int _arg)
 
virtual void SetNumberOfSubsets (int _arg)
 
virtual int GetNumberOfSubsets ()
 
virtual void SetResetNesterovEvery (int _arg)
 
virtual int GetResetNesterovEvery ()
 
void SetInputMaterialVolumes (const TOutputImage *materialVolumes)
 
void SetInputPhotonCounts (const TPhotonCounts *photonCounts)
 
void SetInputSpectrum (const TSpectrum *spectrum)
 
void SetSupportMask (const SingleComponentImageType *support)
 
void SetSpatialRegularizationWeights (const SingleComponentImageType *regweights)
 
void SetProjectionWeights (const SingleComponentImageType *weiprojections)
 
virtual void SetRegularizationWeights (typename TOutputImage::PixelType _arg)
 
virtual TOutputImage::PixelType GetRegularizationWeights ()
 
virtual void SetRegularizationRadius (typename TOutputImage::RegionType::SizeType _arg)
 
virtual TOutputImage::RegionType::SizeType GetRegularizationRadius ()
 
- 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 ()
 

Static Public Member Functions

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

Static Public Attributes

static constexpr unsigned int nBins = TPhotonCounts::PixelType::Dimension
 
static constexpr unsigned int nMaterials = TOutputImage::PixelType::Dimension
 

Protected Member Functions

void GenerateData () override
 
 MechlemOneStepSpectralReconstructionFilter ()
 
void VerifyInputInformation () const override
 
void VerifyPreconditions () ITKv5_CONST override
 
 ~MechlemOneStepSpectralReconstructionFilter () override=default
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
TOutputImage::ConstPointer GetInputMaterialVolumes ()
 
TPhotonCounts::ConstPointer GetInputPhotonCounts ()
 
TSpectrum::ConstPointer GetInputSpectrum ()
 
SingleComponentImageType::ConstPointer GetSupportMask ()
 
SingleComponentImageType::ConstPointer GetSpatialRegularizationWeights ()
 
SingleComponentImageType::ConstPointer GetProjectionWeights ()
 
SingleComponentForwardProjectionFilterType::Pointer InstantiateSingleComponentForwardProjectionFilter (int fwtype)
 
HessiansBackProjectionFilterType::Pointer InstantiateHessiansBackProjectionFilter (int bptype)
 
- 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

AddFilterType::Pointer m_AddGradients
 
AddMatrixAndDiagonalFilterType::Pointer m_AddHessians
 
ExtractPhotonCountsFilterType::Pointer m_ExtractPhotonCountsFilter
 
ForwardProjectionFilterType::Pointer m_ForwardProjectionFilter
 
ThreeDCircularProjectionGeometry::ConstPointer m_Geometry
 
GradientsBackProjectionFilterType::Pointer m_GradientsBackProjectionFilter
 
GradientsSourceType::Pointer m_GradientsSource
 
HessiansBackProjectionFilterType::Pointer m_HessiansBackProjectionFilter
 
HessiansSourceType::Pointer m_HessiansSource
 
MultiplyGradientFilterType::Pointer m_MultiplyGradientToBeBackprojectedFilter
 
MultiplyGradientFilterType::Pointer m_MultiplyRegulGradientsFilter
 
MultiplyGradientFilterType::Pointer m_MultiplyRegulHessiansFilter
 
MultiplyFilterType::Pointer m_MultiplySupportFilter
 
NesterovFilterType::Pointer m_NesterovFilter
 
NewtonFilterType::Pointer m_NewtonFilter
 
int m_NumberOfIterations
 
int m_NumberOfProjections
 
std::vector< int > m_NumberOfProjectionsInSubset
 
int m_NumberOfProjectionsPerSubset
 
int m_NumberOfSubsets
 
MaterialProjectionsSourceType::Pointer m_ProjectionsSource
 
TOutputImage::RegionType::SizeType m_RegularizationRadius
 
TOutputImage::PixelType m_RegularizationWeights
 
int m_ResetNesterovEvery
 
SingleComponentForwardProjectionFilterType::Pointer m_SingleComponentForwardProjectionFilter
 
SingleComponentImageSourceType::Pointer m_SingleComponentProjectionsSource
 
SingleComponentImageSourceType::Pointer m_SingleComponentVolumeSource
 
SQSRegularizationType::Pointer m_SQSRegul
 
WeidingerForwardModelType::Pointer m_WeidingerForward
 
- Protected Attributes inherited from rtk::IterativeConeBeamReconstructionFilter< TOutputImage, TOutputImage >
BackProjectionType m_CurrentBackProjectionConfiguration
 
ForwardProjectionType m_CurrentForwardProjectionConfiguration
 
std::default_random_engine m_DefaultRandomEngine
 
using BinnedDetectorResponseType = vnl_matrix< dataType >
 
using MaterialAttenuationsType = vnl_matrix< dataType >
 
virtual void SetBinnedDetectorResponse (const BinnedDetectorResponseType &detResp)
 
virtual void SetMaterialAttenuations (const MaterialAttenuationsType &matAtt)
 

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 TPhotonCounts, typename TSpectrum>
class rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >

Implements the one-step spectral CT inversion method described by Mechlem et al.

This filter implements one-step spectral CT inversion method described by Mechlem et al. in their paper "Joint statistical iterative material image reconstruction for spectral computed tomography using a semi-empirical forward model", IEEE TMI 2017 It reconstructs a vector-valued volume (each component is a material) from vector-valued projections (each component is the count of photons in an energy bin of the spectral detector). It requires knowledge of the incident spectrum, of the detector's energy distribution and of the materials' matrix of mass-attenuation coefficients as a function of the incident energy.

dot_inline_dotgraph_18.png
Test:
rtkmechlemtest.cxx
Author
Cyril Mory

Definition at line 146 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

Member Typedef Documentation

◆ AddFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::AddFilterType = itk::AddImageFilter<TGradientsImage>

◆ AddMatrixAndDiagonalFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::AddMatrixAndDiagonalFilterType = rtk::AddMatrixAndDiagonalImageFilter<TGradientsImage, THessiansImage>

◆ BackProjectionType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::BackProjectionType = typename Superclass::BackProjectionType

◆ BinnedDetectorResponseType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::BinnedDetectorResponseType = vnl_matrix<dataType>

Set methods forwarding the detector response and material attenuation matrices to the internal WeidingerForwardModel filter

Definition at line 281 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

◆ CPUOutputImageType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::CPUOutputImageType = typename itk::Image<typename TOutputImage::PixelType, TOutputImage::ImageDimension>

SFINAE type alias, depending on whether a CUDA image is used.

Definition at line 169 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

◆ CudaHessiansBackProjectionImageFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::CudaHessiansBackProjectionImageFilterType = BackProjectionImageFilter<THessiansImage, THessiansImage>

◆ CudaSingleComponentForwardProjectionImageFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::CudaSingleComponentForwardProjectionImageFilterType = JosephForwardProjectionImageFilter<SingleComponentImageType, SingleComponentImageType>

◆ dataType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::dataType = typename TOutputImage::PixelType::ValueType

◆ ExtractPhotonCountsFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::ExtractPhotonCountsFilterType = itk::ExtractImageFilter<TPhotonCounts, TPhotonCounts>

Filter type alias

Definition at line 214 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

◆ ForwardProjectionFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter<TOutputImage, TOutputImage>

◆ ForwardProjectionType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::ForwardProjectionType = typename Superclass::ForwardProjectionType

◆ GradientsBackProjectionFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GradientsBackProjectionFilterType = rtk::BackProjectionImageFilter<TGradientsImage, TGradientsImage>

◆ GradientsSourceType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GradientsSourceType = rtk::ConstantImageSource<TGradientsImage>

◆ HessiansBackProjectionFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::HessiansBackProjectionFilterType = rtk::BackProjectionImageFilter<THessiansImage, THessiansImage>

◆ HessiansSourceType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::HessiansSourceType = rtk::ConstantImageSource<THessiansImage>

◆ MaterialAttenuationsType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::MaterialAttenuationsType = vnl_matrix<dataType>

Set methods forwarding the detector response and material attenuation matrices to the internal WeidingerForwardModel filter

Definition at line 282 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

◆ MaterialProjectionsSourceType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::MaterialProjectionsSourceType = rtk::ConstantImageSource<TOutputImage>

◆ MultiplyFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::MultiplyFilterType = itk::MultiplyImageFilter<TOutputImage, SingleComponentImageType>

◆ MultiplyGradientFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::MultiplyGradientFilterType = itk::MultiplyImageFilter<TGradientsImage, SingleComponentImageType>

◆ NesterovFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::NesterovFilterType = rtk::NesterovUpdateImageFilter<TOutputImage>

◆ NewtonFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::NewtonFilterType = rtk::GetNewtonUpdateImageFilter<TGradientsImage, THessiansImage>

◆ Pointer

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::Pointer = itk::SmartPointer<Self>

◆ Self

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::Self = MechlemOneStepSpectralReconstructionFilter

Standard class type alias.

Definition at line 153 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

◆ SingleComponentForwardProjectionFilterType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SingleComponentForwardProjectionFilterType = rtk::ForwardProjectionImageFilter<SingleComponentImageType, SingleComponentImageType>

◆ SingleComponentImageSourceType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SingleComponentImageSourceType = rtk::ConstantImageSource<SingleComponentImageType>

◆ SingleComponentImageType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SingleComponentImageType = typename itk::Image<dataType, TOutputImage::ImageDimension>

◆ SQSRegularizationType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SQSRegularizationType = rtk::SeparableQuadraticSurrogateRegularizationImageFilter<TGradientsImage>

◆ Superclass

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::Superclass = IterativeConeBeamReconstructionFilter<TOutputImage, TOutputImage>

◆ TGradientsImage

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::TGradientsImage = TOutputImage

◆ THessiansImage

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::THessiansImage = typename itk::Image<itk::Vector<dataType, nMaterials * nMaterials>, TOutputImage::ImageDimension>

◆ WeidingerForwardModelType

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::WeidingerForwardModelType = WeidingerForwardModelImageFilter<TOutputImage, TPhotonCounts, TSpectrum>

Constructor & Destructor Documentation

◆ MechlemOneStepSpectralReconstructionFilter()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::MechlemOneStepSpectralReconstructionFilter ( )
protected

◆ ~MechlemOneStepSpectralReconstructionFilter()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::~MechlemOneStepSpectralReconstructionFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual::itk::LightObject::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ GenerateData()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GenerateData ( )
overrideprotectedvirtual

Does the real work.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GenerateInputRequestedRegion()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GenerateOutputInformation()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GenerateOutputInformation ( )
overrideprotectedvirtual

The volume and the projections must have different requested regions

Reimplemented from itk::ProcessObject.

◆ GetInputMaterialVolumes()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TOutputImage::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetInputMaterialVolumes ( )
protected

Getters for the inputs

◆ GetInputPhotonCounts()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TPhotonCounts::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetInputPhotonCounts ( )
protected

Getters for the inputs

◆ GetInputSpectrum()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TSpectrum::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetInputSpectrum ( )
protected

Getters for the inputs

◆ GetNameOfClass()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual const char* rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

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

◆ GetNumberOfIterations()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetNumberOfIterations ( )
virtual

◆ GetNumberOfSubsets()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetNumberOfSubsets ( )
virtual

Number of subsets per iteration.

◆ GetProjectionWeights()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageType::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetProjectionWeights ( )
protected

Getters for the inputs

◆ GetRegularizationRadius()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual TOutputImage::RegionType::SizeType rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetRegularizationRadius ( )
virtual

Set/Get for the radius

◆ GetRegularizationWeights()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual TOutputImage::PixelType rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetRegularizationWeights ( )
virtual

Set/Get for the regularization weights

◆ GetResetNesterovEvery()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetResetNesterovEvery ( )
virtual

Parameter to trigger Nesterov's reset. The value is a number of subsets which can be larger than the number of subsets per iteration. 1 means no Nesterov acceleration.

◆ GetSpatialRegularizationWeights()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageType::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetSpatialRegularizationWeights ( )
protected

Getters for the inputs

◆ GetSupportMask()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageType::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetSupportMask ( )
protected

Getters for the inputs

◆ InstantiateHessiansBackProjectionFilter()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
HessiansBackProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::InstantiateHessiansBackProjectionFilter ( int  bptype)
protected

Functions to instantiate forward and back projection filters with a different number of components than the ones provided by the IterativeConeBeamReconstructionFilter class

◆ InstantiateSingleComponentForwardProjectionFilter()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentForwardProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::InstantiateSingleComponentForwardProjectionFilter ( int  fwtype)
protected

Functions to instantiate forward and back projection filters with a different number of components than the ones provided by the IterativeConeBeamReconstructionFilter class

◆ New()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
static Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::New ( )
static

Method for creation through the object factory.

◆ SetBinnedDetectorResponse()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetBinnedDetectorResponse ( const BinnedDetectorResponseType detResp)
virtual

Set methods forwarding the detector response and material attenuation matrices to the internal WeidingerForwardModel filter

◆ SetGeometry()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetGeometry ( const ThreeDCircularProjectionGeometry _arg)
virtual

Pass the geometry to all filters needing it

◆ SetInputMaterialVolumes()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetInputMaterialVolumes ( const TOutputImage *  materialVolumes)

Set methods for all inputs, since they have different types

◆ SetInputPhotonCounts()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetInputPhotonCounts ( const TPhotonCounts *  photonCounts)

Set methods for all inputs, since they have different types

◆ SetInputSpectrum()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetInputSpectrum ( const TSpectrum *  spectrum)

Set methods for all inputs, since they have different types

◆ SetMaterialAttenuations()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetMaterialAttenuations ( const MaterialAttenuationsType matAtt)
virtual

Set methods forwarding the detector response and material attenuation matrices to the internal WeidingerForwardModel filter

◆ SetNumberOfIterations()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetNumberOfIterations ( int  _arg)
virtual

◆ SetNumberOfSubsets()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetNumberOfSubsets ( int  _arg)
virtual

Number of subsets per iteration.

◆ SetProjectionWeights()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetProjectionWeights ( const SingleComponentImageType weiprojections)

Set methods for all inputs, since they have different types

◆ SetRegularizationRadius()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetRegularizationRadius ( typename TOutputImage::RegionType::SizeType  _arg)
virtual

Set/Get for the radius

◆ SetRegularizationWeights()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetRegularizationWeights ( typename TOutputImage::PixelType  _arg)
virtual

Set/Get for the regularization weights

◆ SetResetNesterovEvery()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetResetNesterovEvery ( int  _arg)
virtual

Parameter to trigger Nesterov's reset. The value is a number of subsets which can be larger than the number of subsets per iteration. 1 means no Nesterov acceleration.

◆ SetSpatialRegularizationWeights()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetSpatialRegularizationWeights ( const SingleComponentImageType regweights)

Set methods for all inputs, since they have different types

◆ SetSupportMask()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetSupportMask ( const SingleComponentImageType support)

Set methods for all inputs, since they have different types

◆ VerifyInputInformation()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::VerifyInputInformation ( ) const
inlineoverrideprotected

The inputs of this filter have the same type 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 329 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

◆ VerifyPreconditions()

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::VerifyPreconditions ( )
overrideprotectedvirtual

Checks that inputs are correctly set.

Reimplemented from itk::ProcessObject.

Member Data Documentation

◆ m_AddGradients

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
AddFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_AddGradients
protected

◆ m_AddHessians

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
AddMatrixAndDiagonalFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_AddHessians
protected

◆ m_ExtractPhotonCountsFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
ExtractPhotonCountsFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_ExtractPhotonCountsFilter
protected

Member pointers to the filters used internally (for convenience)

Definition at line 303 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

◆ m_ForwardProjectionFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
ForwardProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_ForwardProjectionFilter
protected

◆ m_Geometry

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
ThreeDCircularProjectionGeometry::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_Geometry
protected

◆ m_GradientsBackProjectionFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
GradientsBackProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_GradientsBackProjectionFilter
protected

◆ m_GradientsSource

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
GradientsSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_GradientsSource
protected

◆ m_HessiansBackProjectionFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
HessiansBackProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_HessiansBackProjectionFilter
protected

◆ m_HessiansSource

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
HessiansSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_HessiansSource
protected

◆ m_MultiplyGradientToBeBackprojectedFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MultiplyGradientFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_MultiplyGradientToBeBackprojectedFilter
protected

◆ m_MultiplyRegulGradientsFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MultiplyGradientFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_MultiplyRegulGradientsFilter
protected

◆ m_MultiplyRegulHessiansFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MultiplyGradientFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_MultiplyRegulHessiansFilter
protected

◆ m_MultiplySupportFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MultiplyFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_MultiplySupportFilter
protected

◆ m_NesterovFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
NesterovFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NesterovFilter
protected

◆ m_NewtonFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
NewtonFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NewtonFilter
protected

◆ m_NumberOfIterations

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfIterations
protected

◆ m_NumberOfProjections

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfProjections
protected

◆ m_NumberOfProjectionsInSubset

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
std::vector<int> rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfProjectionsInSubset
protected

◆ m_NumberOfProjectionsPerSubset

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfProjectionsPerSubset
protected

◆ m_NumberOfSubsets

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfSubsets
protected

◆ m_ProjectionsSource

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MaterialProjectionsSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_ProjectionsSource
protected

◆ m_RegularizationRadius

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TOutputImage::RegionType::SizeType rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_RegularizationRadius
protected

◆ m_RegularizationWeights

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TOutputImage::PixelType rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_RegularizationWeights
protected

◆ m_ResetNesterovEvery

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_ResetNesterovEvery
protected

◆ m_SingleComponentForwardProjectionFilter

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentForwardProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_SingleComponentForwardProjectionFilter
protected

◆ m_SingleComponentProjectionsSource

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_SingleComponentProjectionsSource
protected

◆ m_SingleComponentVolumeSource

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_SingleComponentVolumeSource
protected

◆ m_SQSRegul

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SQSRegularizationType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_SQSRegul
protected

◆ m_WeidingerForward

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
WeidingerForwardModelType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_WeidingerForward
protected

◆ nBins

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
constexpr unsigned int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::nBins = TPhotonCounts::PixelType::Dimension
static

Internal type alias and parameters

Definition at line 164 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

◆ nMaterials

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
constexpr unsigned int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::nMaterials = TOutputImage::PixelType::Dimension
static

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