RTK
2.6.0
Reconstruction Toolkit
|
#include <rtkFourDReconstructionConjugateGradientOperator.h>
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from rtk::ConjugateGradientOperator< VolumeSeriesType > | |
static Pointer | New () |
Protected Member Functions | |
FourDReconstructionConjugateGradientOperator () | |
void | GenerateData () override |
void | GenerateInputRequestedRegion () override |
void | GenerateOutputInformation () override |
void | InitializeConstantSources () |
void | VerifyPreconditions () const override |
~FourDReconstructionConjugateGradientOperator () override=default | |
Protected Member Functions inherited from rtk::ConjugateGradientOperator< VolumeSeriesType > | |
ConjugateGradientOperator () | |
~ConjugateGradientOperator () override=default | |
Implements part of the 4D reconstruction by conjugate gradient.
See the reference paper: "Cardiac C-arm computed tomography using a 3D + time ROI reconstruction method with spatial and temporal regularization" by Mory et al.
4D conjugate gradient reconstruction consists in iteratively minimizing the following cost function:
Sum_over_theta || sqrt(D) (R_theta S_theta f - p_theta) ||_2^2
with
Computing the gradient of this cost function yields:
S_theta^T R_theta^T D R_theta S_theta f - S_theta^T R_theta^T D p_theta
where A^T means the adjoint of operator A.
FourDReconstructionConjugateGradientOperator implements S_theta^T R_theta^T D R_theta S_theta. It can be achieved by a FourDToProjectionStackImageFilter followed by a DisplacedDetectorFilter and ProjectionStackToFourDImageFilter (simple implementation), or by assembling the internal pipelines of these filters, and removing the unnecessary filters in the middle (a PasteImageFilter and an ExtractImageFilter), which results in performance gain and easier GPU memory management. The current implementation is the optimized one.
Definition at line 130 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::BackProjectionFilterType = BackProjectionImageFilter<ProjectionStackType, ProjectionStackType> |
Definition at line 169 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::ConstantProjectionStackSourceType = ConstantImageSource<ProjectionStackType> |
Definition at line 174 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::ConstantVolumeSeriesSourceType = ConstantImageSource<VolumeSeriesType> |
Definition at line 175 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::ConstantVolumeSourceType = ConstantImageSource<VolumeType> |
Definition at line 173 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CPUProjectionStackType = typename itk::Image<typename ProjectionStackType::PixelType, ProjectionStackType::ImageDimension> |
SFINAE type alias, depending on whether a CUDA image is used.
Definition at line 179 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CudaConstantVolumeSeriesSourceType = ConstantVolumeSeriesSourceType |
Definition at line 201 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CudaConstantVolumeSourceType = ConstantVolumeSourceType |
Definition at line 200 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CudaInterpolateImageFilterType = InterpolationFilterType |
Definition at line 198 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::CudaSplatImageFilterType = SplatFilterType |
Definition at line 199 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::DisplacedDetectorFilterType = DisplacedDetectorImageFilter<ProjectionStackType> |
Definition at line 197 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::ForwardProjectionFilterType = ForwardProjectionImageFilter<ProjectionStackType, ProjectionStackType> |
Definition at line 170 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::InterpolationFilterType = InterpolatorWithKnownWeightsImageFilter<VolumeType, VolumeSeriesType> |
Definition at line 171 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::Pointer = itk::SmartPointer<Self> |
Definition at line 139 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::Self = FourDReconstructionConjugateGradientOperator |
Standard class type alias.
Definition at line 137 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SplatFilterType = SplatWithKnownWeightsImageFilter<VolumeSeriesType, VolumeType> |
Definition at line 172 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::Superclass = ConjugateGradientOperator<VolumeSeriesType> |
Definition at line 138 of file rtkFourDReconstructionConjugateGradientOperator.h.
using rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::VolumeType = ProjectionStackType |
Convenient type alias
Definition at line 142 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
|
overrideprotecteddefault |
|
virtual |
Reimplemented from itk::Object.
Reimplemented in rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >.
|
overrideprotectedvirtual |
Does the real work.
Reimplemented from itk::ImageSource< TOutputImage >.
Reimplemented in rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >.
|
overrideprotectedvirtual |
Computes the requested region of input images
Reimplemented from itk::ProcessObject.
|
overrideprotectedvirtual |
Builds the pipeline and computes output information
Reimplemented from itk::ProcessObject.
Reimplemented in rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >.
|
virtual |
Set / Get whether the displaced detector filter should be disabled
ProjectionStackType::ConstPointer rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::GetInputProjectionStack | ( | ) |
Set/Get the stack of projections
VolumeSeriesType::ConstPointer rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::GetInputVolumeSeries | ( | ) |
Set/Get the 4D image to be updated.
|
virtual |
Run-time type information (and related methods).
Reimplemented from rtk::ConjugateGradientOperator< VolumeSeriesType >.
Reimplemented in rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >.
|
virtual |
Use CUDA interpolation/splat filters
|
virtual |
Use CUDA interpolation/splat filters
|
virtual |
Use CUDA interpolation/splat filters
|
virtual |
Macros that take care of implementing the Get and Set methods for Weights.
|
protected |
Initialize the ConstantImageSourceFilter
|
static |
Method for creation through the object factory.
void rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetBackProjectionFilter | ( | BackProjectionFilterType * | _arg | ) |
Pass the backprojection filter to ProjectionStackToFourD
|
virtual |
Set / Get whether the displaced detector filter should be disabled
void rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetForwardProjectionFilter | ( | ForwardProjectionFilterType * | _arg | ) |
Pass the forward projection filter to FourDToProjectionStack
|
virtual |
Pass the geometry to all filters needing it
void rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetInputProjectionStack | ( | const ProjectionStackType * | Projections | ) |
Set/Get the stack of projections
void rtk::FourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >::SetInputVolumeSeries | ( | const VolumeSeriesType * | VolumeSeries | ) |
Set/Get the 4D image to be updated.
|
virtual |
Store the phase signal in a member variable
Reimplemented in rtk::MotionCompensatedFourDReconstructionConjugateGradientOperator< VolumeSeriesType, ProjectionStackType >.
|
virtual |
Use CUDA interpolation/splat filters
|
virtual |
Use CUDA interpolation/splat filters
|
virtual |
Use CUDA interpolation/splat filters
|
virtual |
Macros that take care of implementing the Get and Set methods for Weights.
|
overrideprotectedvirtual |
Checks that inputs are correctly set.
Reimplemented from itk::ProcessObject.
|
protected |
Member pointers to the filters used internally (for convenience)
Definition at line 263 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 269 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 270 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 267 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 268 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 279 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 271 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 264 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 273 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 265 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 278 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 266 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 274 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 276 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 275 of file rtkFourDReconstructionConjugateGradientOperator.h.
|
protected |
Definition at line 277 of file rtkFourDReconstructionConjugateGradientOperator.h.