18 #ifndef itkFEMFiniteDifferenceFunctionLoad_h
19 #define itkFEMFiniteDifferenceFunctionLoad_h
34 #include "vnl/vnl_math.h"
66 template <
typename TMoving,
typename TFixed>
78 itkSimpleNewMacro(
Self);
86 virtual::itk::LightObject::Pointer
CreateAnother(
void) const ITK_OVERRIDE;
100 MovingImageType::ImageDimension);
125 typedef
Image<PixelType, itkGetStaticConstMacro(ImageDimension)>
127 typedef itk::
Vector<
float, itkGetStaticConstMacro(ImageDimension)>
169 drfp->SetRadius(m_MetricRadius);
171 drfp->InitializeIteration();
199 m_FixedSize = T->GetLargestPossibleRegion().GetSize();
226 return m_MetricRadius;
338 #ifndef ITK_MANUAL_INSTANTIATION
339 #include "itkFEMFiniteDifferenceFunctionLoad.hxx"
unsigned long ElementIdentifier
FixedImageType::PixelType FixedPixelType
FixedNeighborhoodIteratorType::RadiusType FixedRadiusType
MovingImageType::ConstPointer MovingConstPointer
void SetDescentDirectionMinimize()
virtual Solution::ConstPointer GetSolution() override
Light weight base class for most itk classes.
void SetDisplacementField(DisplacementFieldTypePointer df)
FiniteDifferenceFunctionLoad()
Float EvaluateMetricGivenSolution(ElementContainerType *el, Float step=1.0)
double GetCurrentEnergy()
FiniteDifferenceFunctionType::TimeStepType TimeStepType
unsigned int GetNumberOfIntegrationPoints()
VectorContainer< ElementIdentifier, Element::Pointer > ElementContainerType
SmartPointer< Self > Pointer
DisplacementFieldType::Pointer m_DisplacementField
FixedImageType::ConstPointer FixedConstPointer
MovingNeighborhoodIteratorType::RadiusType MovingRadiusType
void PrintCurrentEnergy()
ObjectType * GetPointer() const
static const double e
The base of the natural logarithm or Euler's number
MovingImageType * MovingPointer
FixedPointer GetFixedImage()
void InitializeIteration()
static const unsigned int ImageDimension
void SetNumberOfIntegrationPoints(unsigned int i)
MovingRadiusType GetMetricRadius()
FiniteDifferenceFunctionLoad Self
Provides functions to access the values of the solution vector.
General image pair load that uses the itkFiniteDifferenceFunctions.
void SetMetricRadius(MovingRadiusType T)
A templated class holding a n-Dimensional vector.
MovingNeighborhoodIteratorType::IndexType MovingNeighborhoodIndexType
DisplacementFieldTypePointer GetDisplacementField()
FixedNeighborhoodIteratorType::IndexType FixedNeighborhoodIndexType
vnl_vector< Float > FEMVectorType
FixedImageType * FixedPointer
Float GetSolution(unsigned int i, unsigned int which=0)
A multi-dimensional iterator templated over image type that walks pixels within a region and is speci...
void SetMovingImage(MovingImageType *R)
unsigned int m_SolutionIndex2
vnl_vector< Float > VectorType
Virtual element load base class.
virtual void ApplyLoad(Element::ConstPointer element, Element::VectorType &Fe) override
MovingImageType::SizeType m_MovingSize
FEMVectorType Fe(FEMVectorType)
unsigned int m_SolutionIndex
void SetDifferenceFunction(FiniteDifferenceFunctionTypePointer drfp)
virtual void SetSolution(Solution::ConstPointer ptr) override
MovingPointer GetMovingImage()
void SetCurrentEnergy(double e=0.0)
Abstract base element class.
MovingNeighborhoodIteratorType::RadiusType RadiusType
MovingImageType::PixelType MovingPixelType
void SetFixedImage(FixedImageType *T)
Solution::ConstPointer m_Solution
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
void SetMetric(FiniteDifferenceFunctionTypePointer drfp)
FiniteDifferenceFunctionTypePointer m_DifferenceFunction
unsigned int m_NumberOfIntegrationPoints
MovingPointer m_MovingImage
SmartPointer< const Self > ConstPointer
virtual ::itk::LightObject::Pointer CreateAnother(void) const override
FixedPointer m_FixedImage
virtual Float GetSolutionValue(unsigned int i, unsigned int solutionIndex=0) const =0
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
Templated n-dimensional image class.
FixedImageType::SizeType m_FixedSize
void SetDescentDirectionMaximize()