18 #ifndef itkGPUDemonsRegistrationFunction_h
19 #define itkGPUDemonsRegistrationFunction_h
57 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
91 typedef typename Superclass::DisplacementFieldTypePointer
95 itkStaticConstMacro(ImageDimension,
unsigned
96 int, Superclass::ImageDimension);
129 itkGetOpenCLSourceFromKernelMacro(GPUDemonsRegistrationFunctionKernel);
134 m_MovingImageInterpolator = ptr;
140 return m_MovingImageInterpolator;
163 virtual void ReleaseGlobalDataPointer(
void *GlobalData)
const ITK_OVERRIDE;
167 virtual void GPUAllocateMetricData(
unsigned int numPixels) ITK_OVERRIDE;
171 virtual void GPUReleaseMetricData() ITK_OVERRIDE;
174 virtual
void InitializeIteration() ITK_OVERRIDE;
178 virtual PixelType ComputeUpdate( const NeighborhoodType & neighborhood,
180 const FloatOffsetType & offset =
181 FloatOffsetType(0.0) ) ITK_OVERRIDE;
183 virtual
void GPUComputeUpdate( const DisplacementFieldTypePointer output,
184 DisplacementFieldTypePointer update,
185 void *gd) ITK_OVERRIDE;
190 virtual
double GetMetric()
const
206 m_UseMovingImageGradient = flag;
210 return m_UseMovingImageGradient;
218 virtual void SetIntensityDifferenceThreshold(
double);
220 virtual double GetIntensityDifferenceThreshold()
const;
226 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
290 #ifndef ITK_MANUAL_INSTANTIATION
291 #include "itkGPUDemonsRegistrationFunction.hxx"
InterpolatorPointer m_MovingImageInterpolator
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
double m_SumOfSquaredChange
SizeValueType m_NumberOfPixelsProcessed
InterpolateImageFunction< MovingImageType, CoordRepType > InterpolatorType
Superclass::MovingImagePointer MovingImagePointer
Superclass::PixelType PixelType
Calculate the derivative by central differencing.
itkGPUKernelClassMacro(GPUImageOpsKernel)
unsigned long SizeValueType
Superclass::DisplacementFieldTypePointer DisplacementFieldTypePointer
int m_ComputeUpdateGPUKernelHandle
double m_IntensityDifferenceThreshold
CovariantVector< double, itkGetStaticConstMacro(ImageDimension) > CovariantVectorType
Superclass::NeighborhoodType NeighborhoodType
MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator
GPUDemonsRegistrationFunction Self
LinearInterpolateImageFunction< MovingImageType, CoordRepType > DefaultInterpolatorType
Superclass::RadiusType RadiusType
virtual double GetRMSChange() const
FixedImageType::SizeType SizeType
GPUReduction< float >::Pointer m_GPUSquaredChange
GPUPDEDeformableRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > Superclass
Superclass::MovingImageType MovingImageType
Superclass::PointType PointType
Superclass::TimeStepType TimeStepType
double m_DenominatorThreshold
virtual bool GetUseMovingImageGradient() const
SmartPointer< const Self > ConstPointer
Superclass::NeighborhoodType NeighborhoodType
Superclass::FixedImagePointer FixedImagePointer
Linearly interpolate an image at specified positions.
CentralDifferenceImageFunction< MovingImageType, CoordRepType > MovingImageGradientCalculatorType
InterpolatorType * GetMovingImageInterpolator(void)
MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
double m_SumOfSquaredDifference
Base class for all image interpolaters.
Superclass::RadiusType RadiusType
GradientCalculatorType::Pointer GradientCalculatorPointer
~GPUDemonsRegistrationFunction() override
Superclass::DisplacementFieldType DisplacementFieldType
double m_SumOfSquaredChange
Control indentation during Print() invocation.
ImageBaseType::SizeType SizeType
virtual TimeStepType ComputeGlobalTimeStep(void *) const override
InterpolatorType::Pointer InterpolatorPointer
Superclass::FloatOffsetType FloatOffsetType
Superclass::PixelType PixelType
FixedImageType::SpacingType SpacingType
GPUDataManager::Pointer GPUDataPointer
SizeValueType m_NumberOfPixelsProcessed
A templated class holding a n-Dimensional covariant vector.
double m_SumOfSquaredDifference
virtual void SetUseMovingImageGradient(bool flag)
ImageBaseType::IndexType IndexType
FixedImageType::IndexType IndexType