18 #ifndef __itkGPUDemonsRegistrationFunction_h
19 #define __itkGPUDemonsRegistrationFunction_h
57 template<
class TFixedImage,
class TMovingImage,
class TDisplacementField >
85 typedef typename FixedImageType::IndexType
IndexType;
86 typedef typename FixedImageType::SizeType
SizeType;
91 typedef typename Superclass::DisplacementFieldTypePointer
95 itkStaticConstMacro(ImageDimension,
unsigned
96 int, Superclass::ImageDimension);
129 itkGetOpenCLSourceFromKernelMacro(GPUDemonsRegistrationFunctionKernel);
134 m_MovingImageInterpolator = ptr;
140 return m_MovingImageInterpolator;
144 virtual TimeStepType ComputeGlobalTimeStep(
void *itkNotUsed(GlobalData) )
152 virtual void * GetGlobalDataPointer()
const
163 virtual void ReleaseGlobalDataPointer(
void *GlobalData)
const;
167 virtual void GPUAllocateMetricData(
unsigned int numPixels);
171 virtual void GPUReleaseMetricData();
174 virtual void InitializeIteration();
178 virtual PixelType ComputeUpdate(
const NeighborhoodType & neighborhood,
180 const FloatOffsetType & offset =
181 FloatOffsetType(0.0) );
183 virtual void GPUComputeUpdate(
const DisplacementFieldTypePointer output,
184 DisplacementFieldTypePointer update,
190 virtual double GetMetric()
const
196 virtual double GetRMSChange()
const
204 virtual void SetUseMovingImageGradient(
bool flag)
206 m_UseMovingImageGradient = flag;
208 virtual bool GetUseMovingImageGradient()
const
210 return m_UseMovingImageGradient;
218 virtual void SetIntensityDifferenceThreshold(
double);
220 virtual double GetIntensityDifferenceThreshold()
const;
226 void PrintSelf(std::ostream & os,
Indent indent)
const;
245 void operator=(
const Self &);
291 #ifndef ITK_MANUAL_INSTANTIATION
292 #include "itkGPUDemonsRegistrationFunction.hxx"