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);
157 typedef typename std::conditional<std::is_same<TSingleComponentImage, TOutputImage>::value,
162 typedef typename std::conditional<!std::is_same<TOutputImage, CPUOutputImageType>::value &&
163 std::is_same<TSingleComponentImage, TOutputImage>::value,
164 CudaDisplacedDetectorImageFilter,
166 typedef typename std::conditional<!std::is_same<TOutputImage, CPUOutputImageType>::value &&
167 std::is_same<TSingleComponentImage, TOutputImage>::value,
168 CudaConstantVolumeSource,
177 SetSupportMask(
const TSingleComponentImage * SupportMask);
178 typename TSingleComponentImage::ConstPointer
186 itkGetMacro(NumberOfIterations,
int);
190 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
196 itkGetMacro(Tikhonov,
float);
198 itkGetMacro(Gamma,
float);
202 itkGetMacro(CudaConjugateGradient,
bool);
212 VerifyPreconditions() ITKv5_CONST override;
216 GenerateData() override;
235 VerifyInputInformation()
const override 241 GenerateInputRequestedRegion()
override;
243 GenerateOutputInformation()
override;
247 typename TOutputImage::ConstPointer
249 typename TOutputImage::ConstPointer
250 GetInputProjectionStack();
251 typename TWeightsImage::ConstPointer
255 template <
typename ImageType,
257 ImageType> * =
nullptr>
258 ConjugateGradientFilterPointer
259 InstantiateCudaConjugateGradientImageFilter();
261 template <
typename ImageType,
263 ImageType> * =
nullptr>
264 ConjugateGradientFilterPointer
265 InstantiateCudaConjugateGradientImageFilter();
286 #ifndef ITK_MANUAL_INSTANTIATION 287 # include "rtkConjugateGradientConeBeamReconstructionFilter.hxx"
typename OutputImageType::Pointer OutputImagePointer
Implements the operator A used in conjugate gradient reconstruction.
Implements ConjugateGradient.
typename itk::Image< typename TOutputImage::PixelType, TOutputImage::ImageDimension > CPUOutputImageType
Generate an n-dimensional image with constant pixel values.
std::conditional< std::is_same< TSingleComponentImage, TOutputImage >::value, PlainMultiplyFilterType, MatrixVectorMultiplyFilterType >::type MultiplyWithWeightsFilterType
bool m_CudaConjugateGradient
typename ForwardProjectionFilterType::Pointer ForwardProjectionFilterPointer
Weigting for displaced detectors.
Multiplies matrix by vector.
typename Superclass::BackProjectionType BackProjectionType
itk::IterationReporter m_IterationReporter
Projection geometry for a source and a 2-D flat panel.
#define itkSetMacro(name, type)
typename ConjugateGradientFilterType::Pointer ConjugateGradientFilterPointer
Mother class for cone beam reconstruction filters which need runtime selection of their forward and b...
bool m_DisableDisplacedDetectorFilter
Solves AX = B by conjugate gradient.
ThreeDCircularProjectionGeometry::ConstPointer m_Geometry
typename Superclass::ForwardProjectionType ForwardProjectionType