18 #ifndef itkGPUDemonsRegistrationFilter_h
19 #define itkGPUDemonsRegistrationFilter_h
67 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField,
72 TDisplacementField, TParentImageFilter >
119 double GetMetric()
const override;
125 void SetIntensityDifferenceThreshold(
double)
override;
127 double GetIntensityDifferenceThreshold()
const override;
133 void PrintSelf(std::ostream & os,
Indent indent)
const override;
136 void InitializeIteration()
override;
139 void ApplyUpdate(
const TimeStepType& dt)
override;
167 return "A Factory for GPUDemonsRegistrationFilter";
172 itkFactorylessNewMacro(
Self);
186 #define OverrideDemonsRegistrationFilterTypeMacro(ipt,opt,dm) \
188 using InputImageType = GPUImage<ipt,dm>; \
189 using OutputImageType = GPUImage<opt,dm>; \
190 using VectorPixelType = Vector< float, dm >; \
191 using DisplacementFieldType = GPUImage< VectorPixelType, dm >; \
192 this->RegisterOverride( \
193 typeid(DemonsRegistrationFilter<InputImageType,OutputImageType,DisplacementFieldType>).name(), \
194 typeid(GPUDemonsRegistrationFilter<InputImageType,OutputImageType,DisplacementFieldType>).name(), \
195 "GPU Demons Registration Filter Override", \
197 CreateObjectFunction<GPUDemonsRegistrationFilter<InputImageType,OutputImageType,DisplacementFieldType> >::New() ); \
230 #ifndef ITK_MANUAL_INSTANTIATION
231 #include "itkGPUDemonsRegistrationFilter.hxx"
TParentImageFilter CPUSuperclass
Deformably register two images using the demons algorithm.
Light weight base class for most itk classes.
~GPUDemonsRegistrationFilter() override
typename GPUSuperclass::DisplacementFieldPointer DisplacementFieldPointer
#define ITK_SOURCE_VERSION
typename GPUSuperclass::DisplacementFieldType DisplacementFieldType
typename GPUSuperclass::FixedImageType FixedImageType
const char * GetITKSourceVersion() const override
typename GPUSuperclass::FixedImagePointer FixedImagePointer
GPUDemonsRegistrationFilterFactory Self
static void RegisterOneFactory()
typename GPUSuperclass::MovingImagePointer MovingImagePointer
typename GPUSuperclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
Create instances of classes using an object factory.
const char * GetDescription() const override
bool m_UseMovingImageGradient
GPUDemonsRegistrationFilterFactory()
Object Factory implemenatation for GPUDemonsRegistrationFilter.
typename GPUSuperclass::TimeStepType TimeStepType
typename GPUSuperclass::MovingImageType MovingImageType
static bool RegisterFactory(ObjectFactoryBase *, InsertionPositionType where=INSERT_AT_BACK, vcl_size_t position=0)
Deformably register two images using the demons algorithm with GPU.
Control indentation during Print() invocation.
#define OverrideDemonsRegistrationFilterTypeMacro(ipt, opt, dm)
typename GPUSuperclass::TimeStepType TimeStepType