19 #ifndef rtkUnwarpSequenceImageFilter_h 20 #define rtkUnwarpSequenceImageFilter_h 73 template <
typename TImageSequence,
74 typename TDVFImageSequence =
75 itk::Image<itk::CovariantVector<
typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>,
76 TImageSequence::ImageDimension>,
77 typename TImage = itk::Image<
typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>,
79 itk::Image<itk::CovariantVector<
typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>,
80 TImageSequence::ImageDimension - 1>>
88 using Superclass = itk::ImageToImageFilter<TImageSequence, TImageSequence>;
103 using CPUImageSequence =
typename itk::Image<typename TImageSequence::PixelType, TImageSequence::ImageDimension>;
105 using ConstantSourceType =
typename std::conditional_t<std::is_same_v<TImageSequence, CPUImageSequence>,
118 SetDisplacementField(
const TDVFImageSequence * DVFs);
121 typename TDVFImageSequence::Pointer
122 GetDisplacementField();
126 itkGetMacro(NumberOfIterations,
float);
131 itkGetMacro(PhaseShift,
float);
134 itkSetMacro(UseNearestNeighborInterpolationInWarping,
bool);
135 itkGetMacro(UseNearestNeighborInterpolationInWarping,
bool);
138 itkGetMacro(CudaConjugateGradient,
bool);
142 itkGetMacro(UseCudaCyclicDeformation,
bool);
151 GenerateData()
override;
172 GenerateInputRequestedRegion()
override;
174 GenerateOutputInformation()
override;
187 #ifndef ITK_MANUAL_INSTANTIATION 188 # include "rtkUnwarpSequenceImageFilter.hxx" A 3D float conjugate gradient image filter on GPU.
bool m_CudaConjugateGradient
Implements the operator A used in the conjugate gradient unwarp sequence filter.
CGOperatorFilterType::Pointer m_CGOperator
Generate an n-dimensional image with constant pixel values.
Applies an N-D + time Motion Vector Field to an N-D + time sequence of images.
Finds the image sequence that, once warped, equals the input image sequence.
unsigned int m_NumberOfIterations
bool m_UseCudaCyclicDeformation
itk::SmartPointer< Self > Pointer
#define itkSetMacro(name, type)
typename std::conditional_t< std::is_same_v< TImageSequence, CPUImageSequence >, ConjugateGradientFilterType, CudaConjugateGradientImageFilter< TImageSequence > > CudaConjugateGradientType
itk::SmartPointer< Self > Pointer
itk::SmartPointer< Self > Pointer
typename std::conditional_t< std::is_same_v< TImageSequence, CPUImageSequence >, ConstantImageSource< TImageSequence >, CudaConstantVolumeSeriesSource > ConstantSourceType
itk::SmartPointer< Self > Pointer
itk::ImageToImageFilter< TImageSequence, TImageSequence > Superclass
A 4D constant image source on GPU.
ConstantSourceType::Pointer m_ConstantSource
bool m_UseNearestNeighborInterpolationInWarping
typename itk::Image< typename TImageSequence::PixelType, TImageSequence::ImageDimension > CPUImageSequence
ConjugateGradientFilterType::Pointer m_ConjugateGradientFilter
Solves AX = B by conjugate gradient.
void VerifyInputInformation() const override
WarpForwardFilterType::Pointer m_WarpForwardFilter