18#ifndef __itkGPUResampleImageFilter_h
19#define __itkGPUResampleImageFilter_h
21#include "itkResampleImageFilter.h"
46template<
typename TInputImage,
typename TOutputImage,
typename TInterpolatorPrecisionType =
float >
49 ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType > >
55 typedef ResampleImageFilter<
70 TInputImage::ImageDimension );
72 TOutputImage::ImageDimension );
87 typedef typename CPUSuperclass::SizeType
SizeType;
88 typedef typename CPUSuperclass::IndexType
IndexType;
120 itkSetMacro( RequestedNumberOfSplits,
unsigned int );
121 itkGetConstMacro( RequestedNumberOfSplits,
unsigned int );
127 void PrintSelf( std::ostream & os, Indent indent )
const override;
138 } GPUTransformTypeEnum;
142 const typename GPUOutputImage::Pointer & output );
146 const typename GPUInputImage::Pointer & input,
147 const typename GPUOutputImage::Pointer & output );
151 const std::size_t transformIndex );
155 const typename GPUInputImage::Pointer & input,
156 const typename GPUOutputImage::Pointer & output );
160 const std::size_t transformIndex );
173 const std::size_t & index, std::size_t & kernelId )
const;
177 const std::size_t transformIndex );
197 class TransformKernelHelper
200 std::string m_TransformTypeAsString;
201 std::: size_t m_TransformKernelHandle;
203 TransformKernelHelper()
206 m_TransformTypeAsString =
"Else";
207 m_TransformKernelHandle = 0;
214 std::vector< TransformKernelHelper > m_SupportedTransformKernels;
238#ifndef ITK_MANUAL_INSTANTIATION
239#include "itkGPUResampleImageFilter.hxx"
GPU version of BSplineInterpolateImageFunction.
class to abstract the behaviour of the GPU filters.
Superclass::OutputImagePixelType OutputImagePixelType
Templated n-dimensional image class for the GPU.
Base class fro all GPU interpolators.
GPU version of ResampleImageFilter.
GPUResampleImageFilter(const Self &)
GPUDataManagerPointer m_OutputGPUImageBase
GPUDataManagerPointer m_InputGPUImageBase
GPUImageToImageFilter< TInputImage, TOutputImage, CPUSuperclass > GPUSuperclass
itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
GPUInterpolatorBase * m_InterpolatorBase
std::vcl_size_t m_SourceIndex
CPUSuperclass::SizeType SizeType
bool HasTransform(const GPUTransformTypeEnum type) const
SmartPointer< const Self > ConstPointer
virtual void SetTransform(const TransformType *_arg)
GPUTransformBase * m_TransformBase
std::map< GPUTransformTypeEnum, TransformHandle > TransformsHandle
void SetArgumentsForLoopKernelManager(const typename GPUInputImage::Pointer &input, const typename GPUOutputImage::Pointer &output)
~GPUResampleImageFilter()
std::vcl_size_t m_TransformSourceLoadedIndex
bool m_InterpolatorIsBSpline
const GPUTransformTypeEnum GetTransformType(const int &transformIndex) const
GPUResampleImageFilter Self
GPUDataManager::Pointer GPUDataManagerPointer
void SetArgumentsForPreKernelManager(const typename GPUOutputImage::Pointer &output)
virtual void SetExtrapolator(ExtrapolatorType *_arg)
GPUDataManagerPointer m_FilterParameters
GPUSuperclass::OutputImagePixelType OutputImagePixelType
GPUBSplineInterpolateImageFunction< InputImageType, InterpolatorPrecisionType > GPUBSplineInterpolatorType
GPUBSplineInterpolatorType::GPUDataManagerPointer GPUBSplineInterpolatorDataManagerPointer
GPUBSplineInterpolatorType::GPUCoefficientImagePointer GPUBSplineInterpolatorCoefficientImagePointer
std::vcl_size_t m_FilterPostGPUKernelHandle
TOutputImage OutputImageType
GPUTraits< TInputImage >::Type GPUInputImage
CPUSuperclass::InterpolatorType InterpolatorType
int GetTransformHandle(const GPUTransformTypeEnum type) const
GPUBSplineBaseTransform< InterpolatorPrecisionType, InputImageDimension > GPUBSplineBaseTransformType
GPUCompositeTransformBase< InterpolatorPrecisionType, InputImageDimension > CompositeTransformBaseType
std::vcl_size_t m_FilterPreGPUKernelHandle
void SetBSplineTransformCoefficientsToGPU(const std::vcl_size_t transformIndex)
CPUSuperclass::TransformType TransformType
GPUKernelManagerPointer m_PostKernelManager
void SetArgumentsForPostKernelManager(const typename GPUInputImage::Pointer &input, const typename GPUOutputImage::Pointer &output)
bool GetKernelIdFromTransformId(const std::vcl_size_t &index, std::vcl_size_t &kernelId) const
void PrintSelf(std::ostream &os, Indent indent) const override
CPUSuperclass::IndexType IndexType
GPUBSplineBaseTransformType * GetGPUBSplineBaseTransform(const std::vcl_size_t transformIndex)
SmartPointer< Self > Pointer
itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension)
CPUSuperclass::InputImageRegionType InputImageRegionType
std::vcl_size_t m_InterpolatorSourceLoadedIndex
virtual void GPUGenerateData(void)
void SetTransformParametersForLoopKernelManager(const std::vcl_size_t transformIndex)
GPUDataManagerPointer m_DeformationFieldBuffer
TInterpolatorPrecisionType InterpolatorPrecisionType
std::pair< int, bool > TransformHandle
std::vector< std::string > m_Sources
GPUKernelManagerPointer m_LoopKernelManager
GPUBSplineInterpolatorType::GPUCoefficientImageType GPUBSplineInterpolatorCoefficientImageType
GPUKernelManagerPointer m_PreKernelManager
OpenCLKernelManager::Pointer GPUKernelManagerPointer
unsigned int m_RequestedNumberOfSplits
virtual void SetInterpolator(InterpolatorType *_arg)
GPUTraits< TOutputImage >::Type GPUOutputImage
TransformsHandle m_FilterLoopGPUKernelHandle
CPUSuperclass::OutputImageRegionType OutputImageRegionType
void operator=(const Self &)
CPUSuperclass::ExtrapolatorType ExtrapolatorType
ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType > CPUSuperclass
TInputImage InputImageType
itkGPUKernelClassMacro(GPUBSplineTransformKernel)