19 #ifndef rtkSpectralForwardModelImageFilter_h 20 #define rtkSpectralForwardModelImageFilter_h 42 template <
typename DecomposedProjectionsType,
43 typename MeasuredProjectionsType,
72 #ifdef itkOverrideGetNameOfClassMacro 81 SetInputIncidentSpectrum(
const IncidentSpectrumImageType * IncidentSpectrum);
83 SetInputSecondIncidentSpectrum(
const IncidentSpectrumImageType * SecondIncidentSpectrum);
84 typename IncidentSpectrumImageType::ConstPointer
85 GetInputIncidentSpectrum();
86 typename IncidentSpectrumImageType::ConstPointer
87 GetInputSecondIncidentSpectrum();
92 SetInputDecomposedProjections(
const DecomposedProjectionsType * DecomposedProjections);
93 typename DecomposedProjectionsType::ConstPointer
94 GetInputDecomposedProjections();
99 SetInputMeasuredProjections(
const MeasuredProjectionsType * SpectralProjections);
100 typename MeasuredProjectionsType::ConstPointer
101 GetInputMeasuredProjections();
106 SetDetectorResponse(
const DetectorResponseImageType * DetectorResponse);
107 typename DetectorResponseImageType::ConstPointer
108 GetDetectorResponse();
113 SetMaterialAttenuations(
const MaterialAttenuationsImageType * MaterialAttenuations);
114 typename MaterialAttenuationsImageType::ConstPointer
115 GetMaterialAttenuations();
122 itkGetMacro(NumberOfSpectralBins,
unsigned int);
125 itkGetMacro(NumberOfMaterials,
unsigned int);
128 itkGetMacro(NumberOfEnergies,
unsigned int);
131 itkGetMacro(IsSpectralCT,
bool);
134 itkGetMacro(ComputeVariances,
bool);
142 using Superclass::MakeOutput;
147 GenerateOutputInformation()
override;
150 GenerateInputRequestedRegion()
override;
153 BeforeThreadedGenerateData()
override;
155 DynamicThreadedGenerateData(
const typename OutputImageType::RegionType & outputRegionForThread)
override;
180 template <
typename OutputElementType,
typename DetectorResponseImageType,
typename ThresholdsType>
181 vnl_matrix<OutputElementType>
183 const ThresholdsType & thresholds,
184 const unsigned int numberOfEnergies);
189 #ifndef ITK_MANUAL_INSTANTIATION 190 # 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