18 #ifndef rtkFourDROOSTERConeBeamReconstructionFilter_h 19 #define rtkFourDROOSTERConeBeamReconstructionFilter_h 206 template <
typename VolumeSeriesType,
typename ProjectionStackType>
227 VolumeSeriesType::ImageDimension>;
230 VolumeSeriesType::ImageDimension>;
233 typename VolumeSeriesType::template RebindImageType<DVFVectorType, VolumeSeriesType::ImageDimension>;
235 typename VolumeSeriesType::template RebindImageType<
DVFVectorType, VolumeSeriesType::ImageDimension - 1>;
242 std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
259 SetInputVolumeSeries(
const VolumeSeriesType * VolumeSeries);
260 typename VolumeSeriesType::ConstPointer
261 GetInputVolumeSeries();
266 SetInputProjectionStack(
const ProjectionStackType * Projection);
267 typename ProjectionStackType::Pointer
268 GetInputProjectionStack();
274 typename VolumeType::Pointer
283 typename DVFSequenceImageType::Pointer
284 GetDisplacementField();
285 typename DVFSequenceImageType::Pointer
286 GetInverseDisplacementField();
314 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
319 itkGetMacro(PerformPositivity,
bool);
321 itkGetMacro(PerformMotionMask,
bool);
323 itkGetMacro(PerformTVSpatialDenoising,
bool);
324 itkSetMacro(PerformWaveletsSpatialDenoising,
bool);
325 itkGetMacro(PerformWaveletsSpatialDenoising,
bool);
327 itkGetMacro(PerformWarping,
bool);
329 itkGetMacro(PerformTVTemporalDenoising,
bool);
331 itkGetMacro(PerformL0TemporalDenoising,
bool);
333 itkGetMacro(PerformTNVDenoising,
bool);
334 itkSetMacro(ComputeInverseWarpingByConjugateGradient,
bool);
335 itkGetMacro(ComputeInverseWarpingByConjugateGradient,
bool);
336 itkSetMacro(UseNearestNeighborInterpolationInWarping,
bool);
337 itkGetMacro(UseNearestNeighborInterpolationInWarping,
bool);
338 itkGetMacro(CudaConjugateGradient,
bool);
343 itkGetMacro(UseCudaCyclicDeformation,
bool);
348 itkGetMacro(GammaTVSpace,
float);
350 itkGetMacro(GammaTVTime,
float);
352 itkGetMacro(GammaTNV,
float);
354 itkGetMacro(LambdaL0Time,
float);
356 itkGetMacro(SoftThresholdWavelets,
float);
358 itkGetMacro(PhaseShift,
float);
361 itkGetMacro(NumberOfLevels,
unsigned int);
366 itkGetMacro(Order,
unsigned int);
372 itkGetMacro(MainLoop_iterations,
int);
374 itkGetMacro(CG_iterations,
int);
376 itkGetMacro(TV_iterations,
int);
378 itkGetMacro(L0_iterations,
int);
386 SetSignal(
const std::vector<double> signal);
394 VerifyPreconditions()
const override;
398 GenerateData()
override;
401 GenerateOutputInformation()
override;
404 GenerateInputRequestedRegion()
override;
453 bool m_DimensionsProcessedForTVSpace[VolumeSeriesType::ImageDimension];
454 bool m_DimensionsProcessedForTVTime[VolumeSeriesType::ImageDimension];
477 #ifndef ITK_MANUAL_INSTANTIATION 478 # include "rtkFourDROOSTERConeBeamReconstructionFilter.hxx"
Performs total nuclear variation denoising.
void VerifyInputInformation() const override
typename VolumeSeriesType::template RebindImageType< CovariantVectorForTemporalGradient, VolumeSeriesType::ImageDimension > TemporalGradientImageType
rtk::ThreeDCircularProjectionGeometry::ConstPointer m_Geometry
ThresholdFilterType::Pointer m_PositivityFilter
std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, TotalVariationDenoisingBPDQImageFilter< VolumeSeriesType, TemporalGradientImageType >, CudaLastDimensionTVDenoisingImageFilter > TemporalTVDenoisingFilterType
int m_MainLoop_iterations
Denoises along the last dimension, reducing the L0 norm of the gradient.
TemporalL0DenoisingFilterType::Pointer m_L0DenoisingTime
bool m_UseNearestNeighborInterpolationInWarping
typename Superclass::ForwardProjectionType ForwardProjectionType
typename Superclass::BackProjectionType BackProjectionType
typename itk::Image< typename VolumeSeriesType::PixelType, VolumeSeriesType::ImageDimension > CPUVolumeSeriesType
Applies an N-D + time Motion Vector Field to an N-D + time sequence of images.
TNVDenoisingFilterType::Pointer m_TNVDenoising
ResampleFilterType::Pointer m_ResampleFilter
Finds the image sequence that, once warped, equals the input image sequence.
Applies 3D total variation denoising to a 3D + time sequence of images.
Applies a total variation denoising, only alm_SingularValueThresholdFilterong the dimensions specifie...
bool m_PerformTNVDenoising
TemporalTVDenoisingFilterType::Pointer m_TVDenoisingTime
Implements 4D RecOnstructiOn using Spatial and TEmporal Regularization (short 4D ROOSTER) ...
Projection geometry for a source and a 2-D flat panel.
SpatialTVDenoisingFilterType::Pointer m_TVDenoisingSpace
typename VolumeSeriesType::template RebindImageType< DVFVectorType, VolumeSeriesType::ImageDimension - 1 > DVFImageType
FourDCGFilterType::Pointer m_FourDCGFilter
#define itkSetMacro(name, type)
UnwarpSequenceFilterType::Pointer m_Unwarp
bool m_CudaConjugateGradient
Implements the AverageOutOfROIImageFilter on GPU.
bool m_PerformL0TemporalDenoising
bool m_PerformTVTemporalDenoising
std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, AverageOutOfROIImageFilter< VolumeSeriesType, VolumeType >, CudaAverageOutOfROIImageFilter > AverageOutOfROIFilterType
WarpSequenceFilterType::Pointer m_Warp
bool m_DisableDisplacedDetectorFilter
Applies 3D Daubechies wavelets denoising to a 3D + time sequence of images.
std::vector< double > m_Signal
bool m_UseCudaCyclicDeformation
ProjectionStackType VolumeType
SpatialWaveletsDenoisingFilterType::Pointer m_WaveletsDenoisingSpace
unsigned int m_NumberOfLevels
bool m_PerformTVSpatialDenoising
typename VolumeSeriesType::template RebindImageType< CovariantVectorForSpatialGradient, VolumeSeriesType::ImageDimension > SpatialGradientImageType
SubtractFilterType::Pointer m_SubtractFilter
AddFilterType::Pointer m_AddFilter
Mother class for cone beam reconstruction filters which need runtime selection of their forward and b...
WarpSequenceFilterType::Pointer m_InverseWarp
itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType >::Pointer m_DownstreamFilter
AverageOutOfROIFilterType::Pointer m_AverageOutOfROIFilter
typename VolumeSeriesType::template RebindImageType< DVFVectorType, VolumeSeriesType::ImageDimension > DVFSequenceImageType
Implements the TotalVariationDenoisingBPDQImageFilter on GPU for a specific case : denoising only alo...
Implements part of the 4D reconstruction by conjugate gradient.
bool m_ComputeInverseWarpingByConjugateGradient
float m_SoftThresholdWavelets
Averages along the last dimension if the pixel is outside ROI.
bool m_PerformWaveletsSpatialDenoising