19 #ifndef rtkADMMTotalVariationConeBeamReconstructionFilter_h 20 #define rtkADMMTotalVariationConeBeamReconstructionFilter_h 22 #include <itkImageToImageFilter.h> 23 #include <itkAddImageFilter.h> 24 #include <itkSubtractImageFilter.h> 25 #include <itkMultiplyImageFilter.h> 134 template <
typename TOutputImage>
160 using VectorPixelType = itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension>;
162 typename TOutputImage::template RebindImageType<VectorPixelType, TOutputImage::ImageDimension>;
164 typename TOutputImage::ValueType,
165 typename TOutputImage::ValueType,
183 SetBetaForCurrentIteration(
int iter);
187 SetGatingWeights(std::vector<float> weights);
190 itkGetMacro(Alpha,
float);
193 itkGetMacro(Beta,
float);
196 itkGetMacro(AL_iterations,
float);
199 itkGetMacro(CG_iterations,
float);
203 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
212 VerifyPreconditions()
const override;
216 GenerateData()
override;
248 GenerateInputRequestedRegion()
override;
250 GenerateOutputInformation()
override;
270 #ifndef ITK_MANUAL_INSTANTIATION 271 # include "rtkADMMTotalVariationConeBeamReconstructionFilter.hxx" itk::SubtractImageFilter< TOutputImage > SubtractVolumeFilterType
unsigned int m_AL_iterations
ImageGradientFilterType::Pointer m_GradientFilter1
typename BackProjectionFilterType::Pointer BackProjectionFilterPointer
itk::SubtractImageFilter< GradientImageType > SubtractGradientsFilterType
typename ForwardProjectionFilterType::Pointer ForwardProjectionFilterPointer
itk::MultiplyImageFilter< GradientImageType > MultiplyGradientFilterType
bool m_DisableDisplacedDetectorFilter
itk::SmartPointer< Self > Pointer
itk::SmartPointer< Self > Pointer
typename TOutputImage::template RebindImageType< VectorPixelType, TOutputImage::ImageDimension > GradientImageType
ForwardProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_ForwardProjectionFilter
itk::CovariantVector< typename TOutputImage::ValueType, TOutputImage::ImageDimension > VectorPixelType
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilter
SubtractVolumeFilterType::Pointer m_SubtractVolumeFilter
Weigting for displaced detectors.
itk::SmartPointer< Self > Pointer
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
typename Superclass::BackProjectionType BackProjectionType
itk::AddImageFilter< GradientImageType > AddGradientsFilterType
SubtractGradientsFilterType::Pointer m_SubtractFilter1
BackProjectionImageFilter< TOutputImage, TOutputImage >::Pointer m_BackProjectionFilterForConjugateGradient
std::vector< float > m_GatingWeights
itk::SmartPointer< Self > Pointer
MultiplyVolumeFilterType::Pointer m_MultiplyFilter
ImageDivergenceFilterType::Pointer m_DivergenceFilter
itk::SmartPointer< Self > Pointer
Projection geometry for a source and a 2-D flat panel.
AddGradientsFilterType::Pointer m_AddGradientsFilter
itk::SmartPointer< Self > Pointer
#define itkSetMacro(name, type)
SoftThresholdTVFilterType::Pointer m_SoftThresholdFilter
Computes the gradient of an image using forward difference.
ThreeDCircularProjectionGeometry::Pointer m_Geometry
itk::SmartPointer< Self > Pointer
itk::SmartPointer< Self > Pointer
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...
Computes the Total Variation from a gradient input image (pixels are vectors), soft thresholds it...
void VerifyInputInformation() const override
itk::SmartPointer< Self > Pointer
itk::MultiplyImageFilter< TOutputImage > MultiplyVolumeFilterType
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.
itk::SmartPointer< Self > Pointer
itk::SmartPointer< Self > Pointer
typename Superclass::ForwardProjectionType ForwardProjectionType
ImageGradientFilterType::Pointer m_GradientFilter2
MultiplyVolumeFilterType::Pointer m_ZeroMultiplyVolumeFilter