RTK  2.5.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::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections > Class Template Reference

#include <rtkWeidingerForwardModelImageFilter.h>

+ Inheritance diagram for rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >:
+ Collaboration diagram for rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >:

Public Types

using BinnedDetectorResponseType = vnl_matrix< dataType >
 
using dataType = typename TMaterialProjections::PixelType::ValueType
 
using MaterialAttenuationsType = vnl_matrix< dataType >
 
using Pointer = itk::SmartPointer< Self >
 
using Self = WeidingerForwardModelImageFilter
 
using Superclass = itk::ImageToImageFilter< TMaterialProjections, TMaterialProjections >
 
using TOutputImage1 = TMaterialProjections
 
using TOutputImage2 = itk::Image< TPixelOutput2, TMaterialProjections::ImageDimension >
 
using TPixelOutput2 = itk::Vector< dataType, nMaterials *nMaterials >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
TOutputImage1GetOutput1 ()
 
TOutputImage2GetOutput2 ()
 
void SetInputMaterialProjections (const TMaterialProjections *materialProjections)
 
void SetInputPhotonCounts (const TPhotonCounts *photonCounts)
 
void SetInputSpectrum (const TSpectrum *spectrum)
 
void SetInputProjectionsOfOnes (const TProjections *projectionsOfOnes)
 
virtual const BinnedDetectorResponseTypeGetBinnedDetectorResponse () const
 
virtual const MaterialAttenuationsTypeGetMaterialAttenuations () const
 
virtual void SetBinnedDetectorResponse (const BinnedDetectorResponseType &detResp)
 
virtual void SetMaterialAttenuations (const MaterialAttenuationsType &matAtt)
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

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

Protected Member Functions

void DynamicThreadedGenerateData (const typename TOutputImage1::RegionType &outputRegionForThread) override
 
void GenerateInputRequestedRegion () override
 
void VerifyInputInformation () const override
 
 WeidingerForwardModelImageFilter ()
 
 ~WeidingerForwardModelImageFilter () override=default
 
itk::ProcessObject::DataObjectPointer MakeOutput (itk::ProcessObject::DataObjectPointerArraySizeType idx) override
 
itk::ProcessObject::DataObjectPointer MakeOutput (const itk::ProcessObject::DataObjectIdentifierType &) override
 
TMaterialProjections::ConstPointer GetInputMaterialProjections ()
 
TPhotonCounts::ConstPointer GetInputPhotonCounts ()
 
TSpectrum::ConstPointer GetInputSpectrum ()
 
TProjections::ConstPointer GetInputProjectionsOfOnes ()
 

Protected Attributes

BinnedDetectorResponseType m_BinnedDetectorResponse
 
MaterialAttenuationsType m_MaterialAttenuations
 
itk::SizeValueType m_NumberOfProjectionsInSpectrum
 

Detailed Description

template<class TMaterialProjections, class TPhotonCounts, class TSpectrum, class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
class rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >

Performs intermediate computations in Weidinger2016.

This filter performs all computations between forward and back projection in Weidinger2016

Author
Cyril Mory

Definition at line 46 of file rtkWeidingerForwardModelImageFilter.h.

Member Typedef Documentation

◆ BinnedDetectorResponseType

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::BinnedDetectorResponseType = vnl_matrix<dataType>

Typedefs for additional input information

Definition at line 106 of file rtkWeidingerForwardModelImageFilter.h.

◆ dataType

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::dataType = typename TMaterialProjections::PixelType::ValueType

Convenient type alias

Definition at line 73 of file rtkWeidingerForwardModelImageFilter.h.

◆ MaterialAttenuationsType

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::MaterialAttenuationsType = vnl_matrix<dataType>

Definition at line 107 of file rtkWeidingerForwardModelImageFilter.h.

◆ Pointer

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::Pointer = itk::SmartPointer<Self>

Definition at line 55 of file rtkWeidingerForwardModelImageFilter.h.

◆ Self

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::Self = WeidingerForwardModelImageFilter

Standard class type alias.

Definition at line 53 of file rtkWeidingerForwardModelImageFilter.h.

◆ Superclass

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::Superclass = itk::ImageToImageFilter<TMaterialProjections, TMaterialProjections>

Definition at line 54 of file rtkWeidingerForwardModelImageFilter.h.

◆ TOutputImage1

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::TOutputImage1 = TMaterialProjections

Define types for output images:

  • one n-vector per pixel
  • one nxn-matrix per pixel, but stored as one nxn-vector to allow vector back projection

Definition at line 79 of file rtkWeidingerForwardModelImageFilter.h.

◆ TOutputImage2

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::TOutputImage2 = itk::Image<TPixelOutput2, TMaterialProjections::ImageDimension>

Definition at line 84 of file rtkWeidingerForwardModelImageFilter.h.

◆ TPixelOutput2

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::TPixelOutput2 = itk::Vector<dataType, nMaterials * nMaterials>

