19 #ifndef rtkSpectralForwardModelImageFilter_h 20 #define rtkSpectralForwardModelImageFilter_h 42 template <
typename DecomposedProjectionsType,
43 typename MeasuredProjectionsType,
76 SetInputIncidentSpectrum(
const IncidentSpectrumImageType * IncidentSpectrum);
78 SetInputSecondIncidentSpectrum(
const IncidentSpectrumImageType * SecondIncidentSpectrum);
79 typename IncidentSpectrumImageType::ConstPointer
80 GetInputIncidentSpectrum();
81 typename IncidentSpectrumImageType::ConstPointer
82 GetInputSecondIncidentSpectrum();
87 SetInputDecomposedProjections(
const DecomposedProjectionsType * DecomposedProjections);
88 typename DecomposedProjectionsType::ConstPointer
89 GetInputDecomposedProjections();
94 SetInputMeasuredProjections(
const MeasuredProjectionsType * SpectralProjections);
95 typename MeasuredProjectionsType::ConstPointer
96 GetInputMeasuredProjections();
101 SetDetectorResponse(
const DetectorResponseImageType * DetectorResponse);
102 typename DetectorResponseImageType::ConstPointer
103 GetDetectorResponse();
108 SetMaterialAttenuations(
const MaterialAttenuationsImageType * MaterialAttenuations);
109 typename MaterialAttenuationsImageType::ConstPointer
110 GetMaterialAttenuations();
117 itkGetMacro(NumberOfSpectralBins,
unsigned int);
120 itkGetMacro(NumberOfMaterials,
unsigned int);
123 itkGetMacro(NumberOfEnergies,
unsigned int);
126 itkGetMacro(IsSpectralCT,
bool);
129 itkGetMacro(ComputeVariances,
bool);
137 using Superclass::MakeOutput;
142 GenerateOutputInformation()
override;
145 GenerateInputRequestedRegion()
override;
148 BeforeThreadedGenerateData()
override;
150 DynamicThreadedGenerateData(
const typename OutputImageType::RegionType & outputRegionForThread)
override;
175 template <
typename OutputElementType,
typename DetectorResponseImageType,
typename ThresholdsType>
176 vnl_matrix<OutputElementType>
178 const ThresholdsType & thresholds,
179 const unsigned int numberOfEnergies);
184 #ifndef ITK_MANUAL_INSTANTIATION 185 # include "rtkSpectralForwardModelImageFilter.hxx"
unsigned int m_NumberOfIterations
Superclass::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
Forward model for the decomposition of spectral projection images into material projections.
MaterialAttenuationsType m_MaterialAttenuations
TInputImage InputImageType
#define itkSetMacro(name, type)
TOutputImage OutputImageType
bool m_OptimizeWithRestarts
vnl_matrix< double > DetectorResponseType
DetectorResponseType m_DetectorResponse
vnl_matrix< OutputElementType > SpectralBinDetectorResponse(const DetectorResponseImageType *drm, const ThresholdsType &thresholds, const unsigned int numberOfEnergies)
void VerifyInputInformation() const override
unsigned int m_NumberOfEnergies
unsigned int m_NumberOfSpectralBins
unsigned int m_NumberOfMaterials
ThresholdsType m_Thresholds
vnl_matrix< double > MaterialAttenuationsType