![]() |
ITK
4.13.0
Insight Segmentation and Registration Toolkit
|
#include <itkFEMFiniteDifferenceFunctionLoad.h>
General image pair load that uses the itkFiniteDifferenceFunctions.
This load computes FEM gravity loads by using derivatives provided by itkFiniteDifferenceFunctions (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). 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 67 of file itkFEMFiniteDifferenceFunctionLoad.h.
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static Pointer | New () |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | ImageDimension = MovingImageType::ImageDimension |
Protected Member Functions | |
virtual void | PrintSelf (std::ostream &os, Indent indent) const override |
![]() | |
void | AddNextElementInternal (const Element *e) |
![]() | |
FEMLightObject () | |
FEMLightObject (const FEMLightObject &o) | |
virtual | ~FEMLightObject () override |
![]() | |
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 Member Functions | |
FiniteDifferenceFunctionLoad () | |
Private Attributes | |
FiniteDifferenceFunctionTypePointer | m_DifferenceFunction |
DisplacementFieldType::Pointer | m_DisplacementField |
FixedPointer | m_FixedImage |
FixedImageType::SizeType | m_FixedSize |
Float | m_Gamma |
float | m_GradSigma |
MovingRadiusType | m_MetricRadius |
MovingPointer | m_MovingImage |
MovingImageType::SizeType | m_MovingSize |
unsigned int | m_NumberOfIntegrationPoints |
float | m_Sign |
Solution::ConstPointer | m_Solution |
unsigned int | m_SolutionIndex |
unsigned int | m_SolutionIndex2 |
float | m_WhichMetric |
Additional Inherited Members | |
![]() | |
Element::ConstPointer | m_Element |
![]() | |
int | m_GlobalNumber |
![]() | |
AtomicInt< int > | m_ReferenceCount |
typedef Float itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::ComputationType |
Definition at line 124 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef SmartPointer<const Self> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::ConstPointer |
Definition at line 75 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef DemonsRegistrationFunction<FixedImageType, MovingImageType, DisplacementFieldType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::DemonsRegistrationFunctionType |
Definition at line 149 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef Image<VectorType, itkGetStaticConstMacro(ImageDimension)> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::DisplacementFieldType |
Definition at line 131 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef DisplacementFieldType::Pointer itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::DisplacementFieldTypePointer |
Definition at line 132 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef VectorContainer<ElementIdentifier, Element::Pointer> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::ElementContainerType |
Definition at line 158 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef unsigned long itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::ElementIdentifier |
Definition at line 157 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef vnl_vector<Float> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FEMVectorType |
Definition at line 129 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef NeighborhoodIterator<DisplacementFieldType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FieldIteratorType |
Definition at line 134 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef PDEDeformableRegistrationFunction<FixedImageType, MovingImageType, DisplacementFieldType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FiniteDifferenceFunctionType |
PDEDeformableRegistrationFilterFunction type.
Definition at line 140 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FiniteDifferenceFunctionType::Pointer itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FiniteDifferenceFunctionTypePointer |
Definition at line 141 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FixedImageType::ConstPointer itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FixedConstPointer |
Definition at line 96 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef TFixed itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FixedImageType |
Definition at line 94 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FixedNeighborhoodIteratorType::IndexType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FixedNeighborhoodIndexType |
Definition at line 116 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef NeighborhoodIterator<FixedImageType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FixedNeighborhoodIteratorType |
Definition at line 114 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FixedImageType::PixelType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FixedPixelType |
Definition at line 122 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FixedImageType* itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FixedPointer |
Definition at line 95 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FixedNeighborhoodIteratorType::RadiusType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FixedRadiusType |
Definition at line 118 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef ImageRegionIteratorWithIndex<FixedImageType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FixedRegionIteratorType |
Definition at line 103 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef LoadElement::Float itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::Float |
Definition at line 89 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef Image<PixelType, itkGetStaticConstMacro(ImageDimension)> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::ImageType |
Definition at line 126 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MeanSquareRegistrationFunction<FixedImageType, MovingImageType, DisplacementFieldType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MeanSquareRegistrationFunctionType |
Definition at line 146 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MIRegistrationFunction<FixedImageType, MovingImageType, DisplacementFieldType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MIRegistrationFunctionType |
Definition at line 155 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MovingImageType::ConstPointer itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MovingConstPointer |
Definition at line 92 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef TMoving itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MovingImageType |
Definition at line 91 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MovingNeighborhoodIteratorType::IndexType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MovingNeighborhoodIndexType |
Definition at line 108 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef NeighborhoodIterator<MovingImageType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MovingNeighborhoodIteratorType |
Definition at line 106 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MovingImageType::PixelType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MovingPixelType |
Definition at line 121 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MovingImageType* itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MovingPointer |
Definition at line 93 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MovingNeighborhoodIteratorType::RadiusType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MovingRadiusType |
Definition at line 110 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef ImageRegionIteratorWithIndex<MovingImageType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MovingRegionIteratorType |
Definition at line 102 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef NCCRegistrationFunction<FixedImageType, MovingImageType, DisplacementFieldType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::NCCRegistrationFunctionType |
Definition at line 152 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef Float itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::PixelType |
Definition at line 123 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef SmartPointer<Self> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::Pointer |
Definition at line 74 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MovingNeighborhoodIteratorType::RadiusType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::RadiusType |
Definition at line 112 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FiniteDifferenceFunctionLoad itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::Self |
Standard class typedefs.
Definition at line 72 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef LoadElement itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::Superclass |
Definition at line 73 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FiniteDifferenceFunctionType::TimeStepType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::TimeStepType |
Definition at line 143 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef itk::Vector<float, itkGetStaticConstMacro(ImageDimension)> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::VectorType |
Definition at line 128 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
|
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::fem::LoadElement.
Float itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::EvaluateMetricGivenSolution | ( | ElementContainerType * | el, |
Float | step = 1.0 |
||
) |
FEMVectorType itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::Fe | ( | FEMVectorType | ) |
Compute the image based load - implemented with ITK metric derivatives.
double itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::GetCurrentEnergy | ( | ) |
|
inline |
Get the displacement field.
Definition at line 292 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Definition at line 211 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Get the metric region size.
Definition at line 223 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Definition at line 206 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::fem::LoadElement.
|
inline |
Definition at line 237 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inlineoverridevirtual |
Reimplemented from itk::fem::Load.
Definition at line 266 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Definition at line 272 of file itkFEMFiniteDifferenceFunctionLoad.h.
void itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::InitializeIteration | ( | ) |
void itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::InitializeMetric | ( | ) |
|
static |
New macro for creation of through the object factory.
void itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::PrintCurrentEnergy | ( | ) |
|
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.
void itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetCurrentEnergy | ( | double | e = 0.0 | ) |
|
inline |
Definition at line 250 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Set/Get the direction of the gradient (uphill or downhill). E.g. the mean squares metric should be minimized while NCC and PR should be maximized.260
Definition at line 245 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Definition at line 164 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Set the displacement field.
Definition at line 286 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Define the target (fixed) image.
Definition at line 195 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Scaling of the similarity energy term.
Definition at line 256 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Definition at line 174 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::SmartPointer< TObjectType >::GetPointer().
|
inline |
Define the metric region size.
Definition at line 217 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Define the reference (moving) image.
Definition at line 183 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
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 232 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inlineoverridevirtual |
Sets the pointer to solution vector. This function is automatically called by the Solver class on every load object.
Some types of external Loads may need access to previous values of solution vector. If a derived class needs that, it should implement this function, and store the passed pointer accordingly. If the result vector is not required, the functionn should be left unimplemented, so that only the dummy implementation in base class is called.
param ptr Pointer to the object of Solution class.
Reimplemented from itk::fem::Load.
Definition at line 261 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
static |
Dimensionality of input and output data is assumed to be the same.
Definition at line 100 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 332 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 334 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 317 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 323 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 327 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 329 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Used by the metric to set the region size for the fixed image.
Definition at line 320 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 316 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 322 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 324 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 330 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 328 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 325 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 326 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 331 of file itkFEMFiniteDifferenceFunctionLoad.h.