18 #ifndef rtkFourDReconstructionConjugateGradientOperator_h 19 #define rtkFourDReconstructionConjugateGradientOperator_h 129 template <
typename VolumeSeriesType,
typename ProjectionStackType>
152 SetInputVolumeSeries(
const VolumeSeriesType * VolumeSeries);
153 typename VolumeSeriesType::ConstPointer
154 GetInputVolumeSeries();
159 SetInputProjectionStack(
const ProjectionStackType * Projections);
160 typename ProjectionStackType::ConstPointer
161 GetInputProjectionStack();
177 typename std::conditional_t<std::is_same_v<ProjectionStackType, CPUProjectionStackType>,
181 typename std::conditional_t<std::is_same_v<ProjectionStackType, CPUProjectionStackType>,
187 typename std::conditional_t<std::is_same_v<ProjectionStackType, CPUProjectionStackType>,
191 typename std::conditional_t<std::is_same_v<ProjectionStackType, CPUProjectionStackType>,
215 itkGetMacro(UseCudaInterpolation,
bool);
217 itkGetMacro(UseCudaSplat,
bool);
219 itkGetMacro(UseCudaSources,
bool);
229 SetSignal(
const std::vector<double> signal);
233 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
242 VerifyPreconditions()
const override;
246 GenerateOutputInformation()
override;
250 GenerateInputRequestedRegion()
override;
254 GenerateData()
override;
258 InitializeConstantSources();
282 #ifndef ITK_MANUAL_INSTANTIATION 283 # include "rtkFourDReconstructionConjugateGradientOperator.hxx" DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
Base class for forward projection, i.e. accumulation along x-ray lines.
typename itk::Image< typename ProjectionStackType::PixelType, ProjectionStackType::ImageDimension > CPUProjectionStackType
Generate an n-dimensional image with constant pixel values.
ConstantVolumeSourceType::Pointer m_ConstantVolumeSource1
ForwardProjectionFilterType::Pointer m_ForwardProjectionFilter
bool m_DisableDisplacedDetectorFilter
Weigting for displaced detectors.
bool m_UseCudaInterpolation
Implements the InterpolateWithKnownWeightsImageFilter on GPU.
typename std::conditional_t< std::is_same_v< ProjectionStackType, CPUProjectionStackType >, SplatFilterType, CudaSplatImageFilter > CudaSplatImageFilterType
typename std::conditional_t< std::is_same_v< ProjectionStackType, CPUProjectionStackType >, InterpolationFilterType, CudaInterpolateImageFilter > CudaInterpolateImageFilterType
typename std::conditional_t< std::is_same_v< ProjectionStackType, CPUProjectionStackType >, ConstantVolumeSourceType, CudaConstantVolumeSource > CudaConstantVolumeSourceType
Splats (linearly) a 3D volume into a 3D+t sequence of volumes.
ThreeDCircularProjectionGeometry::ConstPointer m_Geometry
Projection geometry for a source and a 2-D flat panel.
#define itkSetMacro(name, type)
Implements part of the 4D reconstruction by conjugate gradient.
Implements the SplatWithKnownWeightsImageFilter on GPU.
ConstantVolumeSourceType::Pointer m_ConstantVolumeSource2
A 4D constant image source on GPU.
Cuda version of rtk::DisplacedDetectorImageFilter.
SplatFilterType::Pointer m_SplatFilter
BackProjectionFilterType::Pointer m_BackProjectionFilter
std::vector< double > m_Signal
Interpolates (linearly) in a 3D+t sequence of volumes to get a 3D volume.
InterpolationFilterType::Pointer m_InterpolationFilter
itk::Array2D< float > m_Weights
ConstantVolumeSeriesSourceType::Pointer m_ConstantVolumeSeriesSource
ProjectionStackType VolumeType
A 3D constant image source on GPU.
ConstantProjectionStackSourceType::Pointer m_ConstantProjectionStackSource
typename std::conditional_t< std::is_same_v< ProjectionStackType, CPUProjectionStackType >, DisplacedDetectorImageFilter< ProjectionStackType >, CudaDisplacedDetectorImageFilter > DisplacedDetectorFilterType
typename std::conditional_t< std::is_same_v< ProjectionStackType, CPUProjectionStackType >, ConstantVolumeSeriesSourceType, CudaConstantVolumeSeriesSource > CudaConstantVolumeSeriesSourceType