RTK  2.0.1
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 int GetNumberOfSubsets ()
 
virtual TOutputImage::RegionType::SizeType GetRegularizationRadius ()
 
virtual TOutputImage::PixelType GetRegularizationWeights ()
 
virtual int GetResetNesterovEvery ()
 
void SetBackProjectionFilter (BackProjectionType _arg) override
 
void SetForwardProjectionFilter (ForwardProjectionType _arg) override
 
virtual void SetGeometry (const ThreeDCircularProjectionGeometry *_arg)
 
virtual void SetNumberOfIterations (int _arg)
 
virtual void SetNumberOfSubsets (int _arg)
 
virtual void SetRegularizationRadius (typename TOutputImage::RegionType::SizeType _arg)
 
virtual void SetRegularizationWeights (typename TOutputImage::PixelType _arg)
 
virtual void SetResetNesterovEvery (int _arg)
 
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)
 
- 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 ()
 
 ~MechlemOneStepSpectralReconstructionFilter () override=default
 
void VerifyInputInformation () override
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
TOutputImage::ConstPointer GetInputMaterialVolumes ()
 
TPhotonCounts::ConstPointer GetInputPhotonCounts ()
 
TSpectrum::ConstPointer GetInputSpectrum ()
 
SingleComponentImageType::ConstPointer GetSupportMask ()
 
SingleComponentImageType::ConstPointer GetSpatialRegularizationWeights ()
 
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 ()
 
 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_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_17.png
Test:
rtkmechlemtest.cxx
Author
Cyril Mory

Definition at line 134 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

Member Typedef Documentation

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::AddFilterType = itk::AddImageFilter<TGradientsImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::AddMatrixAndDiagonalFilterType = rtk::AddMatrixAndDiagonalImageFilter<TGradientsImage, THessiansImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::BackProjectionType = typename Superclass::BackProjectionType
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 263 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

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 157 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::CudaHessiansBackProjectionImageFilterType = BackProjectionImageFilter<THessiansImage, THessiansImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::CudaSingleComponentForwardProjectionImageFilterType = JosephForwardProjectionImageFilter<SingleComponentImageType, SingleComponentImageType>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::dataType = typename TOutputImage::PixelType::ValueType
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::ExtractPhotonCountsFilterType = itk::ExtractImageFilter<TPhotonCounts, TPhotonCounts>

Filter type alias

Definition at line 201 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< TOutputImage, TOutputImage >
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::ForwardProjectionType = typename Superclass::ForwardProjectionType
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GradientsBackProjectionFilterType = rtk::BackProjectionImageFilter< TGradientsImage, TGradientsImage >
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GradientsSourceType = rtk::ConstantImageSource<TGradientsImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::HessiansBackProjectionFilterType = rtk::BackProjectionImageFilter< THessiansImage, THessiansImage >
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::HessiansSourceType = rtk::ConstantImageSource<THessiansImage>
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 264 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::MaterialProjectionsSourceType = rtk::ConstantImageSource<TOutputImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::MultiplyFilterType = itk::MultiplyImageFilter<TOutputImage, SingleComponentImageType>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::MultiplyGradientFilterType = itk::MultiplyImageFilter<TGradientsImage, SingleComponentImageType>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::NesterovFilterType = rtk::NesterovUpdateImageFilter<TOutputImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::NewtonFilterType = rtk::GetNewtonUpdateImageFilter<TGradientsImage, THessiansImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::Pointer = itk::SmartPointer< Self >
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::Self = MechlemOneStepSpectralReconstructionFilter

Standard class type alias.

Definition at line 140 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SingleComponentForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< SingleComponentImageType, SingleComponentImageType >
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SingleComponentImageSourceType = rtk::ConstantImageSource<SingleComponentImageType>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SingleComponentImageType = typename itk::Image<dataType, TOutputImage::ImageDimension>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SQSRegularizationType = rtk::SeparableQuadraticSurrogateRegularizationImageFilter<TGradientsImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::Superclass = IterativeConeBeamReconstructionFilter<TOutputImage, TOutputImage>
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::TGradientsImage = TOutputImage
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::THessiansImage = typename itk::Image< itk::Vector<dataType, nMaterials * nMaterials>, TOutputImage::ImageDimension >
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
using rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::WeidingerForwardModelType = WeidingerForwardModelImageFilter<TOutputImage, TPhotonCounts, TSpectrum>

Constructor & Destructor Documentation

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

Member Function Documentation

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

Reimplemented from itk::Object.

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

Does the real work.

Reimplemented from itk::ImageSource< TOutputImage >.

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.

Referenced by rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::VerifyInputInformation().

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.

Referenced by rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::VerifyInputInformation().

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TOutputImage::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetInputMaterialVolumes ( )
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TPhotonCounts::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetInputPhotonCounts ( )
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TSpectrum::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetInputSpectrum ( )
protected
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 >.

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetNumberOfIterations ( )
virtual
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetNumberOfSubsets ( )
virtual
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual TOutputImage::RegionType::SizeType rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetRegularizationRadius ( )
virtual
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual TOutputImage::PixelType rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetRegularizationWeights ( )
virtual
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
virtual int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetResetNesterovEvery ( )
virtual
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageType::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetSpatialRegularizationWeights ( )
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageType::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::GetSupportMask ( )
protected
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

Referenced by rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::VerifyInputInformation().

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

Referenced by rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::VerifyInputInformation().

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

Method for creation through the object factory.

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetBackProjectionFilter ( BackProjectionType  _arg)
override

Instantiate the back projection filters

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

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
void rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::SetForwardProjectionFilter ( ForwardProjectionType  _arg)
override

Instantiate the forward projection filters

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

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

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

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

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

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

Number of subsets per iteration.

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

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

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.

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

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

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

Member Data Documentation

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
AddFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_AddGradients
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
AddMatrixAndDiagonalFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_AddHessians
protected
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 278 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
ForwardProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_ForwardProjectionFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
ThreeDCircularProjectionGeometry::ConstPointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_Geometry
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
GradientsBackProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_GradientsBackProjectionFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
GradientsSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_GradientsSource
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
HessiansBackProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_HessiansBackProjectionFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
HessiansSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_HessiansSource
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MultiplyGradientFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_MultiplyRegulGradientsFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MultiplyGradientFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_MultiplyRegulHessiansFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MultiplyFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_MultiplySupportFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
NesterovFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NesterovFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
NewtonFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NewtonFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfIterations
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfProjections
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
std::vector<int> rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfProjectionsInSubset
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfProjectionsPerSubset
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_NumberOfSubsets
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
MaterialProjectionsSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_ProjectionsSource
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TOutputImage::RegionType::SizeType rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_RegularizationRadius
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
TOutputImage::PixelType rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_RegularizationWeights
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
int rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_ResetNesterovEvery
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentForwardProjectionFilterType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_SingleComponentForwardProjectionFilter
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_SingleComponentProjectionsSource
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SingleComponentImageSourceType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_SingleComponentVolumeSource
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
SQSRegularizationType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_SQSRegul
protected
template<typename TOutputImage , typename TPhotonCounts , typename TSpectrum >
WeidingerForwardModelType::Pointer rtk::MechlemOneStepSpectralReconstructionFilter< TOutputImage, TPhotonCounts, TSpectrum >::m_WeidingerForward
protected
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 151 of file rtkMechlemOneStepSpectralReconstructionFilter.h.

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: