19 #ifndef rtkSimplexSpectralProjectionsDecompositionImageFilter_h 20 #define rtkSimplexSpectralProjectionsDecompositionImageFilter_h 42 template <
typename DecomposedProjectionsType,
43 typename MeasuredProjectionsType,
72 #ifndef ITK_FUTURE_LEGACY_REMOVE 87 SetInputDecomposedProjections(
89 template <
unsigned int VNumberOfMaterials>
91 SetInputFixedVectorLengthDecomposedProjections(
93 DecomposedProjectionsType::ImageDimension> * DecomposedProjections);
94 typename DecomposedProjectionsType::ConstPointer
95 GetInputDecomposedProjections();
100 SetInputMeasuredProjections(
102 template <
unsigned int VNumberOfSpectralBins>
104 SetInputFixedVectorLengthMeasuredProjections(
106 MeasuredProjectionsType::ImageDimension> * MeasuredProjections);
107 typename MeasuredProjectionsType::ConstPointer
108 GetInputMeasuredProjections();
114 SetDetectorResponse(
const DetectorResponseImageType * DetectorResponse);
115 typename DetectorResponseImageType::ConstPointer
116 GetDetectorResponse();
121 SetMaterialAttenuations(
const MaterialAttenuationsImageType * MaterialAttenuations);
122 typename MaterialAttenuationsImageType::ConstPointer
123 GetMaterialAttenuations();
128 SetInputIncidentSpectrum(
const IncidentSpectrumImageType * IncidentSpectrum);
129 #ifndef ITK_FUTURE_LEGACY_REMOVE 131 SetInputIncidentSpectrum(
const VectorSpectrumImageType * IncidentSpectrum);
133 typename IncidentSpectrumImageType::ConstPointer
134 GetInputIncidentSpectrum();
138 itkGetMacro(NumberOfIterations,
unsigned int);
143 itkGetMacro(NumberOfEnergies,
unsigned int);
146 itkGetMacro(NumberOfMaterials,
unsigned int);
149 itkGetMacro(OptimizeWithRestarts,
bool);
155 itkGetMacro(NumberOfSpectralBins,
unsigned int);
157 itkSetMacro(OutputInverseCramerRaoLowerBound,
bool);
158 itkGetMacro(OutputInverseCramerRaoLowerBound,
bool);
161 itkGetMacro(OutputFischerMatrix,
bool);
164 itkGetMacro(LogTransformEachBin,
bool);
167 itkGetMacro(GuessInitialization,
bool);
174 GenerateOutputInformation()
override;
177 GenerateInputRequestedRegion()
override;
180 BeforeThreadedGenerateData()
override;
182 DynamicThreadedGenerateData(
const typename DecomposedProjectionsType::RegionType & outputRegionForThread)
override;
186 using Superclass::MakeOutput;
218 #ifndef ITK_FUTURE_LEGACY_REMOVE 220 typename FlattenVectorFilterType::Pointer m_FlattenFilter;
221 typename PermuteFilterType::Pointer m_PermuteFilter;
228 #ifndef ITK_MANUAL_INSTANTIATION 229 # include "rtkSimplexSpectralProjectionsDecompositionImageFilter.hxx" DecomposedProjectionsType InputImageType
DecomposedProjectionsType OutputImageType
itk::ImageSource< MeasuredProjectionsType >::Pointer m_CastMeasuredProjectionsPointer
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
itk::ImageSource< DecomposedProjectionsType >::Pointer m_CastDecomposedProjectionsPointer
bool m_GuessInitialization