18 #ifndef rtkWarpProjectionStackToFourDImageFilter_h 19 #define rtkWarpProjectionStackToFourDImageFilter_h 84 template <
typename VolumeSeriesType,
typename ProjectionStackType>
105 typename std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
107 itk::CudaImage<VectorForDVF, VolumeSeriesType::ImageDimension>>;
108 using DVFImageType =
typename std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
112 typename std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
117 typename std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
140 itkExceptionMacro(<<
"BackProjection cannot be changed");
145 SetDisplacementField(
const DVFSequenceImageType * DisplacementField);
146 typename DVFSequenceImageType::ConstPointer
147 GetDisplacementField();
151 SetSignal(
const std::vector<double> signal)
override;
155 itkGetMacro(UseCudaCyclicDeformation,
bool);
164 GenerateData()
override;
167 GenerateOutputInformation()
override;
183 #ifndef ITK_MANUAL_INSTANTIATION 184 # include "rtkWarpProjectionStackToFourDImageFilter.hxx"
std::vector< double > m_Signal
void SetBackProjectionFilter(typename Superclass::BackProjectionFilterType *)
typename std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, CPUDVFInterpolatorType, CudaCyclicDeformationImageFilter > CudaCyclicDeformationImageFilterType
CPUDVFInterpolatorType::Pointer m_DVFInterpolatorFilter
typename std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, itk::Image< VectorForDVF, VolumeSeriesType::ImageDimension - 1 >, itk::CudaImage< VectorForDVF, VolumeSeriesType::ImageDimension - 1 > > DVFImageType
Voxel-based backprojection into warped volume implemented in CUDA.
#define itkSetMacro(name, type)
typename std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, BackProjectionImageFilter< VolumeType, VolumeType >, CudaWarpBackProjectionImageFilter > WarpBackProjectionImageFilter
Implements part of the 4D reconstruction by conjugate gradient.
std::vector< double > SignalVectorType
bool m_UseCudaCyclicDeformation
void VerifyInputInformation() const override
typename std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, itk::Image< VectorForDVF, VolumeSeriesType::ImageDimension >, itk::CudaImage< VectorForDVF, VolumeSeriesType::ImageDimension > > DVFSequenceImageType
Back projection part for motion compensated iterative 4D reconstruction.
typename itk::Image< typename VolumeSeriesType::PixelType, VolumeSeriesType::ImageDimension > CPUVolumeSeriesType
ProjectionStackType VolumeType