19 #ifndef rtkSpectralForwardModelImageFilter_h    20 #define rtkSpectralForwardModelImageFilter_h    45 template <
typename DecomposedProjectionsType,
    46           typename MeasuredProjectionsType,
    73 #ifndef ITK_FUTURE_LEGACY_REMOVE    88   SetInputIncidentSpectrum(
const IncidentSpectrumImageType * IncidentSpectrum);
    90   SetInputSecondIncidentSpectrum(
const IncidentSpectrumImageType * SecondIncidentSpectrum);
    91 #ifndef ITK_FUTURE_LEGACY_REMOVE    93   SetInputIncidentSpectrum(
const VectorSpectrumImageType * IncidentSpectrum);
    95   SetInputSecondIncidentSpectrum(
const VectorSpectrumImageType * SecondIncidentSpectrum);
    97   typename IncidentSpectrumImageType::ConstPointer
    98   GetInputIncidentSpectrum();
    99   typename IncidentSpectrumImageType::ConstPointer
   100   GetInputSecondIncidentSpectrum();
   105   SetInputDecomposedProjections(
   107   template <
unsigned int VNumberOfMaterials>
   109   SetInputFixedVectorLengthDecomposedProjections(
   111                      DecomposedProjectionsType::ImageDimension> * DecomposedProjections);
   112   typename DecomposedProjectionsType::ConstPointer
   113   GetInputDecomposedProjections();
   118   SetInputMeasuredProjections(
   120   template <
unsigned int VNumberOfSpectralBins>
   122   SetInputFixedVectorLengthMeasuredProjections(
   124                      MeasuredProjectionsType::ImageDimension> * MeasuredProjections);
   125   typename MeasuredProjectionsType::ConstPointer
   126   GetInputMeasuredProjections();
   131   SetDetectorResponse(
const DetectorResponseImageType * DetectorResponse);
   132   typename DetectorResponseImageType::ConstPointer
   133   GetDetectorResponse();
   138   SetMaterialAttenuations(
const MaterialAttenuationsImageType * MaterialAttenuations);
   139   typename MaterialAttenuationsImageType::ConstPointer
   140   GetMaterialAttenuations();
   143   typename DecomposedProjectionsType::ConstPointer
   144   GetOutputCramerRaoLowerBound();
   146   typename MeasuredProjectionsType::ConstPointer
   147   GetOutputVariances();
   153   itkGetMacro(NumberOfSpectralBins, 
unsigned int);
   156   itkGetMacro(NumberOfMaterials, 
unsigned int);
   159   itkGetMacro(NumberOfEnergies, 
unsigned int);
   162   itkGetMacro(IsSpectralCT, 
bool);
   165   itkGetMacro(ComputeVariances, 
bool);
   168   itkGetMacro(ComputeCramerRaoLowerBound, 
bool);
   176   using Superclass::MakeOutput;
   181   GenerateOutputInformation() 
override;
   184   GenerateInputRequestedRegion() 
override;
   187   BeforeThreadedGenerateData() 
override;
   189   DynamicThreadedGenerateData(
const typename OutputImageType::RegionType & outputRegionForThread) 
override;
   212 #ifndef ITK_FUTURE_LEGACY_REMOVE   214   typename FlattenVectorFilterType::Pointer m_FlattenFilter;
   215   typename FlattenVectorFilterType::Pointer m_FlattenSecondFilter;
   216   typename PermuteFilterType::Pointer       m_PermuteFilter;
   217   typename PermuteFilterType::Pointer       m_PermuteSecondFilter;
   223 template <
typename OutputElementType, 
typename DetectorResponseImageType, 
typename ThresholdsType>
   224 vnl_matrix<OutputElementType>
   226                             const ThresholdsType &            thresholds,
   227                             const unsigned int                numberOfEnergies);
   232 #ifndef ITK_MANUAL_INSTANTIATION   233 #  include "rtkSpectralForwardModelImageFilter.hxx" 
unsigned int m_NumberOfIterations
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
Forward model for the decomposition of spectral projection images into material projections. 
MaterialAttenuationsType m_MaterialAttenuations
#define itkSetMacro(name, type)
MeasuredProjectionsType InputImageType
bool m_ComputeCramerRaoLowerBound
bool m_OptimizeWithRestarts
typename DecomposedProjectionsType::PixelType::ValueType DecomposedProjectionsDataType
vnl_matrix< double > DetectorResponseType
DetectorResponseType m_DetectorResponse
vnl_matrix< OutputElementType > SpectralBinDetectorResponse(const DetectorResponseImageType *drm, const ThresholdsType &thresholds, const unsigned int numberOfEnergies)
Re-writes a vector image as an image. 
void VerifyInputInformation() const override
unsigned int m_NumberOfEnergies
typename MeasuredProjectionsType::PixelType::ValueType MeasuredProjectionsDataType
MeasuredProjectionsType OutputImageType
unsigned int m_NumberOfSpectralBins
unsigned int m_NumberOfMaterials
ThresholdsType m_Thresholds
vnl_matrix< double > MaterialAttenuationsType