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);
159 typedef typename std::conditional<std::is_same<TSingleComponentImage, TOutputImage>::value,
164 typedef typename std::conditional<!std::is_same<TOutputImage, CPUOutputImageType>::value &&
165 std::is_same<TSingleComponentImage, TOutputImage>::value,
166 CudaDisplacedDetectorImageFilter,
168 typedef typename std::conditional<!std::is_same<TOutputImage, CPUOutputImageType>::value &&
169 std::is_same<TSingleComponentImage, TOutputImage>::value,
170 CudaConstantVolumeSource,
172 typedef typename std::conditional<!std::is_same<TOutputImage, CPUOutputImageType>::value &&
173 std::is_same<TSingleComponentImage, TOutputImage>::value,
174 CudaConstantVolumeSource,
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
typename OutputImageType::Pointer OutputImagePointer
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.
std::conditional< std::is_same< TSingleComponentImage, TOutputImage >::value, PlainMultiplyFilterType, MatrixVectorMultiplyFilterType >::type MultiplyWithWeightsFilterType
bool m_CudaConjugateGradient
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilterForB
MultiplyFilterType::Pointer m_MultiplyProjectionsFilter
typename ForwardProjectionFilterType::Pointer ForwardProjectionFilterPointer
Weigting for displaced detectors.
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
MultiplyFilterType::Pointer m_MultiplyVolumeFilter
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.
ConjugateGradientFilterPointer m_ConjugateGradientFilter
ForwardProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_ForwardProjectionFilter
CGOperatorFilterType::Pointer m_CGOperator
ThreeDCircularProjectionGeometry::ConstPointer m_Geometry
typename Superclass::ForwardProjectionType ForwardProjectionType