ITK
4.8.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 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 = MovingImageType::ImageDimension |
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 |
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 | |
Protected Member Functions inherited from itk::fem::LoadElement | |
void | AddNextElementInternal (const Element *e) |
virtual void | PrintSelf (std::ostream &os, Indent indent) const override |
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 () |
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::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 150 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 159 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef unsigned long itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::ElementIdentifier |
Definition at line 158 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 135 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef PDEDeformableRegistrationFunction<FixedImageType, MovingImageType, DisplacementFieldType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FiniteDifferenceFunctionType |
PDEDeformableRegistrationFilterFunction type.
Definition at line 141 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef FiniteDifferenceFunctionType::Pointer itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::FiniteDifferenceFunctionTypePointer |
Definition at line 142 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 147 of file itkFEMFiniteDifferenceFunctionLoad.h.
typedef MIRegistrationFunction<FixedImageType, MovingImageType, DisplacementFieldType> itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::MIRegistrationFunctionType |
Definition at line 156 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 153 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 144 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 293 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_DisplacementField.
|
inline |
Definition at line 212 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_FixedImage.
|
inline |
Get the metric region size.
Definition at line 224 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Definition at line 207 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_MovingImage.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::fem::LoadElement.
|
inline |
Definition at line 238 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_NumberOfIntegrationPoints.
|
inlineoverridevirtual |
Reimplemented from itk::fem::Load.
Definition at line 267 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_Solution.
|
inline |
Definition at line 273 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::Solution::GetSolutionValue(), and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_Solution.
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 | ( | ) |
void itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetCurrentEnergy | ( | double | e = 0.0 | ) |
|
inline |
Definition at line 251 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_Sign.
|
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 246 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_Sign.
|
inline |
Definition at line 165 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_DifferenceFunction, itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_DisplacementField, itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_FixedImage, and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_MovingImage.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetMetric().
|
inline |
Set the Displacement Field
Definition at line 287 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_DisplacementField.
|
inline |
Define the target (fixed) image.
Definition at line 196 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_DifferenceFunction, itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_FixedImage, itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_FixedSize, and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_MovingImage.
|
inline |
Scaling of the similarity energy term
Definition at line 257 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_Gamma.
|
inline |
Definition at line 175 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::SmartPointer< TObjectType >::GetPointer(), itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_DisplacementField, itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_FixedSize, and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetDifferenceFunction().
|
inline |
Define the metric region size.
Definition at line 218 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
inline |
Define the reference (moving) image.
Definition at line 184 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_DifferenceFunction, itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_MovingImage, and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_MovingSize.
|
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 233 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_NumberOfIntegrationPoints.
|
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 262 of file itkFEMFiniteDifferenceFunctionLoad.h.
References itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::m_Solution.
|
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 329 of file itkFEMFiniteDifferenceFunctionLoad.h.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetDifferenceFunction(), itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetFixedImage(), and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetMovingImage().
|
private |
Definition at line 331 of file itkFEMFiniteDifferenceFunctionLoad.h.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::GetDisplacementField(), itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetDifferenceFunction(), itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetDisplacementField(), and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetMetric().
|
private |
Definition at line 316 of file itkFEMFiniteDifferenceFunctionLoad.h.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::GetFixedImage(), itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetDifferenceFunction(), and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetFixedImage().
|
private |
Definition at line 320 of file itkFEMFiniteDifferenceFunctionLoad.h.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetFixedImage(), and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetMetric().
|
private |
Definition at line 324 of file itkFEMFiniteDifferenceFunctionLoad.h.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetGamma().
|
private |
Definition at line 326 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 315 of file itkFEMFiniteDifferenceFunctionLoad.h.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::GetMovingImage(), itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetDifferenceFunction(), itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetFixedImage(), and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetMovingImage().
|
private |
used by the metric to set region size for fixed image
Definition at line 319 of file itkFEMFiniteDifferenceFunctionLoad.h.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetMovingImage().
|
private |
|
private |
|
private |
Definition at line 325 of file itkFEMFiniteDifferenceFunctionLoad.h.
Referenced by itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::GetSolution(), and itk::fem::FiniteDifferenceFunctionLoad< TMoving, TFixed >::SetSolution().
|
private |
Definition at line 322 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 323 of file itkFEMFiniteDifferenceFunctionLoad.h.
|
private |
Definition at line 328 of file itkFEMFiniteDifferenceFunctionLoad.h.