19 #ifndef rtkADMMTotalVariationConeBeamReconstructionFilter_h 20 #define rtkADMMTotalVariationConeBeamReconstructionFilter_h 134 template <
typename TOutputImage>
164 typename std::conditional<std::is_same<TOutputImage, CPUImageType>::value,
171 typename TOutputImage::ValueType,
172 typename TOutputImage::ValueType,
190 SetBetaForCurrentIteration(
int iter);
194 SetGatingWeights(std::vector<float> weights);
197 itkGetMacro(Alpha,
float);
200 itkGetMacro(Beta,
float);
203 itkGetMacro(AL_iterations,
float);
206 itkGetMacro(CG_iterations,
float);
210 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
219 VerifyPreconditions()
const override;
223 GenerateData()
override;
255 GenerateInputRequestedRegion()
override;
257 GenerateOutputInformation()
override;
277 #ifndef ITK_MANUAL_INSTANTIATION 278 # include "rtkADMMTotalVariationConeBeamReconstructionFilter.hxx" std::conditional< std::is_same< TOutputImage, CPUImageType >::value, itk::Image< VectorPixelType, TOutputImage::ImageDimension >, itk::CudaImage< VectorPixelType, TOutputImage::ImageDimension > >::type GradientImageType
unsigned int m_AL_iterations
ImageGradientFilterType::Pointer m_GradientFilter1
typename BackProjectionFilterType::Pointer BackProjectionFilterPointer
typename ForwardProjectionFilterType::Pointer ForwardProjectionFilterPointer
bool m_DisableDisplacedDetectorFilter
ForwardProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_ForwardProjectionFilter
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilter
SubtractVolumeFilterType::Pointer m_SubtractVolumeFilter
Weigting for displaced detectors.
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
typename Superclass::BackProjectionType BackProjectionType
SubtractGradientsFilterType::Pointer m_SubtractFilter1
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilterForConjugateGradient
std::vector< float > m_GatingWeights
MultiplyVolumeFilterType::Pointer m_MultiplyFilter
ImageDivergenceFilterType::Pointer m_DivergenceFilter
Projection geometry for a source and a 2-D flat panel.
AddGradientsFilterType::Pointer m_AddGradientsFilter
#define itkSetMacro(name, type)
SoftThresholdTVFilterType::Pointer m_SoftThresholdFilter
Computes the gradient of an image using forward difference.
ThreeDCircularProjectionGeometry::Pointer m_Geometry
Implements the operator A used in the conjugate gradient step of ADMM reconstruction with total varia...
Multiplies each (n-1) dimension image by the corresponding element in a vector.
unsigned int m_CG_iterations
SubtractGradientsFilterType::Pointer m_SubtractFilter2
CGOperatorFilterType::Pointer m_CGOperator
ConjugateGradientFilterType::Pointer m_ConjugateGradientFilter
GatingWeightsFilterType::Pointer m_GatingWeightsFilter
Mother class for cone beam reconstruction filters which need runtime selection of their forward and b...
rtk::SoftThresholdTVImageFilter< GradientImageType > SoftThresholdTVFilterType
Computes the Total Variation from a gradient input image (pixels are vectors), soft thresholds it...
void VerifyInputInformation() const override
Computes the backward differences divergence (adjoint of the forward differences gradient) of the inp...
MultiplyGradientFilterType::Pointer m_ZeroMultiplyGradientFilter
Implements the ADMM reconstruction with total variation regularization.
Solves AX = B by conjugate gradient.
typename Superclass::ForwardProjectionType ForwardProjectionType
ImageGradientFilterType::Pointer m_GradientFilter2
MultiplyVolumeFilterType::Pointer m_ZeroMultiplyVolumeFilter