18 #ifndef rtkWeidingerForwardModelImageFilter_h 19 #define rtkWeidingerForwardModelImageFilter_h 25 # include <itkCudaImage.h> 41 template <
class TMaterialProjections,
61 #ifdef itkOverrideGetNameOfClassMacro 69 static constexpr
unsigned int nBins = TPhotonCounts::PixelType::Dimension;
70 static constexpr
unsigned int nMaterials = TMaterialProjections::PixelType::Dimension;
73 using dataType =
typename TMaterialProjections::PixelType::ValueType;
82 using TOutputImage2 = itk::CudaImage<TPixelOutput2, TMaterialProjections::ImageDimension>;
96 SetInputMaterialProjections(
const TMaterialProjections * materialProjections);
98 SetInputPhotonCounts(
const TPhotonCounts * photonCounts);
100 SetInputSpectrum(
const TSpectrum * spectrum);
102 SetInputProjectionsOfOnes(
const TProjections * projectionsOfOnes);
123 GenerateInputRequestedRegion()
override;
130 DynamicThreadedGenerateData(
const typename TOutputImage1::RegionType & outputRegionForThread)
override;
140 typename TMaterialProjections::ConstPointer
141 GetInputMaterialProjections();
142 typename TPhotonCounts::ConstPointer
143 GetInputPhotonCounts();
144 typename TSpectrum::ConstPointer
146 typename TProjections::ConstPointer
147 GetInputProjectionsOfOnes();
158 #ifndef ITK_MANUAL_INSTANTIATION 159 # include "rtkWeidingerForwardModelImageFilter.hxx" DataObject::DataObjectIdentifierType DataObjectIdentifierType
typename TMaterialProjections::PixelType::ValueType dataType
vnl_matrix< dataType > MaterialAttenuationsType
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
unsigned long SizeValueType
vnl_matrix< dataType > BinnedDetectorResponseType
MaterialAttenuationsType m_MaterialAttenuations
BinnedDetectorResponseType m_BinnedDetectorResponse
Performs intermediate computations in Weidinger2016.
TMaterialProjections TOutputImage1
void VerifyInputInformation() const override
itk::SizeValueType m_NumberOfProjectionsInSpectrum