18#ifndef itkGPUDemonsRegistrationFilter_h
19#define itkGPUDemonsRegistrationFilter_h
67template <
typename TFixedImage,
68 typename TMovingImage,
69 typename TDisplacementField,
70 typename TParentImageFilter = itk::DemonsRegistrationFilter<TFixedImage, TMovingImage, TDisplacementField>>
174 return "A Factory for GPUDemonsRegistrationFilter";
194#define OverrideDemonsRegistrationFilterTypeMacro(ipt, opt, dm) \
196 using InputImageType = GPUImage<ipt, dm>; \
197 using OutputImageType = GPUImage<opt, dm>; \
198 using VectorPixelType = Vector<float, dm>; \
199 using DisplacementFieldType = GPUImage<VectorPixelType, dm>; \
200 this->RegisterOverride( \
201 typeid(DemonsRegistrationFilter<InputImageType, OutputImageType, DisplacementFieldType>).name(), \
202 typeid(GPUDemonsRegistrationFilter<InputImageType, OutputImageType, DisplacementFieldType>).name(), \
203 "GPU Demons Registration Filter Override", \
205 CreateObjectFunction< \
206 GPUDemonsRegistrationFilter<InputImageType, OutputImageType, DisplacementFieldType>>::New()); \
208 ITK_MACROEND_NOOP_STATEMENT
239#ifndef ITK_MANUAL_INSTANTIATION
240# include "itkGPUDemonsRegistrationFilter.hxx"
GPUDemonsRegistrationFilterFactory()
const char * GetITKSourceVersion() const override
GPUDemonsRegistrationFilterFactory Self
const char * GetDescription() const override
static void RegisterOneFactory()
SmartPointer< Self > Pointer
SmartPointer< const Self > ConstPointer
ObjectFactoryBase GPUSuperclass
typename GPUSuperclass::MovingImageType MovingImageType
GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField, TParentImageFilter > GPUSuperclass
typename GPUSuperclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
typename GPUSuperclass::TimeStepType TimeStepType
bool m_UseMovingImageGradient
SmartPointer< Self > Pointer
typename GPUSuperclass::FixedImageType FixedImageType
GPUDemonsRegistrationFilter()
GPUDemonsRegistrationFilter Self
double GetIntensityDifferenceThreshold() const override
typename GPUSuperclass::DisplacementFieldType DisplacementFieldType
typename GPUSuperclass::DisplacementFieldPointer DisplacementFieldPointer
typename GPUSuperclass::FixedImagePointer FixedImagePointer
void InitializeIteration() override
typename GPUSuperclass::MovingImagePointer MovingImagePointer
TParentImageFilter CPUSuperclass
double GetMetric() const override
void ApplyUpdate(const TimeStepType &dt) override
void SetIntensityDifferenceThreshold(double) override
~GPUDemonsRegistrationFilter() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
GPUDemonsRegistrationFunction< FixedImageType, MovingImageType, DisplacementFieldType > GPUDemonsRegistrationFunctionType
SmartPointer< const Self > ConstPointer
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
Control indentation during Print() invocation.
Create instances of classes using an object factory.
static bool RegisterFactory(ObjectFactoryBase *, InsertionPositionEnum where=InsertionPositionEnum::INSERT_AT_BACK, vcl_size_t position=0)
Implements transparent reference counting.
#define OverrideDemonsRegistrationFilterTypeMacro(ipt, opt, dm)
#define ITK_SOURCE_VERSION
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....