18 #ifndef rtkWarpFourDToProjectionStackImageFilter_h 19 #define rtkWarpFourDToProjectionStackImageFilter_h 87 template <
typename VolumeSeriesType,
typename ProjectionStackType>
107 typedef typename std::conditional<std::is_same<VolumeSeriesType, CPUVolumeSeriesType>::value,
109 itk::CudaImage<VectorForDVF, VolumeSeriesType::ImageDimension>>::type
112 typename std::conditional<std::is_same<VolumeSeriesType, CPUVolumeSeriesType>::value,
121 typedef typename std::conditional<std::is_same<VolumeSeriesType, CPUVolumeSeriesType>::value,
124 typedef typename std::conditional<std::is_same<VolumeSeriesType, CPUVolumeSeriesType>::value,
145 itkExceptionMacro(<<
"ForwardProjection cannot be changed");
150 SetDisplacementField(
const DVFSequenceImageType * DisplacementField);
151 typename DVFSequenceImageType::ConstPointer
152 GetDisplacementField();
156 SetSignal(
const std::vector<double> signal)
override;
160 itkGetMacro(UseCudaCyclicDeformation,
bool);
169 GenerateData()
override;
172 GenerateOutputInformation()
override;
175 GenerateInputRequestedRegion()
override;
186 bool m_UseCudaCyclicDeformation{
false };
191 #ifndef ITK_MANUAL_INSTANTIATION 192 # include "rtkWarpFourDToProjectionStackImageFilter.hxx" typename itk::Image< typename VolumeSeriesType::PixelType, VolumeSeriesType::ImageDimension > CPUVolumeSeriesType
typename itk::Image< VectorForDVF, VolumeSeriesType::ImageDimension - 1 > DVFImageType
std::vector< double > SignalVectorType
void SetForwardProjectionFilter(typename Superclass::ForwardProjectionFilterType *)
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.
typename itk::Image< VectorForDVF, VolumeSeriesType::ImageDimension > DVFSequenceImageType