19 #ifndef rtkZengForwardProjectionImageFilter_h 20 #define rtkZengForwardProjectionImageFilter_h 22 #include "rtkConfiguration.h" 25 #include <itkPixelTraits.h> 27 #include <itkMultiplyImageFilter.h> 28 #include <itkAddImageFilter.h> 29 #include <itkDiscreteGaussianImageFilter.h> 30 #include <itkPasteImageFilter.h> 31 #include <itkResampleImageFilter.h> 32 #include <itkVector.h> 33 #include <itkCenteredEuler3DTransform.h> 34 #include <itkChangeInformationImageFilter.h> 35 #include <itkRegionOfInterestImageFilter.h> 36 #include <itkConstantBoundaryCondition.h> 37 #include <itkUnaryGeneratorImageFilter.h> 39 #include <itkVectorImage.h> 61 template <
class TInputImage,
class TOutputImage>
73 using PointType =
typename InputCPUImageType::PointType;
99 static constexpr
unsigned int InputImageDimension = TOutputImage::ImageDimension;
111 itkGetMacro(SigmaZero,
double);
116 itkGetMacro(Alpha,
double);
125 GenerateInputRequestedRegion()
override;
128 GenerateOutputInformation()
override;
131 GenerateData()
override;
136 VerifyInputInformation()
const override;
157 operator=(
const Self &) =
delete;
159 double m_SigmaZero{ 1.5417233052142099 };
160 double m_Alpha{ 0.016241189545787734 };
167 #ifndef ITK_MANUAL_INSTANTIATION 168 # include "rtkZengForwardProjectionImageFilter.hxx" itk::SmartPointer< const Self > ConstPointer
Base class for forward projection, i.e. accumulation along x-ray lines.
typename ResampleImageFilterType::Pointer ResampleImageFilterPointerType
TransformPointerType m_Transform
typename TOutputImage::RegionType OutputImageRegionType
itk::ChangeInformationImageFilter< OuputCPUImageType > ChangeInformationFilterType
CustomUnaryFilterPointerType m_CustomUnaryFilter
typename PasteImageFilterType::Pointer PasteImageFilterPointerType
itk::ConstantBoundaryCondition< OuputCPUImageType > BoundaryCondition
ChangeInformationPointerType m_ChangeInformation
typename DiscreteGaussianFilterType::Pointer DiscreteGaussianFilterPointeurType
ResampleImageFilterPointerType m_AttenuationMapResampleImageFilter
itk::MultiplyImageFilter< OuputCPUImageType, OuputCPUImageType > MultiplyImageFilterType
itk::PasteImageFilter< OuputCPUImageType, InputCPUImageType > PasteImageFilterType
itk::Vector< double, 3 > VectorType
AddImageFilterPointerType m_AddImageFilter
typename TInputImage::PixelType InputPixelType
typename TOutputImage::PixelType OutputPixelType
typename MultiplyImageFilterType::Pointer MultpiplyImageFilterPointerType
itk::RegionOfInterestImageFilter< OuputCPUImageType, OuputCPUImageType > RegionOfInterestFilterType
#define itkSetMacro(name, type)
itk::Image< OutputPixelType, 3 > OuputCPUImageType
itk::CenteredEuler3DTransform< double > TransformType
typename CustomUnaryFilterType::Pointer CustomUnaryFilterPointerType
typename AddImageFilterType::Pointer AddImageFilterPointerType
itk::UnaryGeneratorImageFilter< OuputCPUImageType, OuputCPUImageType > CustomUnaryFilterType
ChangeInformationPointerType m_AttenuationMapChangeInformation
DiscreteGaussianFilterPointeurType m_DiscreteGaussianFilter
ResampleImageFilterPointerType m_ResampleImageFilter
typename ChangeInformationFilterType::Pointer ChangeInformationPointerType
MultpiplyImageFilterPointerType m_AttenuationMapMultiplyImageFilter
PasteImageFilterPointerType m_PasteImageFilter
itk::InPlaceImageFilter< TInputImage, TOutputImage > Superclass
itk::DiscreteGaussianImageFilter< OuputCPUImageType, OuputCPUImageType > DiscreteGaussianFilterType
itk::Image< InputPixelType, 3 > InputCPUImageType
RegionOfInterestPointerType m_AttenuationMapRegionOfInterest
RegionOfInterestPointerType m_RegionOfInterest
typename TransformType::Pointer TransformPointerType
BoundaryCondition m_BoundsCondition
itk::ResampleImageFilter< OuputCPUImageType, OuputCPUImageType > ResampleImageFilterType
MultpiplyImageFilterPointerType m_MultiplyImageFilter
typename RegionOfInterestFilterType::Pointer RegionOfInterestPointerType
typename InputCPUImageType::PointType PointType
itk::SmartPointer< Self > Pointer
itk::AddImageFilter< OuputCPUImageType, OuputCPUImageType > AddImageFilterType