18 #ifndef itkFEMImageMetricLoad_h
19 #define itkFEMImageMetricLoad_h
68 template <
typename TMoving,
typename TFixed>
80 itkSimpleNewMacro(
Self);
87 virtual::itk::LightObject::Pointer CreateAnother(
void) const ITK_OVERRIDE;
100 itkStaticConstMacro(ImageDimension,
unsigned int,
101 MovingType::ImageDimension);
166 typedef
Image<GradientPixelType,
179 void SetMetric(MetricBaseTypePointer MP)
188 m_RefSize = m_RefImage->GetLargestPossibleRegion().GetSize();
194 m_Metric->SetMovingImage(R);
195 m_RefSize = R->GetLargestPossibleRegion().GetSize();
202 m_TarSize = T->GetLargestPossibleRegion().GetSize();
208 m_Metric->SetFixedImage(T);
209 m_TarSize = T->GetLargestPossibleRegion().GetSize();
230 return m_MetricRadius;
239 m_NumberOfIntegrationPoints = i;
243 return m_NumberOfIntegrationPoints;
295 return m_Solution->GetSolutionValue(i, which);
301 void InitializeMetric();
322 m_MetricGradientImage = g;
326 return m_MetricGradientImage;
332 std::cout <<
" energy " << m_Energy << std::endl;
347 virtual void PrintSelf(std::ostream& os,
Indent indent)
const ITK_OVERRIDE;
377 #ifndef ITK_MANUAL_INSTANTIATION
378 #include "itkFEMImageMetricLoad.hxx"
MovingType::ConstPointer MovingConstPointer
Light weight base class for most itk classes.
void SetMetricGradientImage(GradientImageType *g)
MetricBaseTypePointer m_Metric
unsigned int m_NumberOfIntegrationPoints
GradientImageType * m_MetricGradientImage
void SetMovingImage(MovingType *R)
vnl_vector< Float > VectorType
SmartPointer< const Self > ConstPointer
unsigned int m_SolutionIndex
void SetNumberOfIntegrationPoints(unsigned int i)
void SetMetricFixedImage(FixedType *T)
MovingPointer GetMovingImage()
unsigned int GetNumberOfIntegrationPoints()
void SetMetricMovingImage(MovingType *R)
void SetCurrentEnergy(double e)
MovingType::PixelType RefPixelType
MovingNeighborhoodIteratorType::IndexType MovingNeighborhoodIndexType
SmartPointer< Self > Pointer
Computes the gradient of an image by convolution with the first derivative of a Gaussian.
ImageBaseType::SpacingType VectorType
FixedPointer GetFixedImage()
General image pair load that uses the itkImageToImageMetrics.
FixedType::SizeType m_TarSize
double GetCurrentEnergy()
virtual Solution::ConstPointer GetSolution() override
Provides functions to access the values of the solution vector.
void SetFixedImage(FixedType *T)
virtual void SetSolution(Solution::ConstPointer ptr) override
Computes similarity between two images to be registered.
Float GetSolution(unsigned int i, unsigned int which=0)
double CoordinateRepresentationType
A multi-dimensional iterator templated over image type that walks pixels within a region and is speci...
MovingNeighborhoodIteratorType::RadiusType MovingRadiusType
vnl_vector< Float > VectorType
TransformBaseType::Pointer m_Transform
unsigned long ElementIdentifier
Virtual element load base class.
FixedNeighborhoodIteratorType::RadiusType FixedRadiusType
DefaultTransformType::ParametersType ParametersType
DefaultTransformType::JacobianType JacobianType
Linearly interpolate an image at specified positions.
static Baseclass * NewImageMetricLoad(void)
FixedType::ConstPointer FixedConstPointer
Abstract base element class.
GradientImageType * GetMetricGradientImage()
MovingType * MovingPointer
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
Control indentation during Print() invocation.
unsigned int m_SolutionIndex2
ImageBaseType::SizeType SizeType
MovingRadiusType GetMetricRadius()
FixedType::PixelType TarPixelType
Computes similarity between regions of two images.
static ITK_CONSTEXPR_VAR double e
The base of the natural logarithm or Euler's number
MovingType::SizeType m_RefSize
A templated class holding a n-Dimensional covariant vector.
FixedNeighborhoodIteratorType::IndexType FixedNeighborhoodIndexType
Solution::ConstPointer m_Solution
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
Templated n-dimensional image class.
void PrintCurrentEnergy()
ImageBaseType::IndexType IndexType
void SetMetricRadius(MovingRadiusType T)
InterpolatorType::Pointer m_Interpolator