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);
210 itkGetMacro(Gamma,
float);
214 itkGetMacro(CudaConjugateGradient,
bool);
224 VerifyPreconditions()
const override;
228 GenerateData()
override;
253 GenerateInputRequestedRegion()
override;
255 GenerateOutputInformation()
override;
259 typename TOutputImage::ConstPointer
261 typename TOutputImage::ConstPointer
262 GetInputProjectionStack();
263 typename TWeightsImage::ConstPointer
265 typename TSingleComponentImage::ConstPointer
266 GetLocalRegularizationWeights();
269 template <
typename ImageType,
271 ImageType> * =
nullptr>
272 ConjugateGradientFilterPointer
273 InstantiateCudaConjugateGradientImageFilter();
275 template <
typename ImageType,
277 ImageType> * =
nullptr>
278 ConjugateGradientFilterPointer
279 InstantiateCudaConjugateGradientImageFilter();
300 #ifndef ITK_MANUAL_INSTANTIATION 301 # 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