|
ITK
5.2.0
Insight Toolkit
|
Go to the documentation of this file.
18 #ifndef itkGPUDemonsRegistrationFunction_h
19 #define itkGPUDemonsRegistrationFunction_h
57 template <
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField>
92 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
123 itkGetOpenCLSourceFromKernelMacro(GPUDemonsRegistrationFunctionKernel);
129 m_MovingImageInterpolator = ptr;
136 return m_MovingImageInterpolator;
153 global->m_SumOfSquaredDifference = 0.0;
154 global->m_NumberOfPixelsProcessed = 0L;
155 global->m_SumOfSquaredChange = 0;
161 ReleaseGlobalDataPointer(
void * GlobalData)
const override;
166 GPUAllocateMetricData(
unsigned int numPixels)
override;
171 GPUReleaseMetricData()
override;
175 InitializeIteration()
override;
180 ComputeUpdate(
const NeighborhoodType & neighborhood,
182 const FloatOffsetType & offset = FloatOffsetType(0.0))
override;
185 GPUComputeUpdate(
const DisplacementFieldTypePointer output, DisplacementFieldTypePointer update,
void * gd)
override;
209 m_UseMovingImageGradient = flag;
214 return m_UseMovingImageGradient;
223 SetIntensityDifferenceThreshold(
double);
226 GetIntensityDifferenceThreshold()
const;
233 PrintSelf(std::ostream & os,
Indent indent)
const override;
294 #ifndef ITK_MANUAL_INSTANTIATION
295 # include "itkGPUDemonsRegistrationFunction.hxx"
PixelType m_ZeroUpdateReturn
std::mutex m_MetricCalculationLock
double m_SumOfSquaredDifference
typename GradientCalculatorType::Pointer GradientCalculatorPointer
GradientCalculatorPointer m_FixedImageGradientCalculator
ImageBaseType::PointType PointType
Calculate the derivative by central differencing.
typename Superclass::PixelType PixelType
typename Superclass::TimeStepType TimeStepType
ImageBaseType::SizeType SizeType
int m_ComputeUpdateGPUKernelHandle
typename FixedImageType::SizeType SizeType
Control indentation during Print() invocation.
typename FixedImageType::IndexType IndexType
typename Superclass::NeighborhoodType NeighborhoodType
double m_SumOfSquaredDifference
double m_DenominatorThreshold
void * GetGlobalDataPointer() const override
ImageBaseType::IndexType IndexType
Linearly interpolate an image at specified positions.
MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator
SizeValueType m_NumberOfPixelsProcessed
Light weight base class for most itk classes.
GPUReduction< int >::Pointer m_GPUPixelCounter
bool m_UseMovingImageGradient
typename Superclass::NeighborhoodType NeighborhoodType
typename Superclass::RadiusType RadiusType
double m_IntensityDifferenceThreshold
SmartPointer< Self > Pointer
typename InterpolatorType::Pointer InterpolatorPointer
typename Superclass::FloatOffsetType FloatOffsetType
GPUReduction< float >::Pointer m_GPUSquaredDifference
A templated class holding a n-Dimensional covariant vector.
TimeStepType ComputeGlobalTimeStep(void *) const override
InterpolatorPointer m_MovingImageInterpolator
itkGPUKernelClassMacro(GPUImageOpsKernel)
GPUReduction< float >::Pointer m_GPUSquaredChange
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
void SetMovingImageInterpolator(InterpolatorType *ptr)
SizeValueType m_NumberOfPixelsProcessed
double m_SumOfSquaredChange
double m_SumOfSquaredChange
virtual bool GetUseMovingImageGradient() const
virtual void SetUseMovingImageGradient(bool flag)
typename FixedImageType::SpacingType SpacingType
typename Superclass::PixelType PixelType
virtual double GetRMSChange() const
typename InterpolatorType::PointType PointType
typename MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
typename Superclass::FloatOffsetType FloatOffsetType
virtual double GetMetric() const
Base class for all image interpolators.
unsigned long SizeValueType
typename Superclass::RadiusType RadiusType
InterpolatorType * GetMovingImageInterpolator()