19 #ifndef rtkSimplexSpectralProjectionsDecompositionImageFilter_h 20 #define rtkSimplexSpectralProjectionsDecompositionImageFilter_h 43 template <
typename DecomposedProjectionsType,
44 typename MeasuredProjectionsType,
73 #ifndef ITK_FUTURE_LEGACY_REMOVE 88 SetInputDecomposedProjections(
90 template <
unsigned int VNumberOfMaterials>
92 SetInputFixedVectorLengthDecomposedProjections(
94 DecomposedProjectionsType::ImageDimension> * DecomposedProjections);
95 typename DecomposedProjectionsType::ConstPointer
96 GetInputDecomposedProjections();
101 SetInputMeasuredProjections(
103 template <
unsigned int VNumberOfSpectralBins>
105 SetInputFixedVectorLengthMeasuredProjections(
107 MeasuredProjectionsType::ImageDimension> * MeasuredProjections);
108 typename MeasuredProjectionsType::ConstPointer
109 GetInputMeasuredProjections();
115 SetDetectorResponse(
const DetectorResponseImageType * DetectorResponse);
116 typename DetectorResponseImageType::ConstPointer
117 GetDetectorResponse();
122 SetMaterialAttenuations(
const MaterialAttenuationsImageType * MaterialAttenuations);
123 typename MaterialAttenuationsImageType::ConstPointer
124 GetMaterialAttenuations();
129 SetInputIncidentSpectrum(
const IncidentSpectrumImageType * IncidentSpectrum);
131 SetInputSecondIncidentSpectrum(
const IncidentSpectrumImageType * SecondIncidentSpectrum);
132 #ifndef ITK_FUTURE_LEGACY_REMOVE 134 SetInputIncidentSpectrum(
const VectorSpectrumImageType * IncidentSpectrum);
136 SetInputSecondIncidentSpectrum(
const VectorSpectrumImageType * SecondIncidentSpectrum);
138 typename IncidentSpectrumImageType::ConstPointer
139 GetInputIncidentSpectrum();
140 typename IncidentSpectrumImageType::ConstPointer
141 GetInputSecondIncidentSpectrum();
145 itkGetMacro(NumberOfIterations,
unsigned int);
150 itkGetMacro(NumberOfEnergies,
unsigned int);
153 itkGetMacro(NumberOfMaterials,
unsigned int);
156 itkGetMacro(OptimizeWithRestarts,
bool);
162 itkGetMacro(NumberOfSpectralBins,
unsigned int);
164 itkSetMacro(OutputInverseCramerRaoLowerBound,
bool);
165 itkGetMacro(OutputInverseCramerRaoLowerBound,
bool);
168 itkGetMacro(OutputFischerMatrix,
bool);
171 itkGetMacro(LogTransformEachBin,
bool);
174 itkGetMacro(GuessInitialization,
bool);
177 itkGetMacro(IsSpectralCT,
bool);
184 GenerateOutputInformation()
override;
187 GenerateInputRequestedRegion()
override;
190 BeforeThreadedGenerateData()
override;
192 DynamicThreadedGenerateData(
const typename DecomposedProjectionsType::RegionType & outputRegionForThread)
override;
196 using Superclass::MakeOutput;
222 #ifndef ITK_FUTURE_LEGACY_REMOVE 224 typename FlattenVectorFilterType::Pointer m_FlattenFilter;
225 typename FlattenVectorFilterType::Pointer m_FlattenSecondFilter;
226 typename PermuteFilterType::Pointer m_PermuteFilter;
227 typename PermuteFilterType::Pointer m_PermuteSecondFilter;
235 #ifndef ITK_MANUAL_INSTANTIATION 236 # include "rtkSimplexSpectralProjectionsDecompositionImageFilter.hxx" DecomposedProjectionsType InputImageType
DecomposedProjectionsType OutputImageType
typename MeasuredProjectionsType::PixelType::ValueType MeasuredProjectionsDataType
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
vnl_matrix< double > DetectorResponseType
bool m_OutputFischerMatrix
bool m_OutputInverseCramerRaoLowerBound
ThresholdsType m_Thresholds
void VerifyInputInformation() const override
DetectorResponseType m_DetectorResponse
unsigned int m_NumberOfMaterials
Decomposition of spectral projection images into material projections.
vnl_matrix< double > MaterialAttenuationsType
#define itkSetMacro(name, type)
unsigned int m_NumberOfIterations
unsigned int m_NumberOfSpectralBins
bool m_LogTransformEachBin
Re-writes a vector image as an image.
MaterialAttenuationsType m_MaterialAttenuations
typename DecomposedProjectionsType::PixelType::ValueType DecomposedProjectionsDataType
MeanAttenuationInBinType m_MeanAttenuationInBin
bool m_OptimizeWithRestarts
unsigned int m_NumberOfEnergies
bool m_GuessInitialization