ITK
4.9.0
Insight Segmentation and Registration Toolkit
|
#include <itkFEMImageMetricLoad.h>
General image pair load that uses the itkImageToImageMetrics.
LoadImageMetric computes FEM gravity loads by using derivatives provided by itkImageToImageMetrics (e.g. mean squares intensity difference.) The function responsible for this is called Fg, as required by the FEMLoad standards. It takes a vnl_vector as input. We assume the vector input is of size 2*ImageDimension. The 0 to ImageDimension-1 elements contain the position, p, in the reference (moving) image. The next ImageDimension to 2*ImageDimension-1 elements contain the value of the vector field at that point, v(p).
Then, we evaluate the derivative at the point p+v(p) with respect to some region of the target (fixed) image by calling the metric with the translation parameters as provided by the vector field at p. The metrics return both a scalar similarity value and vector-valued derivative. The derivative is what gives us the force to drive the FEM registration. These values are computed with respect to some region in the Fixed image. This region size may be set by the user by calling SetMetricRadius. As the metric derivative computation evolves, performance should improve and more functionality will be available (such as scale selection).
Definition at line 69 of file itkFEMImageMetricLoad.h.
Static Public Member Functions | |
static Pointer | New () |
static Baseclass * | NewImageMetricLoad (void) |
Static Public Member Functions inherited from itk::fem::LoadElement | |
static Pointer | New () |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | ImageDimension = MovingType::ImageDimension |
Protected Member Functions | |
virtual void | PrintSelf (std::ostream &os, Indent indent) const override |
Protected Member Functions inherited from itk::fem::LoadElement | |
void | AddNextElementInternal (const Element *e) |
Protected Member Functions inherited from itk::fem::FEMLightObject | |
FEMLightObject () | |
FEMLightObject (const FEMLightObject &o) | |
virtual | ~FEMLightObject () |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Private Attributes | |
double | m_Energy |
Float | m_Gamma |
InterpolatorType::Pointer | m_Interpolator |
MetricBaseTypePointer | m_Metric |
GradientImageType * | m_MetricGradientImage |
unsigned int | m_NumberOfIntegrationPoints |
MovingPointer | m_RefImage |
MovingType::SizeType | m_RefSize |
Float | m_Sign |
Solution::ConstPointer | m_Solution |
unsigned int | m_SolutionIndex |
unsigned int | m_SolutionIndex2 |
FixedPointer | m_TarImage |
FixedType::SizeType | m_TarSize |
Float | m_Temp |
TransformBaseType::Pointer | m_Transform |
Additional Inherited Members | |
Protected Attributes inherited from itk::fem::Load | |
Element::ConstPointer | m_Element |
Protected Attributes inherited from itk::fem::FEMLightObject | |
int | m_GlobalNumber |
Protected Attributes inherited from itk::LightObject | |
AtomicInt< int > | m_ReferenceCount |
typedef Float itk::fem::ImageMetricLoad< TMoving, TFixed >::ComputationType |
Definition at line 123 of file itkFEMImageMetricLoad.h.
typedef SmartPointer<const Self> itk::fem::ImageMetricLoad< TMoving, TFixed >::ConstPointer |
Definition at line 77 of file itkFEMImageMetricLoad.h.
typedef double itk::fem::ImageMetricLoad< TMoving, TFixed >::CoordinateRepresentationType |
Definition at line 135 of file itkFEMImageMetricLoad.h.
typedef MeanSquaresMetricType itk::fem::ImageMetricLoad< TMoving, TFixed >::DefaultMetricType |
Definition at line 151 of file itkFEMImageMetricLoad.h.
typedef TranslationTransform<CoordinateRepresentationType, itkGetStaticConstMacro(ImageDimension)> itk::fem::ImageMetricLoad< TMoving, TFixed >::DefaultTransformType |
Definition at line 139 of file itkFEMImageMetricLoad.h.
typedef VectorContainer<ElementIdentifier, Element::Pointer> itk::fem::ImageMetricLoad< TMoving, TFixed >::ElementContainerType |
Definition at line 156 of file itkFEMImageMetricLoad.h.
typedef unsigned long itk::fem::ImageMetricLoad< TMoving, TFixed >::ElementIdentifier |
Definition at line 155 of file itkFEMImageMetricLoad.h.
typedef FixedType::ConstPointer itk::fem::ImageMetricLoad< TMoving, TFixed >::FixedConstPointer |
Definition at line 97 of file itkFEMImageMetricLoad.h.
typedef FixedNeighborhoodIteratorType::IndexType itk::fem::ImageMetricLoad< TMoving, TFixed >::FixedNeighborhoodIndexType |
Definition at line 115 of file itkFEMImageMetricLoad.h.
typedef NeighborhoodIterator<FixedType> itk::fem::ImageMetricLoad< TMoving, TFixed >::FixedNeighborhoodIteratorType |
Definition at line 113 of file itkFEMImageMetricLoad.h.
typedef FixedType* itk::fem::ImageMetricLoad< TMoving, TFixed >::FixedPointer |
Definition at line 96 of file itkFEMImageMetricLoad.h.
typedef FixedNeighborhoodIteratorType::RadiusType itk::fem::ImageMetricLoad< TMoving, TFixed >::FixedRadiusType |
Definition at line 117 of file itkFEMImageMetricLoad.h.
typedef TFixed itk::fem::ImageMetricLoad< TMoving, TFixed >::FixedType |
Definition at line 95 of file itkFEMImageMetricLoad.h.
typedef LoadElement::Float itk::fem::ImageMetricLoad< TMoving, TFixed >::Float |
Definition at line 90 of file itkFEMImageMetricLoad.h.
typedef GradientRecursiveGaussianImageFilter<ImageType, GradientImageType> itk::fem::ImageMetricLoad< TMoving, TFixed >::GradientImageFilterType |
Gradient filtering
Definition at line 171 of file itkFEMImageMetricLoad.h.
typedef SmartPointer<GradientImageType> itk::fem::ImageMetricLoad< TMoving, TFixed >::GradientImagePointer |
Gradient filtering
Definition at line 168 of file itkFEMImageMetricLoad.h.
typedef Image<GradientPixelType, itkGetStaticConstMacro(ImageDimension)> itk::fem::ImageMetricLoad< TMoving, TFixed >::GradientImageType |
Gradient filtering
Definition at line 167 of file itkFEMImageMetricLoad.h.
typedef CovariantVector<RealType, itkGetStaticConstMacro(ImageDimension)> itk::fem::ImageMetricLoad< TMoving, TFixed >::GradientPixelType |
Gradient filtering
Definition at line 165 of file itkFEMImageMetricLoad.h.
typedef Image<PixelType, itkGetStaticConstMacro(ImageDimension)> itk::fem::ImageMetricLoad< TMoving, TFixed >::ImageType |
Definition at line 126 of file itkFEMImageMetricLoad.h.
typedef LinearInterpolateImageFunction<MovingType, double> itk::fem::ImageMetricLoad< TMoving, TFixed >::InterpolatorType |
Definition at line 160 of file itkFEMImageMetricLoad.h.
typedef DefaultTransformType::JacobianType itk::fem::ImageMetricLoad< TMoving, TFixed >::JacobianType |
Definition at line 153 of file itkFEMImageMetricLoad.h.
typedef MeanSquaresImageToImageMetric<MovingType, FixedType> itk::fem::ImageMetricLoad< TMoving, TFixed >::MeanSquaresMetricType |
Definition at line 147 of file itkFEMImageMetricLoad.h.
typedef ImageToImageMetric<FixedType, MovingType> itk::fem::ImageMetricLoad< TMoving, TFixed >::MetricBaseType |
Type of supported metrics.
Definition at line 142 of file itkFEMImageMetricLoad.h.
typedef MetricBaseType::Pointer itk::fem::ImageMetricLoad< TMoving, TFixed >::MetricBaseTypePointer |
Definition at line 143 of file itkFEMImageMetricLoad.h.
typedef MovingType::ConstPointer itk::fem::ImageMetricLoad< TMoving, TFixed >::MovingConstPointer |
Definition at line 93 of file itkFEMImageMetricLoad.h.
typedef MovingNeighborhoodIteratorType::IndexType itk::fem::ImageMetricLoad< TMoving, TFixed >::MovingNeighborhoodIndexType |
Definition at line 109 of file itkFEMImageMetricLoad.h.
typedef NeighborhoodIterator<MovingType> itk::fem::ImageMetricLoad< TMoving, TFixed >::MovingNeighborhoodIteratorType |
Definition at line 107 of file itkFEMImageMetricLoad.h.
typedef MovingType* itk::fem::ImageMetricLoad< TMoving, TFixed >::MovingPointer |
Definition at line 94 of file itkFEMImageMetricLoad.h.
typedef MovingNeighborhoodIteratorType::RadiusType itk::fem::ImageMetricLoad< TMoving, TFixed >::MovingRadiusType |
Definition at line 111 of file itkFEMImageMetricLoad.h.
typedef TMoving itk::fem::ImageMetricLoad< TMoving, TFixed >::MovingType |
Definition at line 92 of file itkFEMImageMetricLoad.h.
typedef MutualInformationImageToImageMetric<MovingType, FixedType> itk::fem::ImageMetricLoad< TMoving, TFixed >::MutualInformationMetricType |
Definition at line 145 of file itkFEMImageMetricLoad.h.
typedef NormalizedCorrelationImageToImageMetric<MovingType, FixedType> itk::fem::ImageMetricLoad< TMoving, TFixed >::NormalizedCorrelationMetricType |
Definition at line 149 of file itkFEMImageMetricLoad.h.
typedef DefaultTransformType::ParametersType itk::fem::ImageMetricLoad< TMoving, TFixed >::ParametersType |
Definition at line 152 of file itkFEMImageMetricLoad.h.
typedef Float itk::fem::ImageMetricLoad< TMoving, TFixed >::PixelType |
Definition at line 122 of file itkFEMImageMetricLoad.h.
typedef SmartPointer<Self> itk::fem::ImageMetricLoad< TMoving, TFixed >::Pointer |
Definition at line 76 of file itkFEMImageMetricLoad.h.
typedef float itk::fem::ImageMetricLoad< TMoving, TFixed >::RealType |
Gradient filtering
Definition at line 163 of file itkFEMImageMetricLoad.h.
typedef Image<RefPixelType, itkGetStaticConstMacro(ImageDimension)> itk::fem::ImageMetricLoad< TMoving, TFixed >::RefImageType |
Definition at line 124 of file itkFEMImageMetricLoad.h.
typedef MovingType::PixelType itk::fem::ImageMetricLoad< TMoving, TFixed >::RefPixelType |
Definition at line 120 of file itkFEMImageMetricLoad.h.
typedef ImageRegionIteratorWithIndex<MovingType> itk::fem::ImageMetricLoad< TMoving, TFixed >::RefRegionIteratorType |
Definition at line 103 of file itkFEMImageMetricLoad.h.
typedef ImageMetricLoad itk::fem::ImageMetricLoad< TMoving, TFixed >::Self |
Standard class typedefs.
Definition at line 74 of file itkFEMImageMetricLoad.h.
typedef LoadElement itk::fem::ImageMetricLoad< TMoving, TFixed >::Superclass |
Definition at line 75 of file itkFEMImageMetricLoad.h.
typedef Image<TarPixelType, itkGetStaticConstMacro(ImageDimension)> itk::fem::ImageMetricLoad< TMoving, TFixed >::TarImageType |
Definition at line 125 of file itkFEMImageMetricLoad.h.
typedef FixedType::PixelType itk::fem::ImageMetricLoad< TMoving, TFixed >::TarPixelType |
Definition at line 121 of file itkFEMImageMetricLoad.h.
typedef ImageRegionIteratorWithIndex<FixedType> itk::fem::ImageMetricLoad< TMoving, TFixed >::TarRegionIteratorType |
Definition at line 104 of file itkFEMImageMetricLoad.h.
typedef Transform<CoordinateRepresentationType, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension)> itk::fem::ImageMetricLoad< TMoving, TFixed >::TransformBaseType |
Definition at line 137 of file itkFEMImageMetricLoad.h.
typedef vnl_vector<Float> itk::fem::ImageMetricLoad< TMoving, TFixed >::VectorType |
Definition at line 127 of file itkFEMImageMetricLoad.h.
itk::fem::ImageMetricLoad< TMoving, TFixed >::ImageMetricLoad | ( | ) |
|
overridevirtual |
Apply the load to the specified element
Reimplemented from itk::fem::LoadElement.
|
overridevirtual |
CreateAnother method will clone the existing instance of this type, including its internal member variables.
Reimplemented from itk::LightObject.
Float itk::fem::ImageMetricLoad< TMoving, TFixed >::EvaluateMetricGivenSolution | ( | Element::ArrayType * | el, |
Float | step = 1.0 |
||
) |
Float itk::fem::ImageMetricLoad< TMoving, TFixed >::EvaluateMetricGivenSolution1 | ( | Element::ArrayType * | el, |
Float | step = 1.0 |
||
) |
VectorType itk::fem::ImageMetricLoad< TMoving, TFixed >::Fe | ( | VectorType | , |
VectorType | |||
) |
Compute the image based load - implemented with ITK metric derivatives.
|
inline |
Definition at line 334 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Energy.
|
inline |
Definition at line 216 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_TarImage.
Float itk::fem::ImageMetricLoad< TMoving, TFixed >::GetMetric | ( | VectorType | InVec | ) |
This method returns the total metric evaluated over the image with respect to the current solution.
|
inline |
Set/Get the metric gradient image
Definition at line 324 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_MetricGradientImage.
|
inline |
Get the metric region size.
Definition at line 228 of file itkFEMImageMetricLoad.h.
|
inline |
Definition at line 212 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_RefImage.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::fem::LoadElement.
|
inline |
Set/Get methods for the number of integration points to use in each 1-dimensional line integral when evaluating the load. This value is passed to the load implementation.
Definition at line 241 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_NumberOfIntegrationPoints.
VectorType itk::fem::ImageMetricLoad< TMoving, TFixed >::GetPolynomialFitToMetric | ( | VectorType | PositionInElement, |
VectorType | SolutionAtPosition | ||
) |
|
inlineoverridevirtual |
Get the pointer to the solution vector.
Reimplemented from itk::fem::Load.
Definition at line 278 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Solution.
|
inline |
Definition at line 293 of file itkFEMImageMetricLoad.h.
References itk::fem::Solution::GetSolutionValue(), and itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Solution.
void itk::fem::ImageMetricLoad< TMoving, TFixed >::InitializeMetric | ( | ) |
VectorType itk::fem::ImageMetricLoad< TMoving, TFixed >::MetricFiniteDiff | ( | VectorType | PositionInElement, |
VectorType | SolutionAtPosition | ||
) |
|
static |
Method for creation through the object factory.
|
inlinestatic |
Definition at line 313 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::ImageMetricLoad().
|
inline |
Definition at line 330 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Energy.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::fem::LoadElement.
|
inline |
Definition at line 338 of file itkFEMImageMetricLoad.h.
References itk::Math::e, and itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Energy.
|
inline |
Define the target (fixed) image.
Definition at line 199 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_TarImage, and itk::fem::ImageMetricLoad< TMoving, TFixed >::m_TarSize.
|
inline |
Scaling of the similarity energy term
Definition at line 262 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Gamma.
|
inline |
Set/Get the Metric.
Definition at line 179 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Metric.
|
inline |
Definition at line 206 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Metric, and itk::fem::ImageMetricLoad< TMoving, TFixed >::m_TarSize.
|
inline |
Set/Get the metric gradient image
Definition at line 320 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_MetricGradientImage.
|
inline |
Definition at line 192 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Metric, and itk::fem::ImageMetricLoad< TMoving, TFixed >::m_RefSize.
|
inline |
Define the metric region size.
Definition at line 222 of file itkFEMImageMetricLoad.h.
|
inline |
Define the reference (moving) image.
Definition at line 185 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_RefImage, and itk::fem::ImageMetricLoad< TMoving, TFixed >::m_RefSize.
|
inline |
Set/Get methods for the number of integration points to use in each 1-dimensional line integral when evaluating the load. This value is passed to the load implementation.
Definition at line 237 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_NumberOfIntegrationPoints.
|
inline |
Set the direction of the gradient (uphill or downhill). E.g. the mean squares metric should be minimized while NCC and PR should be maximized.
Definition at line 250 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Sign.
|
inlineoverridevirtual |
Set the pointer to the solution vector.
ptr | Pointer to the object of Solution class. |
Reimplemented from itk::fem::Load.
Definition at line 270 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Solution.
|
inline |
Set the sigma in a gaussian measure.
Definition at line 256 of file itkFEMImageMetricLoad.h.
References itk::fem::ImageMetricLoad< TMoving, TFixed >::m_Temp.
|
static |
Dimensionality of input and output data is assumed to be the same.
Definition at line 101 of file itkFEMImageMetricLoad.h.
|
mutableprivate |
|
private |
Definition at line 362 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::SetGamma().
|
private |
Definition at line 367 of file itkFEMImageMetricLoad.h.
|
private |
|
private |
Definition at line 350 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::GetMetricGradientImage(), and itk::fem::ImageMetricLoad< TMoving, TFixed >::SetMetricGradientImage().
|
private |
Definition at line 357 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::GetNumberOfIntegrationPoints(), and itk::fem::ImageMetricLoad< TMoving, TFixed >::SetNumberOfIntegrationPoints().
|
private |
Definition at line 351 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::GetMovingImage(), and itk::fem::ImageMetricLoad< TMoving, TFixed >::SetMovingImage().
|
private |
used by the metric to set region size for fixed image
Definition at line 355 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::SetMetricMovingImage(), and itk::fem::ImageMetricLoad< TMoving, TFixed >::SetMovingImage().
|
private |
Definition at line 360 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::SetSign().
|
private |
Definition at line 364 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::GetSolution(), and itk::fem::ImageMetricLoad< TMoving, TFixed >::SetSolution().
|
private |
Definition at line 358 of file itkFEMImageMetricLoad.h.
|
private |
Definition at line 359 of file itkFEMImageMetricLoad.h.
|
private |
Definition at line 352 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::GetFixedImage(), and itk::fem::ImageMetricLoad< TMoving, TFixed >::SetFixedImage().
|
private |
Definition at line 356 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::SetFixedImage(), and itk::fem::ImageMetricLoad< TMoving, TFixed >::SetMetricFixedImage().
|
private |
Definition at line 361 of file itkFEMImageMetricLoad.h.
Referenced by itk::fem::ImageMetricLoad< TMoving, TFixed >::SetTemp().
|
private |
Definition at line 366 of file itkFEMImageMetricLoad.h.