![]() |
RTK
2.7.0
Reconstruction Toolkit
|
#include <rtkADMMTotalVariationConjugateGradientOperator.h>
Inheritance diagram for rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >:
Collaboration diagram for rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >:Public Types | |
| using | BackProjectionFilterPointer = typename BackProjectionFilterType::Pointer |
| using | BackProjectionFilterType = rtk::BackProjectionImageFilter< TOutputImage, TOutputImage > |
| using | DisplacedDetectorFilterType = rtk::DisplacedDetectorImageFilter< TOutputImage > |
| using | DivergenceFilterType = rtk::BackwardDifferenceDivergenceImageFilter< GradientImageType, TOutputImage > |
| using | ForwardProjectionFilterPointer = typename ForwardProjectionFilterType::Pointer |
| using | ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< TOutputImage, TOutputImage > |
| using | GatingWeightsFilterType = rtk::MultiplyByVectorImageFilter< TOutputImage > |
| using | GradientFilterType = ForwardDifferenceGradientImageFilter< TOutputImage, typename TOutputImage::ValueType, typename TOutputImage::ValueType, GradientImageType > |
| using | GradientImageType = typename TOutputImage::template RebindImageType< VectorPixelType, TOutputImage::ImageDimension > |
| using | MultiplyFilterType = itk::MultiplyImageFilter< TOutputImage > |
| using | Pointer = itk::SmartPointer< Self > |
| using | Self = ADMMTotalVariationConjugateGradientOperator |
| using | SubtractFilterType = itk::SubtractImageFilter< TOutputImage > |
| using | Superclass = ConjugateGradientOperator< TOutputImage > |
| using | VectorPixelType = itk::CovariantVector< typename TOutputImage::ValueType, TOutputImage::ImageDimension > |
Public Types inherited from rtk::ConjugateGradientOperator< TOutputImage > | |
| using | Pointer = itk::SmartPointer< Self > |
| using | Self = ConjugateGradientOperator |
| using | Superclass = itk::ImageToImageFilter< TOutputImage, TOutputImage > |
Public Member Functions | |
| virtual ::itk::LightObject::Pointer | CreateAnother () const |
| const char * | GetNameOfClass () const override |
| void | SetBackProjectionFilter (BackProjectionFilterType *_arg) |
| virtual void | SetBeta (float _arg) |
| void | SetForwardProjectionFilter (ForwardProjectionFilterType *_arg) |
| void | SetGatingWeights (std::vector< float > weights) |
| virtual void | SetGeometry (ThreeDCircularProjectionGeometry *_arg) |
| virtual void | SetDisableDisplacedDetectorFilter (bool _arg) |
| virtual bool | GetDisableDisplacedDetectorFilter () |
Public Member Functions inherited from rtk::ConjugateGradientOperator< TOutputImage > | |
| virtual ::itk::LightObject::Pointer | CreateAnother () const |
| const char * | GetNameOfClass () const override |
| virtual void | SetX (const TOutputImage *OutputImage) |
Static Public Member Functions | |
| static Pointer | New () |
Static Public Member Functions inherited from rtk::ConjugateGradientOperator< TOutputImage > | |
| static Pointer | New () |
Protected Member Functions | |
| ADMMTotalVariationConjugateGradientOperator () | |
| void | GenerateData () override |
| void | VerifyInputInformation () const override |
| void | VerifyPreconditions () const override |
| ~ADMMTotalVariationConjugateGradientOperator () override=default | |
| void | GenerateInputRequestedRegion () override |
| void | GenerateOutputInformation () override |
Protected Member Functions inherited from rtk::ConjugateGradientOperator< TOutputImage > | |
| ConjugateGradientOperator () | |
| ~ConjugateGradientOperator () override=default | |
Protected Attributes | |
| BackProjectionFilterPointer | m_BackProjectionFilter |
| float | m_Beta |
| bool | m_DisableDisplacedDetectorFilter |
| DisplacedDetectorFilterType::Pointer | m_DisplacedDetectorFilter |
| DivergenceFilterType::Pointer | m_DivergenceFilter |
| ForwardProjectionFilterPointer | m_ForwardProjectionFilter |
| std::vector< float > | m_GatingWeights |
| GatingWeightsFilterType::Pointer | m_GatingWeightsFilter |
| ThreeDCircularProjectionGeometry::Pointer | m_Geometry |
| GradientFilterType::Pointer | m_GradientFilter |
| bool | m_IsGated |
| MultiplyFilterType::Pointer | m_MultiplyFilter |
| SubtractFilterType::Pointer | m_SubtractFilter |
| MultiplyFilterType::Pointer | m_ZeroMultiplyProjectionFilter |
| MultiplyFilterType::Pointer | m_ZeroMultiplyVolumeFilter |
Implements the operator A used in the conjugate gradient step of ADMM reconstruction with total variation regularization.
This filter implements the operator A used in the conjugate gradient step of a reconstruction method based on compressed sensing. The method attempts to find the f that minimizes || sqrt(D) (Rf -p) ||_2^2 + alpha * TV(f), with R the forward projection operator, p the measured projections, D the displaced detector weighting matrix, and TV the total variation. Details on the method and the calculations can be found in
Mory, C., B. Zhang, V. Auvray, M. Grass, D. Schafer, F. Peyrin, S. Rit, P. Douek, and L. Boussel. "ECG-Gated C-Arm Computed Tomography Using L1 Regularization." In Proceedings of the 20th European Signal Processing Conference (EUSIPCO), 2728-32, 2012.
This filter takes in input f and outputs R_t D R f - beta div(grad(f)).
Definition at line 104 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::BackProjectionFilterPointer = typename BackProjectionFilterType::Pointer |
Definition at line 121 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::BackProjectionFilterType = rtk::BackProjectionImageFilter<TOutputImage, TOutputImage> |
Definition at line 120 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::DisplacedDetectorFilterType = rtk::DisplacedDetectorImageFilter<TOutputImage> |
Definition at line 138 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::DivergenceFilterType = rtk::BackwardDifferenceDivergenceImageFilter<GradientImageType, TOutputImage> |
Definition at line 137 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::ForwardProjectionFilterPointer = typename ForwardProjectionFilterType::Pointer |
Definition at line 124 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter<TOutputImage, TOutputImage> |
Definition at line 123 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::GatingWeightsFilterType = rtk::MultiplyByVectorImageFilter<TOutputImage> |
Definition at line 139 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::GradientFilterType = ForwardDifferenceGradientImageFilter<TOutputImage, typename TOutputImage::ValueType, typename TOutputImage::ValueType, GradientImageType> |
Definition at line 136 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::GradientImageType = typename TOutputImage::template RebindImageType<VectorPixelType, TOutputImage::ImageDimension> |
Definition at line 131 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::MultiplyFilterType = itk::MultiplyImageFilter<TOutputImage> |
Definition at line 126 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::Pointer = itk::SmartPointer<Self> |
Definition at line 112 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::Self = ADMMTotalVariationConjugateGradientOperator |
Standard class type alias.
Definition at line 110 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::SubtractFilterType = itk::SubtractImageFilter<TOutputImage> |
Definition at line 127 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::Superclass = ConjugateGradientOperator<TOutputImage> |
Definition at line 111 of file rtkADMMTotalVariationConjugateGradientOperator.h.
| using rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::VectorPixelType = itk::CovariantVector<typename TOutputImage::ValueType, TOutputImage::ImageDimension> |
Definition at line 129 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
|
overrideprotecteddefault |
| virtual::itk::LightObject::Pointer rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::CreateAnother | ( | ) | const |
|
overrideprotected |
Does the real work.
|
overrideprotected |
The volume and the projections must have different requested regions
|
overrideprotected |
The volume and the projections must have different requested regions
|
virtual |
Set / Get whether the displaced detector filter should be disabled
|
override |
Run-time type information (and related methods).
|
static |
Method for creation through the object factory.
| void rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::SetBackProjectionFilter | ( | BackProjectionFilterType * | _arg | ) |
Set the backprojection filter
|
virtual |
Set the regularization parameter
|
virtual |
Set / Get whether the displaced detector filter should be disabled
| void rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::SetForwardProjectionFilter | ( | ForwardProjectionFilterType * | _arg | ) |
Set the forward projection filter
| void rtk::ADMMTotalVariationConjugateGradientOperator< TOutputImage >::SetGatingWeights | ( | std::vector< float > | weights | ) |
In the case of a gated reconstruction, set the gating weights
|
virtual |
Pass the geometry to all filters needing it
|
inlineoverrideprotected |
When the inputs have the same type, ITK checks whether they occupy the same physical space or not. Obviously they dont, so we have to remove this check
Definition at line 202 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
overrideprotected |
Checks that inputs are correctly set.
|
protected |
Member pointers to the filters used internally (for convenience)
Definition at line 177 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 190 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 191 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 186 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 184 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 178 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 196 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 187 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 189 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 185 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Have gating weights been set ? If so, apply them, otherwise ignore the gating weights filter
Definition at line 195 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 181 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 180 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 182 of file rtkADMMTotalVariationConjugateGradientOperator.h.
|
protected |
Definition at line 183 of file rtkADMMTotalVariationConjugateGradientOperator.h.
1.8.14