18 #ifndef __itkGPUDemonsRegistrationFilter_h
19 #define __itkGPUDemonsRegistrationFilter_h
67 template<
class TFixedImage,
class TMovingImage,
class TDisplacementField,
72 TDisplacementField, TParentImageFilter >
123 virtual double GetMetric()
const;
127 itkSetMacro(UseMovingImageGradient,
bool);
128 itkGetConstMacro(UseMovingImageGradient,
bool);
129 itkBooleanMacro(UseMovingImageGradient);
136 virtual void SetIntensityDifferenceThreshold(
double);
138 virtual double GetIntensityDifferenceThreshold()
const;
144 void PrintSelf(std::ostream & os,
Indent indent)
const;
147 virtual void InitializeIteration();
150 virtual void ApplyUpdate(
const TimeStepType& dt);
154 void operator=(
const Self &);
177 return "A Factory for GPUDemonsRegistrationFilter";
182 itkFactorylessNewMacro(
Self);
199 #define OverrideDemonsRegistrationFilterTypeMacro(ipt,opt,dm) \
201 typedef GPUImage<ipt,dm> InputImageType; \
202 typedef GPUImage<opt,dm> OutputImageType; \
203 typedef Vector< float, dm > VectorPixelType; \
204 typedef GPUImage< VectorPixelType, dm > DisplacementFieldType; \
205 this->RegisterOverride( \
206 typeid(DemonsRegistrationFilter<InputImageType,OutputImageType,DisplacementFieldType>).name(), \
207 typeid(GPUDemonsRegistrationFilter<InputImageType,OutputImageType,DisplacementFieldType>).name(), \
208 "GPU Demons Registration Filter Override", \
210 CreateObjectFunction<GPUDemonsRegistrationFilter<InputImageType,OutputImageType,DisplacementFieldType> >::New() ); \
243 #ifndef ITK_MANUAL_INSTANTIATION
244 #include "itkGPUDemonsRegistrationFilter.hxx"