18 #ifndef itkGPUDemonsRegistrationFilter_h
19 #define itkGPUDemonsRegistrationFilter_h
67 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField,
72 TDisplacementField, TParentImageFilter >
79 typedef TParentImageFilter
123 virtual double GetMetric() const ITK_OVERRIDE;
135 ~GPUDemonsRegistrationFilter() {
147 void operator=(const
Self &) ITK_DELETE_FUNCTION;
172 return "A Factory for GPUDemonsRegistrationFilter";
177 itkFactorylessNewMacro(Self);
192 void operator=(const Self&) ITK_DELETE_FUNCTION;
194 #define OverrideDemonsRegistrationFilterTypeMacro(ipt,opt,dm) \
196 typedef GPUImage<ipt,dm> InputImageType; \
197 typedef GPUImage<opt,dm> OutputImageType; \
198 typedef Vector< float, dm > VectorPixelType; \
199 typedef GPUImage< VectorPixelType, dm > DisplacementFieldType; \
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<GPUDemonsRegistrationFilter<InputImageType,OutputImageType,DisplacementFieldType> >::New() ); \
238 #ifndef ITK_MANUAL_INSTANTIATION
239 #include "itkGPUDemonsRegistrationFilter.hxx"
virtual void SetIntensityDifferenceThreshold(double) override
SmartPointer< const Self > ConstPointer
Deformably register two images using the demons algorithm.
GPUSuperclass::FixedImageType FixedImageType
#define ITK_SOURCE_VERSION
GPUSuperclass::DisplacementFieldType DisplacementFieldType
ObjectFactoryBase GPUSuperclass
GPUDemonsRegistrationFunction< FixedImageType, MovingImageType, DisplacementFieldType > GPUDemonsRegistrationFunctionType
static void RegisterOneFactory(void)
Create instances of classes using an object factory.
const char * GetDescription() const override
bool m_UseMovingImageGradient
GPUDemonsRegistrationFilterFactory()
virtual const char * GetITKSourceVersion() const override
virtual void InitializeIteration() override
GPUSuperclass::DisplacementFieldPointer DisplacementFieldPointer
Object Factory implemenatation for GPUDemonsRegistrationFilter.
GPUSuperclass::MovingImageType MovingImageType
GPUSuperclass::TimeStepType TimeStepType
virtual double GetIntensityDifferenceThreshold() const override
GPUSuperclass::TimeStepType TimeStepType
GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField, TParentImageFilter > GPUSuperclass
GPUDemonsRegistrationFilter Self
SmartPointer< Self > Pointer
SmartPointer< const Self > ConstPointer
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)
SmartPointer< Self > Pointer
GPUSuperclass::MovingImagePointer MovingImagePointer
virtual double GetMetric() const override
GPUDemonsRegistrationFilterFactory Self
GPUSuperclass::FixedImagePointer FixedImagePointer
TParentImageFilter CPUSuperclass
GPUSuperclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
virtual void ApplyUpdate(const TimeStepType &dt) override
void PrintSelf(std::ostream &os, Indent indent) const override