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();
176 typedef typename std::conditional<std::is_same<ProjectionStackType, CPUProjectionStackType>::value,
179 typedef typename std::conditional<std::is_same<ProjectionStackType, CPUProjectionStackType>::value,
182 typedef typename std::conditional<std::is_same<ProjectionStackType, CPUProjectionStackType>::value,
185 typedef typename std::conditional<std::is_same<ProjectionStackType, CPUProjectionStackType>::value,
188 typedef typename std::conditional<std::is_same<ProjectionStackType, CPUProjectionStackType>::value,
212 itkGetMacro(UseCudaInterpolation,
bool);
214 itkGetMacro(UseCudaSplat,
bool);
216 itkGetMacro(UseCudaSources,
bool);
226 SetSignal(
const std::vector<double> signal);
230 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
239 VerifyPreconditions()
const override;
243 GenerateOutputInformation()
override;
247 GenerateInputRequestedRegion()
override;
251 GenerateData()
override;
255 InitializeConstantSources();
279 #ifndef ITK_MANUAL_INSTANTIATION 280 # 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
std::conditional< std::is_same< ProjectionStackType, CPUProjectionStackType >::value, DisplacedDetectorImageFilter< ProjectionStackType >, CudaDisplacedDetectorImageFilter >::type DisplacedDetectorFilterType
Generate an n-dimensional image with constant pixel values.
std::conditional< std::is_same< ProjectionStackType, CPUProjectionStackType >::value, ConstantVolumeSourceType, CudaConstantVolumeSource >::type CudaConstantVolumeSourceType
ConstantVolumeSourceType::Pointer m_ConstantVolumeSource1
ForwardProjectionFilterType::Pointer m_ForwardProjectionFilter
bool m_DisableDisplacedDetectorFilter
Weigting for displaced detectors.
bool m_UseCudaInterpolation
Implements the InterpolateWithKnownWeightsImageFilter on GPU.
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
std::conditional< std::is_same< ProjectionStackType, CPUProjectionStackType >::value, InterpolationFilterType, CudaInterpolateImageFilter >::type CudaInterpolateImageFilterType
A 4D constant image source on GPU.
Cuda version of rtk::DisplacedDetectorImageFilter.
SplatFilterType::Pointer m_SplatFilter
std::conditional< std::is_same< ProjectionStackType, CPUProjectionStackType >::value, ConstantVolumeSeriesSourceType, CudaConstantVolumeSeriesSource >::type CudaConstantVolumeSeriesSourceType
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
std::conditional< std::is_same< ProjectionStackType, CPUProjectionStackType >::value, SplatFilterType, CudaSplatImageFilter >::type CudaSplatImageFilterType
ProjectionStackType VolumeType
A 3D constant image source on GPU.
ConstantProjectionStackSourceType::Pointer m_ConstantProjectionStackSource