|
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 = itk::Image< DVFVectorType, VolumeSeriesType::ImageDimension - 1 > |
|
using | DVFSequenceImageType = itk::Image< 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 = itk::Image< CovariantVectorForSpatialGradient, VolumeSeriesType::ImageDimension > |
|
using | Superclass = rtk::FourDROOSTERConeBeamReconstructionFilter< VolumeSeriesType, ProjectionStackType > |
|
using | TemporalGradientImageType = itk::Image< CovariantVectorForTemporalGradient, VolumeSeriesType::ImageDimension > |
|
using | VolumeType = ProjectionStackType |
|
using | AddFilterType = itk::AddImageFilter< VolumeSeriesType, VolumeSeriesType > |
|
using | AverageOutOfROIFilterType = AverageOutOfROIImageFilter< VolumeSeriesType, VolumeType > |
|
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 = itk::Image< DVFVectorType, VolumeSeriesType::ImageDimension - 1 > |
|
using | DVFSequenceImageType = itk::Image< 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 = itk::Image< 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 = itk::Image< CovariantVectorForTemporalGradient, VolumeSeriesType::ImageDimension > |
|
using | TemporalL0DenoisingFilterType = rtk::LastDimensionL0GradientDenoisingImageFilter< VolumeSeriesType > |
|
using | TemporalTVDenoisingFilterType = TotalVariationDenoisingBPDQImageFilter< VolumeSeriesType, TemporalGradientImageType > |
|
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< CPUImageType, ImageType >::value &&std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value &&(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< CPUImageType, ImageType >::value||!std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value||(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< CPUImageType, ImageType >::value &&std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value &&itk::PixelTraits< typename ImageType::PixelType >::Dimension==1 >::type |
|
using | DisableCudaScalarType = typename std::enable_if< std::is_same< CPUImageType, ImageType >::value||!std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value||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.