18 #ifndef itkGPUDemonsRegistrationFunction_h
19 #define itkGPUDemonsRegistrationFunction_h
57 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
85 typedef typename FixedImageType::IndexType
IndexType;
86 typedef typename FixedImageType::SizeType
SizeType;
185 void *gd) ITK_OVERRIDE;
291 #ifndef ITK_MANUAL_INSTANTIATION
292 #include "itkGPUDemonsRegistrationFunction.hxx"
InterpolatorPointer m_MovingImageInterpolator
virtual void InitializeIteration() override
Critical section locking class that can be allocated on the stack.
GPUReduction< float >::Pointer m_GPUSquaredDifference
SimpleFastMutexLock m_MetricCalculationLock
PixelType m_ZeroUpdateReturn
Light weight base class for most itk classes.
Superclass::FloatOffsetType FloatOffsetType
virtual void * GetGlobalDataPointer() const override
bool m_UseMovingImageGradient
Superclass::FixedImageType FixedImageType
GradientCalculatorPointer m_FixedImageGradientCalculator
CentralDifferenceImageFunction< FixedImageType > GradientCalculatorType
InterpolatorType::PointType PointType
SmartPointer< Self > Pointer
void SetMovingImageInterpolator(InterpolatorType *ptr)
ConstNeighborhoodIterator< FixedImageType > FixedImageNeighborhoodIteratorType
GPUReduction< int >::Pointer m_GPUPixelCounter
virtual void ReleaseGlobalDataPointer(void *GlobalData) const override
double m_SumOfSquaredChange
SizeValueType m_NumberOfPixelsProcessed
virtual void GPUComputeUpdate(const DisplacementFieldTypePointer output, DisplacementFieldTypePointer update, void *gd) override
InterpolateImageFunction< MovingImageType, CoordRepType > InterpolatorType
Superclass::MovingImagePointer MovingImagePointer
Superclass::PixelType PixelType
Calculate the derivative by central differencing.
virtual double GetMetric() const
itkGPUKernelClassMacro(GPUImageOpsKernel)
unsigned long SizeValueType
Superclass::DisplacementFieldTypePointer DisplacementFieldTypePointer
int m_ComputeUpdateGPUKernelHandle
double m_IntensityDifferenceThreshold
GPUDemonsRegistrationFunction()
virtual void GPUReleaseMetricData() override
CovariantVector< double, itkGetStaticConstMacro(ImageDimension) > CovariantVectorType
Superclass::NeighborhoodType NeighborhoodType
MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator
GPUDemonsRegistrationFunction Self
LinearInterpolateImageFunction< MovingImageType, CoordRepType > DefaultInterpolatorType
Superclass::RadiusType RadiusType
virtual double GetRMSChange() const
static const unsigned int ImageDimension
FixedImageType::SizeType SizeType
GPUReduction< float >::Pointer m_GPUSquaredChange
GPUPDEDeformableRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > Superclass
Superclass::MovingImageType MovingImageType
Superclass::TimeStepType TimeStepType
double m_DenominatorThreshold
virtual bool GetUseMovingImageGradient() const
SmartPointer< const Self > ConstPointer
virtual PixelType ComputeUpdate(const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) override
virtual void GPUAllocateMetricData(unsigned int numPixels) override
Superclass::TimeStepType TimeStepType
Superclass::NeighborhoodType NeighborhoodType
static const unsigned int ImageDimension
Superclass::FixedImagePointer FixedImagePointer
virtual double GetIntensityDifferenceThreshold() const
Linearly interpolate an image at specified positions.
CentralDifferenceImageFunction< MovingImageType, CoordRepType > MovingImageGradientCalculatorType
InterpolatorType * GetMovingImageInterpolator(void)
void operator=(const Self &)
MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
itkGetOpenCLSourceFromKernelMacro(GPUDemonsRegistrationFunctionKernel)
virtual void SetIntensityDifferenceThreshold(double)
double m_SumOfSquaredDifference
Base class for all image interpolaters.
Superclass::RadiusType RadiusType
GradientCalculatorType::Pointer GradientCalculatorPointer
Superclass::DisplacementFieldType DisplacementFieldType
double m_SumOfSquaredChange
Control indentation during Print() invocation.
void PrintSelf(std::ostream &os, Indent indent) const override
virtual TimeStepType ComputeGlobalTimeStep(void *) const override
InterpolatorType::Pointer InterpolatorPointer
Superclass::FloatOffsetType FloatOffsetType
Superclass::PixelType PixelType
FixedImageType::SpacingType SpacingType
GPUDataManager::Pointer GPUDataPointer
A templated class holding a geometric point in n-Dimensional space.
SizeValueType m_NumberOfPixelsProcessed
A templated class holding a n-Dimensional covariant vector.
double m_SumOfSquaredDifference
virtual void SetUseMovingImageGradient(bool flag)
~GPUDemonsRegistrationFunction()
FixedImageType::IndexType IndexType