19 #ifndef rtkWarpSequenceImageFilter_h 20 #define rtkWarpSequenceImageFilter_h 24 #include <itkExtractImageFilter.h> 25 #include <itkPasteImageFilter.h> 26 #include <itkCastImageFilter.h> 27 #include <itkNearestNeighborInterpolateImageFunction.h> 34 # include <itkWarpImageFilter.h> 89 template <
typename TImageSequence,
90 typename TDVFImageSequence =
91 itk::Image<itk::CovariantVector<
typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>,
92 TImageSequence::ImageDimension>,
93 typename TImage = itk::Image<
typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>,
95 itk::Image<itk::CovariantVector<
typename TImageSequence::ValueType, TImageSequence::ImageDimension - 1>,
96 TImageSequence::ImageDimension - 1>>
104 using Superclass = itk::ImageToImageFilter<TImageSequence, TImageSequence>;
111 using CPUImageType =
typename itk::Image<typename TImage::PixelType, TImage::ImageDimension>;
120 typename std::conditional_t<std::is_same_v<TImage, CPUImageType>,
134 SetDisplacementField(
const TDVFImageSequence * DVFs);
137 typename TDVFImageSequence::Pointer
138 GetDisplacementField();
141 itkGetMacro(ForwardWarp,
bool);
147 itkGetMacro(PhaseShift,
float);
151 itkSetMacro(UseNearestNeighborInterpolationInWarping,
bool);
152 itkGetMacro(UseNearestNeighborInterpolationInWarping,
bool);
157 itkGetMacro(UseCudaCyclicDeformation,
bool);
175 GenerateData()
override;
202 GenerateOutputInformation()
override;
204 GenerateInputRequestedRegion()
override;
213 #ifndef ITK_MANUAL_INSTANTIATION 214 # include "rtkWarpSequenceImageFilter.hxx" typename std::conditional_t< std::is_same_v< TImage, CPUImageType >, CPUWarpFilterType, CudaWarpImageFilter > WarpFilterType
itk::NearestNeighborInterpolateImageFunction< TImage, double > NearestNeighborInterpolatorType
bool m_UseCudaCyclicDeformation
bool m_UseNearestNeighborInterpolationInWarping
typename std::conditional_t< std::is_same_v< TImage, CPUImageType >, CyclicDeformationImageFilter< TDVFImageSequence, TDVFImage >, CudaCyclicDeformationImageFilter > CudaCyclicDeformationImageFilterType
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.
itk::ImageToImageFilter< TImageSequence, TImageSequence > Superclass
typename itk::Image< typename TImage::PixelType, TImage::ImageDimension > CPUImageType
CPUWarpFilterType::Pointer m_WarpFilter
DVFInterpolatorType::Pointer m_DVFInterpolatorFilter
PasteFilterType::Pointer m_PasteFilter
ExtractFilterType::Pointer m_ExtractFilter
TImageSequence::RegionType m_ExtractAndPasteRegion
itk::LinearInterpolateImageFunction< TImage, double > LinearInterpolatorType
#define itkSetMacro(name, type)
Cuda version of the ForwardWarpImageFilter.
Warps an image using splat instead of interpolation.
itk::SmartPointer< Self > Pointer
itk::PasteImageFilter< TImageSequence, TImageSequence > PasteFilterType
void VerifyInputInformation() const override
typename itk::WarpImageFilter< TImage, TImage, TDVFImage > CPUWarpFilterType
itk::SmartPointer< Self > Pointer
ConstantImageSourceType::Pointer m_ConstantSource
itk::ExtractImageFilter< TImageSequence, TImage > ExtractFilterType
typename std::conditional_t< std::is_same_v< TImage, CPUImageType >, ForwardWarpImageFilter< TImage, TImage, TDVFImage >, CudaForwardWarpImageFilter > ForwardWarpFilterType
Cuda version of the WarpImageFilter.
CastFilterType::Pointer m_CastFilter
itk::CastImageFilter< TImage, TImageSequence > CastFilterType