|
| using | BackProjectionType = typename Superclass::BackProjectionType |
| |
| using | CovariantVectorForSpatialGradient = itk::CovariantVector< typename VolumeSeriesType::ValueType, VolumeSeriesType::ImageDimension - 1 > |
| |
| using | CovariantVectorForTemporalGradient = itk::CovariantVector< typename VolumeSeriesType::ValueType, 1 > |
| |
| using | DVFImageType = typename VolumeSeriesType::template RebindImageType< DVFVectorType, VolumeSeriesType::ImageDimension - 1 > |
| |
| using | DVFSequenceImageType = typename VolumeSeriesType::template RebindImageType< DVFVectorType, VolumeSeriesType::ImageDimension > |
| |
| using | DVFVectorType = CovariantVectorForSpatialGradient |
| |
| using | ForwardProjectionType = typename Superclass::ForwardProjectionType |
| |
| using | MotionCompensatedFourDCGFilterType = rtk::MotionCompensatedFourDConjugateGradientConeBeamReconstructionFilter< VolumeSeriesType, ProjectionStackType > |
| |
| using | Pointer = itk::SmartPointer< Self > |
| |
| using | Self = MotionCompensatedFourDROOSTERConeBeamReconstructionFilter |
| |
| using | SpatialGradientImageType = typename VolumeSeriesType::template RebindImageType< CovariantVectorForSpatialGradient, VolumeSeriesType::ImageDimension > |
| |
| using | Superclass = rtk::FourDROOSTERConeBeamReconstructionFilter< VolumeSeriesType, ProjectionStackType > |
| |
| using | TemporalGradientImageType = typename VolumeSeriesType::template RebindImageType< CovariantVectorForTemporalGradient, VolumeSeriesType::ImageDimension > |
| |
| using | VolumeType = ProjectionStackType |
| |
| using | AddFilterType = itk::AddImageFilter< VolumeSeriesType, VolumeSeriesType > |
| |
| using | AverageOutOfROIFilterType = std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, AverageOutOfROIImageFilter< VolumeSeriesType, VolumeType >, CudaAverageOutOfROIImageFilter > |
| |
| using | BackProjectionType = typename Superclass::BackProjectionType |
| |
| using | CovariantVectorForSpatialGradient = itk::CovariantVector< typename VolumeSeriesType::ValueType, VolumeSeriesType::ImageDimension - 1 > |
| |
| using | CovariantVectorForTemporalGradient = itk::CovariantVector< typename VolumeSeriesType::ValueType, 1 > |
| |
| using | CPUVolumeSeriesType = typename itk::Image< typename VolumeSeriesType::PixelType, VolumeSeriesType::ImageDimension > |
| |
| using | DVFImageType = typename VolumeSeriesType::template RebindImageType< DVFVectorType, VolumeSeriesType::ImageDimension - 1 > |
| |
| using | DVFSequenceImageType = typename VolumeSeriesType::template RebindImageType< DVFVectorType, VolumeSeriesType::ImageDimension > |
| |
| using | DVFVectorType = CovariantVectorForSpatialGradient |
| |
| using | ForwardProjectionType = typename Superclass::ForwardProjectionType |
| |
| using | FourDCGFilterType = rtk::FourDConjugateGradientConeBeamReconstructionFilter< VolumeSeriesType, ProjectionStackType > |
| |
| using | Pointer = itk::SmartPointer< Self > |
| |
| using | ResampleFilterType = itk::ResampleImageFilter< VolumeType, VolumeType > |
| |
| using | Self = FourDROOSTERConeBeamReconstructionFilter |
| |
| using | SpatialGradientImageType = typename VolumeSeriesType::template RebindImageType< CovariantVectorForSpatialGradient, VolumeSeriesType::ImageDimension > |
| |
| using | SpatialTVDenoisingFilterType = rtk::TotalVariationDenoiseSequenceImageFilter< VolumeSeriesType > |
| |
| using | SpatialWaveletsDenoisingFilterType = rtk::DaubechiesWaveletsDenoiseSequenceImageFilter< VolumeSeriesType > |
| |
| using | SubtractFilterType = itk::SubtractImageFilter< VolumeSeriesType, VolumeSeriesType > |
| |
| using | Superclass = rtk::IterativeConeBeamReconstructionFilter< VolumeSeriesType, ProjectionStackType > |
| |
| using | TemporalGradientImageType = typename VolumeSeriesType::template RebindImageType< CovariantVectorForTemporalGradient, VolumeSeriesType::ImageDimension > |
| |
| using | TemporalL0DenoisingFilterType = rtk::LastDimensionL0GradientDenoisingImageFilter< VolumeSeriesType > |
| |
| using | TemporalTVDenoisingFilterType = std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, TotalVariationDenoisingBPDQImageFilter< VolumeSeriesType, TemporalGradientImageType >, CudaLastDimensionTVDenoisingImageFilter > |
| |
| using | ThresholdFilterType = itk::ThresholdImageFilter< VolumeSeriesType > |
| |
| using | TNVDenoisingFilterType = rtk::TotalNuclearVariationDenoisingBPDQImageFilter< VolumeSeriesType, SpatialGradientImageType > |
| |
| using | UnwarpSequenceFilterType = rtk::UnwarpSequenceImageFilter< VolumeSeriesType, DVFSequenceImageType, VolumeType, DVFImageType > |
| |
| using | VolumeType = ProjectionStackType |
| |
| using | WarpSequenceFilterType = rtk::WarpSequenceImageFilter< VolumeSeriesType, DVFSequenceImageType, VolumeType, DVFImageType > |
| |
| using | BackProjectionFilterType = rtk::BackProjectionImageFilter< ProjectionStackType, VolumeType > |
| |
| using | BackProjectionPointerType = typename BackProjectionFilterType::Pointer |
| |
| enum | BackProjectionType |
| |
| using | ConstPointer = itk::SmartPointer< const Self > |
| |
| using | ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< VolumeType, ProjectionStackType > |
| |
| using | ForwardProjectionPointerType = typename ForwardProjectionFilterType::Pointer |
| |
| enum | ForwardProjectionType |
| |
| using | Pointer = itk::SmartPointer< Self > |
| |
| using | Self = IterativeConeBeamReconstructionFilter |
| |
| using | Superclass = itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType > |
| |
| using | TClipImageType = itk::Image< double, VolumeType::ImageDimension > |
| |
| using | VolumeType = ProjectionStackType |
| |
|
| using | CPUImageType = typename itk::Image< typename ProjectionStackType::PixelType, ProjectionStackType::ImageDimension > |
| |
| using | EnableCudaScalarAndVectorType = typename std::enable_if< !std::is_same_v< CPUImageType, ImageType > &&std::is_same_v< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float > &&(itk::PixelTraits< typename ImageType::PixelType >::Dimension==1||itk::PixelTraits< typename ImageType::PixelType >::Dimension==2||itk::PixelTraits< typename ImageType::PixelType >::Dimension==3)>::type |
| |
| using | DisableCudaScalarAndVectorType = typename std::enable_if< std::is_same_v< CPUImageType, ImageType >||!std::is_same_v< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >||(itk::PixelTraits< typename ImageType::PixelType >::Dimension !=1 &&itk::PixelTraits< typename ImageType::PixelType >::Dimension !=2 &&itk::PixelTraits< typename ImageType::PixelType >::Dimension !=3)>::type |
| |
| using | EnableCudaScalarType = typename std::enable_if< !std::is_same_v< CPUImageType, ImageType > &&std::is_same_v< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float > &&itk::PixelTraits< typename ImageType::PixelType >::Dimension==1 >::type |
| |
| using | DisableCudaScalarType = typename std::enable_if< std::is_same_v< CPUImageType, ImageType >||!std::is_same_v< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >||itk::PixelTraits< typename ImageType::PixelType >::Dimension !=1 >::type |
| |
| using | EnableVectorType = typename std::enable_if< itk::PixelTraits< typename ImageType::PixelType >::Dimension !=1 >::type |
| |
| using | DisableVectorType = typename std::enable_if< itk::PixelTraits< typename ImageType::PixelType >::Dimension==1 >::type |
| |
| AddFilterType::Pointer | m_AddFilter |
| |
| AverageOutOfROIFilterType::Pointer | m_AverageOutOfROIFilter |
| |
| int | m_CG_iterations |
| |
| bool | m_ComputeInverseWarpingByConjugateGradient |
| |
| bool | m_CudaConjugateGradient |
| |
| bool | m_DimensionsProcessedForTVSpace [VolumeSeriesType::ImageDimension] |
| |
| bool | m_DimensionsProcessedForTVTime [VolumeSeriesType::ImageDimension] |
| |
| bool | m_DisableDisplacedDetectorFilter |
| |
| itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType >::Pointer | m_DownstreamFilter |
| |
| FourDCGFilterType::Pointer | m_FourDCGFilter |
| |
| float | m_GammaTNV |
| |
| float | m_GammaTVSpace |
| |
| float | m_GammaTVTime |
| |
| rtk::ThreeDCircularProjectionGeometry::ConstPointer | m_Geometry |
| |
| WarpSequenceFilterType::Pointer | m_InverseWarp |
| |
| int | m_L0_iterations |
| |
| TemporalL0DenoisingFilterType::Pointer | m_L0DenoisingTime |
| |
| float | m_LambdaL0Time |
| |
| int | m_MainLoop_iterations |
| |
| unsigned int | m_NumberOfLevels |
| |
| unsigned int | m_Order |
| |
| bool | m_PerformL0TemporalDenoising |
| |
| bool | m_PerformMotionMask |
| |
| bool | m_PerformPositivity |
| |
| bool | m_PerformTNVDenoising |
| |
| bool | m_PerformTVSpatialDenoising |
| |
| bool | m_PerformTVTemporalDenoising |
| |
| bool | m_PerformWarping |
| |
| bool | m_PerformWaveletsSpatialDenoising |
| |
| float | m_PhaseShift |
| |
| ThresholdFilterType::Pointer | m_PositivityFilter |
| |
| ResampleFilterType::Pointer | m_ResampleFilter |
| |
| std::vector< double > | m_Signal |
| |
| float | m_SoftThresholdWavelets |
| |
| SubtractFilterType::Pointer | m_SubtractFilter |
| |
| TNVDenoisingFilterType::Pointer | m_TNVDenoising |
| |
| int | m_TV_iterations |
| |
| SpatialTVDenoisingFilterType::Pointer | m_TVDenoisingSpace |
| |
| TemporalTVDenoisingFilterType::Pointer | m_TVDenoisingTime |
| |
| UnwarpSequenceFilterType::Pointer | m_Unwarp |
| |
| bool | m_UseCudaCyclicDeformation |
| |
| bool | m_UseNearestNeighborInterpolationInWarping |
| |
| WarpSequenceFilterType::Pointer | m_Warp |
| |
| SpatialWaveletsDenoisingFilterType::Pointer | m_WaveletsDenoisingSpace |
| |
| double | m_AlphaPSF |
| |
| BackProjectionType | m_CurrentBackProjectionConfiguration |
| |
| ForwardProjectionType | m_CurrentForwardProjectionConfiguration |
| |
| std::default_random_engine | m_DefaultRandomEngine |
| |
| double | m_SigmaZero |
| |
| double | m_StepSize |
| |
template<typename VolumeSeriesType, typename ProjectionStackType>
class rtk::MotionCompensatedFourDROOSTERConeBeamReconstructionFilter< VolumeSeriesType, ProjectionStackType >
Implements Motion Compensated 4D RecOnstructiOn using Spatial and TEmporal Regularization (short MC-ROOSTER)
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.
MC ROOSTER reconstruction consists in performing Motion-Compensated 4D Conjugate Gradient reconstruction, then applying several regularization steps :
- Replacing all negative values by zero
- Averaging along time where no movement is expected
- Applying total variation denoising in space
- Applying wavelets denoising in space
- Applying total variation denoising in time
- Applying gradient's L0 norm denoising in timeWarpSequenceFilterType and starting over as many times as the number of main loop iterations desired.
- Test:
- rtkmotioncompensatedfourdroostertest.cxx
- Author
- Cyril Mory
Definition at line 139 of file rtkMotionCompensatedFourDROOSTERConeBeamReconstructionFilter.h.