RTK  2.6.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< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections > Class Template Reference

#include <rtkWeidingerForwardModelImageFilter.h>

+ Inheritance diagram for rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >:
+ Collaboration diagram for rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >:

Public Types

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

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
const char * GetNameOfClass () const override
 
TOutputImage1GetOutput1 ()
 
TOutputImage2GetOutput2 ()
 
void SetInputDecomposedProjections (const TDecomposedProjections *decomposedProjections)
 
void SetInputMeasuredProjections (const TMeasuredProjections *measuredProjections)
 
void SetInputIncidentSpectrum (const TIncidentSpectrum *incidentSpectrum)
 
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 = TMeasuredProjections::PixelType::Dimension
 
static constexpr unsigned int nMaterials = TDecomposedProjections::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
 
TDecomposedProjections::ConstPointer GetInputDecomposedProjections ()
 
TMeasuredProjections::ConstPointer GetInputMeasuredProjections ()
 
TIncidentSpectrum::ConstPointer GetInputIncidentSpectrum ()
 
TProjections::ConstPointer GetInputProjectionsOfOnes ()
 

Protected Attributes

BinnedDetectorResponseType m_BinnedDetectorResponse
 
MaterialAttenuationsType m_MaterialAttenuations
 
itk::SizeValueType m_NumberOfProjectionsInIncidentSpectrum
 

Detailed Description

template<class TDecomposedProjections, class TMeasuredProjections, class TIncidentSpectrum, class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
class rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, 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 TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::BinnedDetectorResponseType = vnl_matrix<dataType>

Typedefs for additional input information

Definition at line 109 of file rtkWeidingerForwardModelImageFilter.h.

◆ dataType

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::dataType = typename TDecomposedProjections::PixelType::ValueType

Convenient type alias

Definition at line 68 of file rtkWeidingerForwardModelImageFilter.h.

◆ MaterialAttenuationsType

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::MaterialAttenuationsType = vnl_matrix<dataType>

Definition at line 110 of file rtkWeidingerForwardModelImageFilter.h.

◆ Pointer

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::Pointer = itk::SmartPointer<Self>

Definition at line 55 of file rtkWeidingerForwardModelImageFilter.h.

◆ Self

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::Self = WeidingerForwardModelImageFilter

Standard class type alias.

Definition at line 53 of file rtkWeidingerForwardModelImageFilter.h.

◆ Superclass

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::Superclass = itk::ImageToImageFilter<TDecomposedProjections, TDecomposedProjections>

Definition at line 54 of file rtkWeidingerForwardModelImageFilter.h.

◆ TOutputImage1

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::TOutputImage1 = TDecomposedProjections

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

◆ TOutputImage2

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::TOutputImage2 = itk::Image<TPixelOutput2, TDecomposedProjections::ImageDimension>

Definition at line 79 of file rtkWeidingerForwardModelImageFilter.h.

◆ TPixelOutput2

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
using rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::TPixelOutput2 = itk::Vector<dataType, nMaterials * nMaterials>

Definition at line 75 of file rtkWeidingerForwardModelImageFilter.h.

Constructor & Destructor Documentation

◆ WeidingerForwardModelImageFilter()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::WeidingerForwardModelImageFilter ( )
protected

◆ ~WeidingerForwardModelImageFilter()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::~WeidingerForwardModelImageFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
virtual::itk::LightObject::Pointer rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ DynamicThreadedGenerateData()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::DynamicThreadedGenerateData ( const typename TOutputImage1::RegionType &  outputRegionForThread)
overrideprotected

Does the real work.

◆ GenerateInputRequestedRegion()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

Reimplemented from itk::ProcessObject.

◆ GetBinnedDetectorResponse()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
virtual const BinnedDetectorResponseType& rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetBinnedDetectorResponse ( ) const
virtual

Set and Get macros for the additional input information

◆ GetInputDecomposedProjections()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
TDecomposedProjections::ConstPointer rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetInputDecomposedProjections ( )
protected

Getters for the inputs

