19 #ifndef rtkConjugateGradientConeBeamReconstructionFilter_h 20 #define rtkConjugateGradientConeBeamReconstructionFilter_h 109 template <
typename TOutputImage,
typename TSingleComponentImage = TOutputImage,
typename TWeightsImage = TOutputImage>
125 #ifdef itkOverrideGetNameOfClassMacro 134 SetInputVolume(
const TOutputImage * vol);
136 SetInputProjectionStack(
const TOutputImage * projs);
138 SetInputWeights(
const TWeightsImage * weights);
140 SetLocalRegularizationWeights(
const TSingleComponentImage * weights);
164 typedef typename std::conditional<std::is_same<TSingleComponentImage, TOutputImage>::value,
169 typedef typename std::conditional<!std::is_same<TOutputImage, CPUOutputImageType>::value &&
170 std::is_same<TSingleComponentImage, TOutputImage>::value,
171 CudaDisplacedDetectorImageFilter,
173 typedef typename std::conditional<!std::is_same<TOutputImage, CPUOutputImageType>::value &&
174 std::is_same<TSingleComponentImage, TOutputImage>::value,
175 CudaConstantVolumeSource,
177 typedef typename std::conditional<!std::is_same<TOutputImage, CPUOutputImageType>::value &&
178 std::is_same<TSingleComponentImage, TOutputImage>::value,
179 CudaConstantVolumeSource,
189 SetSupportMask(
const TSingleComponentImage * SupportMask);
190 typename TSingleComponentImage::ConstPointer
198 itkGetMacro(NumberOfIterations,
int);
202 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
208 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
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