Definition at line 80 of file rtkWeidingerForwardModelImageFilter.h.

Constructor & Destructor Documentation

◆ WeidingerForwardModelImageFilter()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::WeidingerForwardModelImageFilter ( )
protected

◆ ~WeidingerForwardModelImageFilter()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::~WeidingerForwardModelImageFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
virtual::itk::LightObject::Pointer rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ DynamicThreadedGenerateData()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::DynamicThreadedGenerateData ( const typename TOutputImage1::RegionType outputRegionForThread)
overrideprotected

Does the real work.

◆ GenerateInputRequestedRegion()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

Reimplemented from itk::ProcessObject.

◆ GetBinnedDetectorResponse()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
virtual const BinnedDetectorResponseType& rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetBinnedDetectorResponse ( ) const
virtual

Set and Get macros for the additional input information

◆ GetInputMaterialProjections()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
TMaterialProjections::ConstPointer rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetInputMaterialProjections ( )
protected

Getters for the inputs

◆ GetInputPhotonCounts()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
TPhotonCounts::ConstPointer rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetInputPhotonCounts ( )
protected

Getters for the inputs

◆ GetInputProjectionsOfOnes()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
TProjections::ConstPointer rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetInputProjectionsOfOnes ( )
protected

Getters for the inputs

◆ GetInputSpectrum()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
TSpectrum::ConstPointer rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetInputSpectrum ( )
protected

Getters for the inputs

◆ GetMaterialAttenuations()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
virtual const MaterialAttenuationsType& rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetMaterialAttenuations ( ) const
virtual

Set and Get macros for the additional input information

◆ GetNameOfClass()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
virtual const char* rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GetOutput1()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
TOutputImage1* rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetOutput1 ( )

Define the getters for the outputs, with correct types

◆ GetOutput2()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
TOutputImage2* rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::GetOutput2 ( )

Define the getters for the outputs, with correct types

◆ MakeOutput() [1/2]

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
itk::ProcessObject::DataObjectPointer rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::MakeOutput ( itk::ProcessObject::DataObjectPointerArraySizeType  idx)
overrideprotectedvirtual

Creates the Outputs

Reimplemented from itk::ImageSource< TOutputImage >.

◆ MakeOutput() [2/2]

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
itk::ProcessObject::DataObjectPointer rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::MakeOutput ( const itk::ProcessObject::DataObjectIdentifierType )
overrideprotectedvirtual

Creates the Outputs

Reimplemented from itk::ImageSource< TOutputImage >.

◆ New()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
static Pointer rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::New ( )
static

Method for creation through the object factory.

◆ SetBinnedDetectorResponse()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
virtual void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::SetBinnedDetectorResponse ( const BinnedDetectorResponseType detResp)
virtual

Set and Get macros for the additional input information

◆ SetInputMaterialProjections()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::SetInputMaterialProjections ( const TMaterialProjections *  materialProjections)

Set methods for all inputs, since they have different types

◆ SetInputPhotonCounts()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::SetInputPhotonCounts ( const TPhotonCounts *  photonCounts)

Set methods for all inputs, since they have different types

◆ SetInputProjectionsOfOnes()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::SetInputProjectionsOfOnes ( const TProjections *  projectionsOfOnes)

Set methods for all inputs, since they have different types

◆ SetInputSpectrum()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::SetInputSpectrum ( const TSpectrum *  spectrum)

Set methods for all inputs, since they have different types

◆ SetMaterialAttenuations()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
virtual void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::SetMaterialAttenuations ( const MaterialAttenuationsType matAtt)
virtual

Set and Get macros for the additional input information

◆ VerifyInputInformation()

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::VerifyInputInformation ( ) const
inlineoverrideprotected

Definition at line 125 of file rtkWeidingerForwardModelImageFilter.h.

Member Data Documentation

◆ m_BinnedDetectorResponse

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
BinnedDetectorResponseType rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::m_BinnedDetectorResponse
protected

Additional input parameters

Definition at line 151 of file rtkWeidingerForwardModelImageFilter.h.

◆ m_MaterialAttenuations

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
MaterialAttenuationsType rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::m_MaterialAttenuations
protected

Definition at line 152 of file rtkWeidingerForwardModelImageFilter.h.

◆ m_NumberOfProjectionsInSpectrum

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
itk::SizeValueType rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::m_NumberOfProjectionsInSpectrum
protected

Definition at line 153 of file rtkWeidingerForwardModelImageFilter.h.

◆ nBins

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
constexpr unsigned int rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::nBins = TPhotonCounts::PixelType::Dimension
static

Convenient parameters extracted from template types

Definition at line 69 of file rtkWeidingerForwardModelImageFilter.h.

◆ nMaterials

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
constexpr unsigned int rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::nMaterials = TMaterialProjections::PixelType::Dimension
static

Definition at line 70 of file rtkWeidingerForwardModelImageFilter.h.


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