18 #ifndef itkFEMFiniteDifferenceFunctionLoad_h 19 #define itkFEMFiniteDifferenceFunctionLoad_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"
virtual Float GetSolutionValue(unsigned int i, unsigned int solutionIndex=0) const =0
unsigned long ElementIdentifier
FixedImageType::PixelType FixedPixelType
FixedNeighborhoodIteratorType::RadiusType FixedRadiusType
MovingImageType::ConstPointer MovingConstPointer
void SetDescentDirectionMinimize()
virtual Solution::ConstPointer GetSolution() override
void SetDisplacementField(DisplacementFieldTypePointer df)
FiniteDifferenceFunctionLoad()
Float EvaluateMetricGivenSolution(ElementContainerType *el, Float step=1.0)
double GetCurrentEnergy()
FiniteDifferenceFunctionType::TimeStepType TimeStepType
unsigned int GetNumberOfIntegrationPoints()
SmartPointer< Self > Pointer
DisplacementFieldType::Pointer m_DisplacementField
FixedImageType::ConstPointer FixedConstPointer
MovingNeighborhoodIteratorType::RadiusType MovingRadiusType
void PrintCurrentEnergy()
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
ObjectType * GetPointer() const
MovingImageType * MovingPointer
FixedPointer GetFixedImage()
void InitializeIteration()
static const unsigned int ImageDimension
void SetNumberOfIntegrationPoints(unsigned int i)
MovingRadiusType GetMetricRadius()
static ITK_CONSTEXPR double e
The base of the natural logarithm or Euler's number
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 ::itk::LightObject::Pointer CreateAnother(void) const override
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
FixedPointer m_FixedImage
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()