◆ GetInputIncidentSpectrum()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
TIncidentSpectrum::ConstPointer rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetInputIncidentSpectrum ( )
protected

Getters for the inputs

◆ GetInputMeasuredProjections()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
TMeasuredProjections::ConstPointer rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetInputMeasuredProjections ( )
protected

Getters for the inputs

◆ GetInputProjectionsOfOnes()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
TProjections::ConstPointer rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetInputProjectionsOfOnes ( )
protected

Getters for the inputs

◆ GetMaterialAttenuations()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
virtual const MaterialAttenuationsType& rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetMaterialAttenuations ( ) const
virtual

Set and Get macros for the additional input information

◆ GetNameOfClass()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
const char* rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetNameOfClass ( ) const
overridevirtual

Run-time type information (and related methods).

Reimplemented from itk::ProcessObject.

◆ GetOutput1()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
TOutputImage1* rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetOutput1 ( )

Define the getters for the outputs, with correct types

◆ GetOutput2()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
TOutputImage2* rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::GetOutput2 ( )

Define the getters for the outputs, with correct types

◆ MakeOutput() [1/2]

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

Creates the Outputs

Reimplemented from itk::ProcessObject.

◆ MakeOutput() [2/2]

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

Creates the Outputs

Reimplemented from itk::ProcessObject.

◆ New()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
static Pointer rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::New ( )
static

Method for creation through the object factory.

◆ SetBinnedDetectorResponse()

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

Set and Get macros for the additional input information

◆ SetInputDecomposedProjections()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::SetInputDecomposedProjections ( const TDecomposedProjections *  decomposedProjections)

Set methods for all inputs, since they have different types

◆ SetInputIncidentSpectrum()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::SetInputIncidentSpectrum ( const TIncidentSpectrum *  incidentSpectrum)

Set methods for all inputs, since they have different types

◆ SetInputMeasuredProjections()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::SetInputMeasuredProjections ( const TMeasuredProjections *  measuredProjections)

Set methods for all inputs, since they have different types

◆ SetInputProjectionsOfOnes()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::SetInputProjectionsOfOnes ( const TProjections *  projectionsOfOnes)

Set methods for all inputs, since they have different types

◆ SetMaterialAttenuations()

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

Set and Get macros for the additional input information

◆ VerifyInputInformation()

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
void rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::VerifyInputInformation ( ) const
inlineoverrideprotectedvirtual

Reimplemented from itk::ProcessObject.

Definition at line 128 of file rtkWeidingerForwardModelImageFilter.h.

Member Data Documentation

◆ m_BinnedDetectorResponse

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
BinnedDetectorResponseType rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::m_BinnedDetectorResponse
protected

Additional input parameters

Definition at line 162 of file rtkWeidingerForwardModelImageFilter.h.

◆ m_MaterialAttenuations

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
MaterialAttenuationsType rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::m_MaterialAttenuations
protected

Definition at line 163 of file rtkWeidingerForwardModelImageFilter.h.

◆ m_NumberOfProjectionsInIncidentSpectrum

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
itk::SizeValueType rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::m_NumberOfProjectionsInIncidentSpectrum
protected

Definition at line 164 of file rtkWeidingerForwardModelImageFilter.h.

◆ nBins

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
constexpr unsigned int rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::nBins = TMeasuredProjections::PixelType::Dimension
static

Convenient parameters extracted from template types

Definition at line 64 of file rtkWeidingerForwardModelImageFilter.h.

◆ nMaterials

template<class TDecomposedProjections , class TMeasuredProjections , class TIncidentSpectrum , class TProjections = itk::Image<typename TDecomposedProjections::PixelType::ValueType, TDecomposedProjections::ImageDimension>>
constexpr unsigned int rtk::WeidingerForwardModelImageFilter< TDecomposedProjections, TMeasuredProjections, TIncidentSpectrum, TProjections >::nMaterials = TDecomposedProjections::PixelType::Dimension
static

Definition at line 65 of file rtkWeidingerForwardModelImageFilter.h.


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