22 #ifndef otbNCCRegistrationFunction_h
23 #define otbNCCRegistrationFunction_h
25 #include "itkPDEDeformableRegistrationFunction.h"
27 #include "itkLinearInterpolateImageFunction.h"
28 #include "itkCentralDifferenceImageFunction.h"
48 template <
class TFixedImage,
class TMovingImage,
class TDisplacementField>
49 class ITK_EXPORT
NCCRegistrationFunction :
public itk::PDEDeformableRegistrationFunction<TFixedImage, TMovingImage, TDisplacementField>
55 typedef itk::PDEDeformableRegistrationFunction<TFixedImage, TMovingImage, TDisplacementField>
Superclass;
72 typedef typename FixedImageType::IndexType
IndexType;
73 typedef typename FixedImageType::SizeType
SizeType;
81 itkStaticConstMacro(ImageDimension,
unsigned int, Superclass::ImageDimension);
95 typedef typename InterpolatorType::PointType
PointType;
108 m_MovingImageInterpolator = ptr;
114 return m_MovingImageInterpolator;
139 void InitializeIteration()
override;
143 PixelType ComputeUpdate(
const NeighborhoodType& neighborhood,
void* globalData,
const FloatOffsetType& offset = FloatOffsetType(0.0))
override;
150 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
190 #ifndef OTB_MANUAL_INSTANTIATION
Superclass::FloatOffsetType FloatOffsetType
Superclass::MovingImagePointer MovingImagePointer
~NCCRegistrationFunction() override
InterpolatorType * GetMovingImageInterpolator(void)
void SetMovingImageInterpolator(InterpolatorType *ptr)
Superclass::NeighborhoodType NeighborhoodType
TimeStepType ComputeGlobalTimeStep(void *) const override
itk::CovariantVector< double, itkGetStaticConstMacro(ImageDimension)> CovariantVectorType
Superclass::DisplacementFieldType DisplacementFieldType
Superclass::RadiusType RadiusType
Superclass::DisplacementFieldTypePointer DisplacementFieldTypePointer
GradientCalculatorType::Pointer GradientCalculatorPointer
NCCRegistrationFunction Self
itk::SmartPointer< const Self > ConstPointer
SpacingType m_FixedImageSpacing
Superclass::PixelType PixelType
FixedImageType::IndexType IndexType
InterpolatorType::PointType PointType
itk::SmartPointer< Self > Pointer
InterpolatorPointer m_MovingImageInterpolator
void * GetGlobalDataPointer() const override
Superclass::TimeStepType TimeStepType
FixedImageType::SpacingType SpacingType
Superclass::MovingImageType MovingImageType
double m_IntensityDifferenceThreshold
itk::LinearInterpolateImageFunction< MovingImageType, CoordRepType > DefaultInterpolatorType
itk::InterpolateImageFunction< MovingImageType, CoordRepType > InterpolatorType
void ReleaseGlobalDataPointer(void *GlobalData) const override
Superclass::FixedImageType FixedImageType
NCCRegistrationFunction(const Self &)=delete
void operator=(const Self &)=delete
FixedImageType::SizeType SizeType
GradientCalculatorPointer m_FixedImageGradientCalculator
itk::ConstNeighborhoodIterator< FixedImageType > FixedImageNeighborhoodIteratorType
itk::CentralDifferenceImageFunction< FixedImageType > GradientCalculatorType
Superclass::FixedImagePointer FixedImagePointer
PointType m_FixedImageOrigin
itk::PDEDeformableRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > Superclass
InterpolatorType::Pointer InterpolatorPointer
double m_DenominatorThreshold
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
FixedImageNeighborhoodIteratorType m_FixedImageIterator