18 #ifndef rtkWarpFourDToProjectionStackImageFilter_h 19 #define rtkWarpFourDToProjectionStackImageFilter_h 87 template <
typename VolumeSeriesType,
typename ProjectionStackType>
108 typename std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
110 itk::CudaImage<VectorForDVF, VolumeSeriesType::ImageDimension>>;
111 using DVFImageType =
typename std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
121 typename std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
125 typename std::conditional_t<std::is_same_v<VolumeSeriesType, CPUVolumeSeriesType>,
146 itkExceptionMacro(<<
"ForwardProjection cannot be changed");
151 SetDisplacementField(
const DVFSequenceImageType * DisplacementField);
152 typename DVFSequenceImageType::ConstPointer
153 GetDisplacementField();
157 SetSignal(
const std::vector<double> signal)
override;
161 itkGetMacro(UseCudaCyclicDeformation,
bool);
170 GenerateData()
override;
173 GenerateOutputInformation()
override;
176 GenerateInputRequestedRegion()
override;
187 bool m_UseCudaCyclicDeformation{
false };
192 #ifndef ITK_MANUAL_INSTANTIATION 193 # include "rtkWarpFourDToProjectionStackImageFilter.hxx"
typename std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, itk::Image< VectorForDVF, VolumeSeriesType::ImageDimension - 1 >, itk::CudaImage< VectorForDVF, VolumeSeriesType::ImageDimension - 1 > > DVFImageType
typename itk::Image< typename VolumeSeriesType::PixelType, VolumeSeriesType::ImageDimension > CPUVolumeSeriesType
typename std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, JosephForwardProjectionImageFilter< ProjectionStackType, ProjectionStackType >, CudaWarpForwardProjectionImageFilter > WarpForwardProjectionImageFilterType
std::vector< double > SignalVectorType
typename std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, itk::Image< VectorForDVF, VolumeSeriesType::ImageDimension >, itk::CudaImage< VectorForDVF, VolumeSeriesType::ImageDimension > > DVFSequenceImageType
void SetForwardProjectionFilter(typename Superclass::ForwardProjectionFilterType *)
typename std::conditional_t< std::is_same_v< VolumeSeriesType, CPUVolumeSeriesType >, CPUDVFInterpolatorType, CudaCyclicDeformationImageFilter > CudaCyclicDeformationImageFilterType
ProjectionStackType VolumeType
#define itkSetMacro(name, type)
CPUDVFInterpolatorType::Pointer m_DVFInterpolatorFilter
void VerifyInputInformation() const override
std::vector< double > m_Signal
Joseph forward projection.
Forward projection part for motion compensated iterative 4D reconstruction.
Implements part of the 4D reconstruction by conjugate gradient.