19 #ifndef rtkConjugateGradientConeBeamReconstructionFilter_h 20 #define rtkConjugateGradientConeBeamReconstructionFilter_h 109 template <
typename TOutputImage,
typename TSingleComponentImage = TOutputImage,
typename TWeightsImage = TOutputImage>
129 SetInputVolume(
const TOutputImage * vol);
131 SetInputProjectionStack(
const TOutputImage * projs);
133 SetInputWeights(
const TWeightsImage * weights);
135 SetLocalRegularizationWeights(
const TSingleComponentImage * weights);
165 std::is_same_v<TSingleComponentImage, TOutputImage>,
168 using ConstantImageSourceType =
typename std::conditional_t<!std::is_same_v<TOutputImage, CPUOutputImageType> &&
169 std::is_same_v<TSingleComponentImage, TOutputImage>,
173 std::is_same_v<TSingleComponentImage, TOutputImage>,
184 SetSupportMask(
const TSingleComponentImage * SupportMask);
185 typename TSingleComponentImage::ConstPointer
193 itkGetMacro(NumberOfIterations,
int);
197 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
203 itkGetMacro(Tikhonov,
float);
205 itkGetMacro(Gamma,
float);
209 itkGetMacro(CudaConjugateGradient,
bool);
219 VerifyPreconditions()
const override;
223 GenerateData()
override;
248 GenerateInputRequestedRegion()
override;
250 GenerateOutputInformation()
override;
254 typename TOutputImage::ConstPointer
256 typename TOutputImage::ConstPointer
257 GetInputProjectionStack();
258 typename TWeightsImage::ConstPointer
260 typename TSingleComponentImage::ConstPointer
261 GetLocalRegularizationWeights();
264 template <
typename ImageType,
266 ImageType> * =
nullptr>
267 ConjugateGradientFilterPointer
268 InstantiateCudaConjugateGradientImageFilter();
270 template <
typename ImageType,
272 ImageType> * =
nullptr>
273 ConjugateGradientFilterPointer
274 InstantiateCudaConjugateGradientImageFilter();
295 #ifndef ITK_MANUAL_INSTANTIATION 296 # include "rtkConjugateGradientConeBeamReconstructionFilter.hxx"
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
Implements the operator A used in conjugate gradient reconstruction.
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilter
Implements ConjugateGradient.
typename itk::Image< typename TOutputImage::PixelType, TOutputImage::ImageDimension > CPUOutputImageType
Generate an n-dimensional image with constant pixel values.
bool m_CudaConjugateGradient
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilterForB
typename std::conditional_t<!std::is_same_v< TOutputImage, CPUOutputImageType > &&std::is_same_v< TSingleComponentImage, TOutputImage >, CudaConstantVolumeSource, ConstantImageSource< TOutputImage > > ConstantImageSourceType
MultiplyFilterType::Pointer m_MultiplyProjectionsFilter
typename ForwardProjectionFilterType::Pointer ForwardProjectionFilterPointer
Weigting for displaced detectors.
typename std::conditional_t< std::is_same_v< TSingleComponentImage, TOutputImage >, PlainMultiplyFilterType, MatrixVectorMultiplyFilterType > MultiplyWithWeightsFilterType
Multiplies matrix by vector.
typename Superclass::BackProjectionType BackProjectionType
ConstantImageSourceType::Pointer m_ConstantVolumeSource
itk::IterationReporter m_IterationReporter
Projection geometry for a source and a 2-D flat panel.
#define itkSetMacro(name, type)
typename ConjugateGradientFilterType::Pointer ConjugateGradientFilterPointer
void VerifyInputInformation() const override
typename std::conditional_t<!std::is_same_v< TOutputImage, CPUOutputImageType > &&std::is_same_v< TSingleComponentImage, TOutputImage >, CudaConstantVolumeSource, ConstantImageSource< TWeightsImage > > ConstantWeightSourceType
MultiplyFilterType::Pointer m_MultiplyVolumeFilter
typename std::conditional_t<!std::is_same_v< TOutputImage, CPUOutputImageType > &&std::is_same_v< TSingleComponentImage, TOutputImage >, CudaDisplacedDetectorImageFilter, DisplacedDetectorImageFilter< TWeightsImage > > DisplacedDetectorFilterType
Cuda version of rtk::DisplacedDetectorImageFilter.
Mother class for cone beam reconstruction filters which need runtime selection of their forward and b...
MultiplyFilterType::Pointer m_MultiplyOutputFilter
bool m_DisableDisplacedDetectorFilter
MultiplyWithWeightsFilterType::Pointer m_MultiplyWithWeightsFilter
Solves AX = B by conjugate gradient.
typename TOutputImage::Pointer OutputImagePointer
ConjugateGradientFilterPointer m_ConjugateGradientFilter
A 3D constant image source on GPU.
ForwardProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_ForwardProjectionFilter
CGOperatorFilterType::Pointer m_CGOperator
ThreeDCircularProjectionGeometry::ConstPointer m_Geometry
typename Superclass::ForwardProjectionType ForwardProjectionType