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::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 GenerateInputRequestedRegion () override
 
void VerifyInputInformation () override
 
 WeidingerForwardModelImageFilter ()
 
 ~WeidingerForwardModelImageFilter () override=default
 
void ThreadedGenerateData (const typename TOutputImage1::RegionType &outputRegionForThread, itk::ThreadIdType) override
 
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
 

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 45 of file rtkWeidingerForwardModelImageFilter.h.

Member Typedef Documentation

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 93 of file rtkWeidingerForwardModelImageFilter.h.

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 66 of file rtkWeidingerForwardModelImageFilter.h.

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 94 of file rtkWeidingerForwardModelImageFilter.h.

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 53 of file rtkWeidingerForwardModelImageFilter.h.

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 51 of file rtkWeidingerForwardModelImageFilter.h.

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 52 of file rtkWeidingerForwardModelImageFilter.h.

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 72 of file rtkWeidingerForwardModelImageFilter.h.

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 77 of file rtkWeidingerForwardModelImageFilter.h.

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 73 of file rtkWeidingerForwardModelImageFilter.h.

Constructor & Destructor Documentation

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
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

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.

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.

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

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
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
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
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
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

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 >.

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

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

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
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 >.

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.

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

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

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

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

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

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

template<class TMaterialProjections , class TPhotonCounts , class TSpectrum , class TProjections = itk::Image<typename TMaterialProjections::PixelType::ValueType, TMaterialProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TMaterialProjections, TPhotonCounts, TSpectrum, TProjections >::ThreadedGenerateData ( const typename TOutputImage1::RegionType outputRegionForThread,
itk::ThreadIdType   
)
overrideprotected
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 ( )
inlineoverrideprotectedvirtual

Member Data Documentation

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 135 of file rtkWeidingerForwardModelImageFilter.h.

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 136 of file rtkWeidingerForwardModelImageFilter.h.

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 62 of file rtkWeidingerForwardModelImageFilter.h.

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 63 of file rtkWeidingerForwardModelImageFilter.h.


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