ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes
itk::fem::RobustSolver< VDimension > Class Template Reference

#include <itkFEMRobustSolver.h>

+ Inheritance diagram for itk::fem::RobustSolver< VDimension >:
+ Collaboration diagram for itk::fem::RobustSolver< VDimension >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::FEMObjectType FEMObjectType
typedef Superclass::Float Float
typedef
InterpolationGridType::DirectionType 
InterpolationGridDirectionType
typedef
Superclass::InterpolationGridIndexType 
InterpolationGridIndexType
typedef
Superclass::InterpolationGridPointerType 
InterpolationGridPointerType
typedef
Superclass::InterpolationGridPointType 
InterpolationGridPointType
typedef
Superclass::InterpolationGridRegionType 
InterpolationGridRegionType
typedef
Superclass::InterpolationGridSizeType 
InterpolationGridSizeType
typedef
Superclass::InterpolationGridSpacingType 
InterpolationGridSpacingType
typedef
Superclass::InterpolationGridType 
InterpolationGridType
typedef
FEMObjectType::LoadContainerIterator 
LoadContainerIterator
typedef
FEMObjectType::LoadContainerType 
LoadContainerType
typedef Element::MatrixType MatrixType
typedef
FEMObjectType::NodeContainerType 
NodeContainerType
typedef SmartPointer< SelfPointer
typedef RobustSolver Self
typedef Solver< VDimension > Superclass
typedef Superclass::VectorType VectorType
- Public Types inherited from itk::fem::Solver< VDimension >
typedef DataObject::Pointer DataObjectPointer
typedef Element::ArrayType ElementArray
typedef FEMObjectType::ConstPointer FEMObjectConstPointer
typedef FEMObjectType::Pointer FEMObjectPointer
typedef Load::ArrayType LoadArray
typedef Material::ArrayType MaterialArray
typedef Element::Node::ArrayType NodeArray
typedef
ProcessObject::DataObjectPointerArraySizeType 
DataObjectPointerArraySizeType
- Public Types inherited from itk::ProcessObject
typedef
DataObject::DataObjectIdentifierType 
DataObjectIdentifierType
typedef std::vector
< DataObjectPointer
DataObjectPointerArray
typedef std::vector
< DataObjectIdentifierType
NameArray
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual void SetApproximationSteps (unsigned int _arg)
virtual unsigned int GetApproximationSteps ()
virtual void SetOutlierRejectionSteps (unsigned int _arg)
virtual unsigned int GetOutlierRejectionSteps ()
virtual void SetToleranceToLargestDisplacement (double _arg)
virtual double GetToleranceToLargestDisplacement ()
virtual void SetTradeOffImageMeshEnergy (double _arg)
virtual double GetTradeOffImageMeshEnergy ()
virtual void SetFractionErrorRejected (double _arg)
virtual double GetFractionErrorRejected ()
virtual void SetUseInterpolationGrid (bool _arg)
virtual bool GetUseInterpolationGrid ()
- Public Member Functions inherited from itk::fem::Solver< VDimension >
Float GetDeformationEnergy (unsigned int SolutionIndex=0)
virtual
InterpolationGridDirectionType 
GetDirection ()
const ElementGetElementAtPoint (const VectorType &pt) const
FEMObjectTypeGetInput (void)
FEMObjectTypeGetInput (unsigned int idx)
LinearSystemWrapper::Pointer GetLinearSystemWrapper ()
virtual InterpolationGridPointType GetOrigin ()
virtual InterpolationGridRegionType GetRegion ()
Float GetSolution (unsigned int i, unsigned int which=0)
virtual
InterpolationGridSpacingType 
GetSpacing ()
virtual Float GetTimeStep (void) const
void InitializeInterpolationGrid (const InterpolationGridSizeType &size, const InterpolationGridPointType &bb1, const InterpolationGridPointType &bb2)
virtual void SetDirection (InterpolationGridDirectionType _arg)
virtual void SetInput (FEMObjectType *fem)
virtual void SetInput (unsigned int, FEMObjectType *fem)
void SetLinearSystemWrapper (LinearSystemWrapper::Pointer ls)
virtual void SetOrigin (InterpolationGridPointType _arg)
virtual void SetRegion (InterpolationGridRegionType _arg)
virtual void SetSpacing (InterpolationGridSpacingType _arg)
virtual void SetTimeStep (Float dt)
void InitializeInterpolationGrid (const InterpolationGridSizeType &size)
void InitializeInterpolationGrid (const InterpolationGridRegionType &region, const InterpolationGridPointType &origin, const InterpolationGridSpacingType &spacing, const InterpolationGridDirectionType &direction)
const InterpolationGridTypeGetInterpolationGrid (void) const
virtual DataObjectPointer MakeOutput (DataObjectPointerArraySizeType)
FEMObjectTypeGetOutput (void)
FEMObjectTypeGetOutput (unsigned int idx)
- Public Member Functions inherited from itk::ProcessObject
virtual void AbortGenerateDataOff ()
virtual void AbortGenerateDataOn ()
virtual void EnlargeOutputRequestedRegion (DataObject *)
virtual const bool & GetAbortGenerateData ()
NameArray GetInputNames () const
MultiThreader * GetMultiThreader () const
DataObjectPointerArraySizeType GetNumberOfIndexedInputs () const
DataObjectPointerArraySizeType GetNumberOfInputs () const
DataObjectPointerArraySizeType GetNumberOfOutputs () const
virtual
DataObjectPointerArraySizeType 
GetNumberOfValidRequiredInputs () const
NameArray GetOutputNames () const
virtual const float & GetProgress ()
NameArray GetRequiredInputNames () const
bool HasInput (const DataObjectIdentifierType &key) const
bool HasOutput (const DataObjectIdentifierType &key) const
virtual DataObjectPointer MakeOutput (const DataObjectIdentifierType &)
virtual void PrepareOutputs ()
virtual void PropagateRequestedRegion (DataObject *output)
virtual void ResetPipeline ()
virtual void SetAbortGenerateData (bool _arg)
virtual void SetProgress (float _arg)
virtual void Update ()
virtual void UpdateLargestPossibleRegion ()
virtual void UpdateOutputData (DataObject *output)
virtual void UpdateOutputInformation ()
void UpdateProgress (float amount)
DataObjectPointerArray GetInputs ()
DataObjectPointerArray GetOutputs ()
DataObjectPointerArray GetIndexedInputs ()
DataObjectPointerArray GetIndexedOutputs ()
DataObjectPointerArraySizeType GetNumberOfIndexedOutputs () const
virtual void SetReleaseDataFlag (bool flag)
virtual bool GetReleaseDataFlag () const
void ReleaseDataFlagOn ()
void ReleaseDataFlagOff ()
virtual void SetReleaseDataBeforeUpdateFlag (bool _arg)
virtual const bool & GetReleaseDataBeforeUpdateFlag ()
virtual void ReleaseDataBeforeUpdateFlagOn ()
virtual void ReleaseDataBeforeUpdateFlagOff ()
virtual void SetNumberOfThreads (ThreadIdType _arg)
virtual const ThreadIdTypeGetNumberOfThreads ()
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
unsigned long AddObserver (const EventObject &event, Command *) const
virtual void DebugOff () const
virtual void DebugOn () const
CommandGetCommand (unsigned long tag)
bool GetDebug () const
MetaDataDictionaryGetMetaDataDictionary (void)
const MetaDataDictionaryGetMetaDataDictionary (void) const
virtual unsigned long GetMTime () const
virtual const TimeStampGetTimeStamp () const
bool HasObserver (const EventObject &event) const
void InvokeEvent (const EventObject &)
void InvokeEvent (const EventObject &) const
virtual void Modified () const
virtual void Register () const
void RemoveAllObservers ()
void RemoveObserver (unsigned long tag)
void SetDebug (bool debugFlag) const
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
virtual void SetReferenceCount (int)
virtual void UnRegister () const
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
virtual int GetReferenceCount () const
 itkCloneMacro (Self)
void Print (std::ostream &os, Indent indent=0) const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int FEMDimension = VDimension
- Static Public Attributes inherited from itk::fem::Solver< VDimension >
static const unsigned int MaxDimensions = 3

Protected Member Functions

void AddExternalForcesToSetMeshZeroEnergy ()
virtual void AssembleElementMatrixWithID (const Element::Pointer &e, unsigned int matrixIndex)
void AssembleF ()
void AssembleGlobalMatrixFromLandmarksAndMeshMatrices ()
void AssembleLandmarkStiffnessMatrix ()
void AssembleMeshStiffnessMatrix ()
void CalculateExternalForces ()
void ComputeLandmarkSimulatedDisplacementAndWeightedError ()
void ComputeLandmarkTensor ()
void DeleteFromLandmarkBeginning (unsigned int numberOfRejectedLandmarksPerStep)
void DeleteLandmarksOutOfMesh ()
virtual void GenerateData ()
float GetLandmarkTensorPonderation () const
void IncrementalSolverWithOutlierRejection ()
void IncrementalSolverWithoutOutlierRejection ()
void Initialization ()
void InitializeInterpolationGrid ()
void InitializeLandmarks ()
void NthElementWRTDisplacementError (unsigned int numberOfRejectedBlocksPerStep)
void RemoveUnselectedLandmarkContributionInPointStiffnessMatrix ()
void RescaleLandmarkStiffnessMatrix (double oldPointTensorPonderation)
virtual void RunSolver (void)
void SolveSystem ()
void UnselectLandmarks (unsigned int numberOfRejectedBlocksPerStep)
 RobustSolver ()
 ~RobustSolver ()
 Solver ()
virtual ~Solver ()
void PrintSelf (std::ostream &os, Indent indent) const
void AssembleK ()
virtual void InitializeMatrixForAssembly (unsigned int N)
virtual void FinalizeMatrixAfterAssembly (void)
virtual void AssembleElementMatrix (Element::Pointer e)
virtual void AssembleLandmarkContribution (Element::ConstPointer e, float)
void ApplyBC (int dim=0, unsigned int matrix=0)
void AssembleF (int dim=0)
void DecomposeK (void)
void UpdateDisplacements (void)
void FillInterpolationGrid (void)
virtual void InitializeLinearSystemWrapper (void)
- Protected Member Functions inherited from itk::ProcessObject
virtual void AddInput (DataObject *input)
virtual void AddOutput (DataObject *output)
bool AddRequiredInputName (const DataObjectIdentifierType &)
virtual void CacheInputReleaseDataFlags ()
virtual void GenerateInputRequestedRegion ()
virtual void GenerateOutputInformation ()
virtual void GenerateOutputRequestedRegion (DataObject *output)
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredInputs ()
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredOutputs ()
bool IsIndexedName (const DataObjectIdentifierType &) const
bool IsRequiredInputName (const DataObjectIdentifierType &) const
 itkLegacyMacro (virtual void RemoveInput(DataObject *input))
 itkLegacyMacro (virtual void RemoveOutput(DataObject *output))
 itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num))
 itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num))
DataObjectPointerArraySizeType MakeIndexFromName (const DataObjectIdentifierType &) const
DataObjectIdentifierType MakeNameFromIndex (DataObjectPointerArraySizeType) const
 ProcessObject ()
virtual void PropagateResetPipeline ()
virtual void ReleaseInputs ()
virtual void RemoveInput (const DataObjectIdentifierType &key)
virtual void RemoveInput (DataObjectPointerArraySizeType)
virtual void RemoveOutput (const DataObjectIdentifierType &key)
virtual void RemoveOutput (DataObjectPointerArraySizeType idx)
bool RemoveRequiredInputName (const DataObjectIdentifierType &)
virtual void RestoreInputReleaseDataFlags ()
virtual void SetInput (const DataObjectIdentifierType &key, DataObject *input)
virtual void SetNthInput (DataObjectPointerArraySizeType num, DataObject *input)
virtual void SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output)
void SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num)
void SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num)
virtual void SetNumberOfRequiredInputs (DataObjectPointerArraySizeType)
virtual void SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg)
virtual void SetOutput (const DataObjectIdentifierType &key, DataObject *output)
virtual void SetPrimaryInput (DataObject *input)
virtual void SetPrimaryOutput (DataObject *output)
void SetRequiredInputNames (const NameArray &)
virtual void VerifyInputInformation ()
virtual void VerifyPreconditions ()
 ~ProcessObject ()
DataObjectGetInput (const DataObjectIdentifierType &key)
const DataObjectGetInput (const DataObjectIdentifierType &key) const
DataObjectGetInput (DataObjectPointerArraySizeType)
const DataObjectGetInput (DataObjectPointerArraySizeType idx) const
DataObjectGetPrimaryInput ()
const DataObjectGetPrimaryInput () const
DataObjectGetOutput (const DataObjectIdentifierType &key)
const DataObjectGetOutput (const DataObjectIdentifierType &key) const
DataObjectGetOutput (DataObjectPointerArraySizeType idx)
const DataObjectGetOutput (DataObjectPointerArraySizeType idx) const
DataObjectGetPrimaryOutput ()
const DataObjectGetPrimaryOutput () const
virtual void PushBackInput (const DataObject *input)
virtual void PopBackInput ()
virtual void PushFrontInput (const DataObject *input)
virtual void PopFrontInput ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- 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 Types

typedef unsigned int FEMIndexType

Private Member Functions

void operator= (const Self &)
 RobustSolver (const Self &)

Private Attributes

unsigned int m_ApproximationSteps
double m_ConjugateGradientPrecision
FEMIndexType m_ExternalForceIndex
FEMIndexType m_ForceIndex
double m_FractionErrorRejected
LinearSystemWrapperItpack m_Itpack
FEMIndexType m_LandmarkForceIndex
FEMIndexType m_LandmarkStiffnessMatrixIndex
FEMIndexType m_MeshStiffnessMatrixIndex
unsigned int m_OutlierRejectionSteps
FEMIndexType m_SolutionIndex
FEMIndexType m_StiffnessMatrixIndex
double m_ToleranceToLargestDisplacement
double m_TradeOffImageMeshEnergy
bool m_UseInterpolationGrid

Additional Inherited Members

unsigned int m_NGFN
unsigned int m_NMFC
LinearSystemWrapper::Pointer m_ls
LinearSystemWrapperVNL m_lsVNL
InterpolationGridPointerType m_InterpolationGrid
FEMObjectPointer m_FEMObject
- Protected Attributes inherited from itk::ProcessObject
bool m_Updating
TimeStamp m_OutputInformationMTime

Detailed Description

template<unsigned int VDimension = 3>
class itk::fem::RobustSolver< VDimension >

Definition at line 84 of file itkFEMRobustSolver.h.


Member Typedef Documentation

template<unsigned int VDimension = 3>
typedef SmartPointer<const Self> itk::fem::RobustSolver< VDimension >::ConstPointer

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 91 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef unsigned int itk::fem::RobustSolver< VDimension >::FEMIndexType
private

This type represents the index of the vector and matrix.

Definition at line 345 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::FEMObjectType itk::fem::RobustSolver< VDimension >::FEMObjectType

Smart Pointer type to a DataObject.

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 113 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::Float itk::fem::RobustSolver< VDimension >::Float

Some convenient typedefs.

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 101 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef InterpolationGridType::DirectionType itk::fem::RobustSolver< VDimension >::InterpolationGridDirectionType

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 109 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::InterpolationGridIndexType itk::fem::RobustSolver< VDimension >::InterpolationGridIndexType

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 108 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::InterpolationGridPointerType itk::fem::RobustSolver< VDimension >::InterpolationGridPointerType

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 103 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::InterpolationGridPointType itk::fem::RobustSolver< VDimension >::InterpolationGridPointType

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 106 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::InterpolationGridRegionType itk::fem::RobustSolver< VDimension >::InterpolationGridRegionType

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 105 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::InterpolationGridSizeType itk::fem::RobustSolver< VDimension >::InterpolationGridSizeType

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 104 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::InterpolationGridSpacingType itk::fem::RobustSolver< VDimension >::InterpolationGridSpacingType

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 107 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::InterpolationGridType itk::fem::RobustSolver< VDimension >::InterpolationGridType

Type used to store interpolation grid

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 102 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef FEMObjectType::LoadContainerIterator itk::fem::RobustSolver< VDimension >::LoadContainerIterator

Definition at line 119 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef FEMObjectType::LoadContainerType itk::fem::RobustSolver< VDimension >::LoadContainerType

Definition at line 117 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Element::MatrixType itk::fem::RobustSolver< VDimension >::MatrixType

Some convenient types

Definition at line 116 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef FEMObjectType::NodeContainerType itk::fem::RobustSolver< VDimension >::NodeContainerType

Definition at line 118 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef SmartPointer<Self> itk::fem::RobustSolver< VDimension >::Pointer

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 90 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef RobustSolver itk::fem::RobustSolver< VDimension >::Self

Standard class typedefs.

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 88 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Solver<VDimension> itk::fem::RobustSolver< VDimension >::Superclass

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 89 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
typedef Superclass::VectorType itk::fem::RobustSolver< VDimension >::VectorType

Inherit some types from the superclass.

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 97 of file itkFEMRobustSolver.h.


Constructor & Destructor Documentation

template<unsigned int VDimension = 3>
itk::fem::RobustSolver< VDimension >::RobustSolver ( )
protected

Default constructor which sets the indices for the matrix and vector storage.

template<unsigned int VDimension = 3>
itk::fem::RobustSolver< VDimension >::~RobustSolver ( )
protected

Default constructor which sets the indices for the matrix and vector storage.

template<unsigned int VDimension = 3>
itk::fem::RobustSolver< VDimension >::RobustSolver ( const Self )
private

Member Function Documentation

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::AddExternalForcesToSetMeshZeroEnergy ( )
protected

Add exteranl force to set the mesh energy to be zero, which is equivalent to starting FEM solver from the deformed mesh

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::AssembleElementMatrixWithID ( const Element::Pointer e,
unsigned int  matrixIndex 
)
protectedvirtual

Assemble element stiffness matrix, which will be used to assemble the global stiffness matrix

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::AssembleF ( )
protected

Assemble right side F vector based on the landmarks

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::AssembleGlobalMatrixFromLandmarksAndMeshMatrices ( )
protected

Add global stiffness matrix with landmark stiffness matrix

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::AssembleLandmarkStiffnessMatrix ( )
protected

Simulate the landmark as a physical point and assemble its contribution matrix

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::AssembleMeshStiffnessMatrix ( )
protected

Assemble the global mechanical stiffness matrix from the mesh contained in the FEMObject

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::CalculateExternalForces ( )
protected

Calculate KU, which will be added on the righ hand side to reach the effect of zeroing mesh energy

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::ComputeLandmarkSimulatedDisplacementAndWeightedError ( )
protected

Compute the approximation error for each landmark for subsequent outlier rejection, by taking into account the weight set in the ToleranceToLargestDisplacement.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::ComputeLandmarkTensor ( )
protected

Compute the tensor associated with the landmark. The tensor is structural weighted if a structural tensor point set is available

template<unsigned int VDimension = 3>
virtual::itk::LightObject::Pointer itk::fem::RobustSolver< VDimension >::CreateAnother ( void  ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::fem::Solver< VDimension >.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::DeleteFromLandmarkBeginning ( unsigned int  numberOfRejectedLandmarksPerStep)
protected

Delete outliers. The argument define the number of outlier landmarks that will be rejected at each one of the iterations.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::DeleteLandmarksOutOfMesh ( )
protected

Delete landmarks whose coordinates land outside of the mesh.

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::GenerateData ( )
protectedvirtual

Method invoked by the pipeline in order to trigger the computation of the registration.

Reimplemented from itk::fem::Solver< VDimension >.

template<unsigned int VDimension = 3>
virtual unsigned int itk::fem::RobustSolver< VDimension >::GetApproximationSteps ( )
virtual

Number of iterations used by the solver to compute approximations.

template<unsigned int VDimension = 3>
virtual double itk::fem::RobustSolver< VDimension >::GetFractionErrorRejected ( )
virtual

This variable control the fraction of landmarks that will be rejected as outliers. It is expected to be a number between 0.0 and 1.0.

template<unsigned int VDimension = 3>
float itk::fem::RobustSolver< VDimension >::GetLandmarkTensorPonderation ( ) const
protected

Get scaling factor

template<unsigned int VDimension = 3>
virtual const char* itk::fem::RobustSolver< VDimension >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods)

Reimplemented from itk::fem::Solver< VDimension >.

template<unsigned int VDimension = 3>
virtual unsigned int itk::fem::RobustSolver< VDimension >::GetOutlierRejectionSteps ( )
virtual

Number of iterations to be run in which outliers will be removed.

template<unsigned int VDimension = 3>
virtual double itk::fem::RobustSolver< VDimension >::GetToleranceToLargestDisplacement ( )
virtual

This variable set the largest error that will be tolerated when rejecting outliers. It is expected to be a value from 0.0 to 1.0, and represents a fraction of the largest error in the collection of feature points.

template<unsigned int VDimension = 3>
virtual double itk::fem::RobustSolver< VDimension >::GetTradeOffImageMeshEnergy ( )
virtual

Control the balance between the Mesh deformation energy and the matching energy. The range of values is from 0.0 to 1.0. When set to zero, the matching energy is not considered. When set to 1.0 the solver with consider equally the Mesh energy and the matching energy.

template<unsigned int VDimension = 3>
virtual bool itk::fem::RobustSolver< VDimension >::GetUseInterpolationGrid ( )
virtual

When enabling the use of the interpolation grid, this accelerate the proces of locating of the element containing the image pixels or landmarks.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::IncrementalSolverWithOutlierRejection ( )
protected

Solve iteratively, with outlier rejection, from approximation to interpolation

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::IncrementalSolverWithoutOutlierRejection ( )
protected

Solve iteratively, without outlier rejection, from approximation to interpolation

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::Initialization ( )
protected

Initialize matrix, vector, solution, interpolation grid, and landmark.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::InitializeInterpolationGrid ( )
protected

Initialize the interpolation grid, which will be used to accelerate the locating of the element containing the image pixels or landmarks. This will use the grid parameters provided in the SetOrigin, SetSpacing, SetDirection and SetRegion methods.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::InitializeLandmarks ( )
protected

For each one of the landmarks, it record the element in which the landmark is located, and its local coordinates.

template<unsigned int VDimension = 3>
static Pointer itk::fem::RobustSolver< VDimension >::New ( )
static

Method for creation through the object factory.

Reimplemented from itk::fem::Solver< VDimension >.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::NthElementWRTDisplacementError ( unsigned int  numberOfRejectedBlocksPerStep)
protected

Sort the points in the decreasing order of error norm. The argument defines how many elements will be rejected at every step after they have been sorted.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::operator= ( const Self )
private

Make a DataObject of the correct type to be used as the specified output.

Reimplemented from itk::fem::Solver< VDimension >.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::RemoveUnselectedLandmarkContributionInPointStiffnessMatrix ( )
protected

Remove the contribution of the unselected landmarks from the landmark stiffness matrix

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::RescaleLandmarkStiffnessMatrix ( double  oldPointTensorPonderation)
protected

Adjust the landmark stiffness matrix based on the change of the number of the landmarks. The argument depend on the number of landmarks and the number of node in the mesh. This method update the value of the ponderation based on a previous ponderation value and the computed Landmark Tensor ponderation returned by the GetLandmarkTensorPonderation() method.

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::RunSolver ( void  )
protectedvirtual

Run the solver and produce a warped FEM object

Reimplemented from itk::fem::Solver< VDimension >.

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::SetApproximationSteps ( unsigned int  _arg)
virtual

Number of iterations used by the solver to compute approximations.

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::SetFractionErrorRejected ( double  _arg)
virtual

This variable control the fraction of landmarks that will be rejected as outliers. It is expected to be a number between 0.0 and 1.0.

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::SetOutlierRejectionSteps ( unsigned int  _arg)
virtual

Number of iterations to be run in which outliers will be removed.

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::SetToleranceToLargestDisplacement ( double  _arg)
virtual

This variable set the largest error that will be tolerated when rejecting outliers. It is expected to be a value from 0.0 to 1.0, and represents a fraction of the largest error in the collection of feature points.

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::SetTradeOffImageMeshEnergy ( double  _arg)
virtual

Control the balance between the Mesh deformation energy and the matching energy. The range of values is from 0.0 to 1.0. When set to zero, the matching energy is not considered. When set to 1.0 the solver with consider equally the Mesh energy and the matching energy.

template<unsigned int VDimension = 3>
virtual void itk::fem::RobustSolver< VDimension >::SetUseInterpolationGrid ( bool  _arg)
virtual

When enabling the use of the interpolation grid, this accelerate the proces of locating of the element containing the image pixels or landmarks.

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::SolveSystem ( )
protected

Solve LS

template<unsigned int VDimension = 3>
void itk::fem::RobustSolver< VDimension >::UnselectLandmarks ( unsigned int  numberOfRejectedBlocksPerStep)
protected

Unselect landmark from landmark array. The argument defines how many landmarks will be unselected, after they have already been sorted. This method must be called after NthElementWRTDisplacementError() has been invoked to sort the landmarks.


Member Data Documentation

template<unsigned int VDimension = 3>
const unsigned int itk::fem::RobustSolver< VDimension >::FEMDimension = VDimension
static

Reimplemented from itk::fem::Solver< VDimension >.

Definition at line 111 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
unsigned int itk::fem::RobustSolver< VDimension >::m_ApproximationSteps
private

The number of approximation to interpolatioin without outlier rejection.

Definition at line 339 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
double itk::fem::RobustSolver< VDimension >::m_ConjugateGradientPrecision
private

Definition at line 358 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
FEMIndexType itk::fem::RobustSolver< VDimension >::m_ExternalForceIndex
private

Definition at line 349 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
FEMIndexType itk::fem::RobustSolver< VDimension >::m_ForceIndex
private

Definition at line 347 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
double itk::fem::RobustSolver< VDimension >::m_FractionErrorRejected
private

Definition at line 359 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
LinearSystemWrapperItpack itk::fem::RobustSolver< VDimension >::m_Itpack
private

Definition at line 369 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
FEMIndexType itk::fem::RobustSolver< VDimension >::m_LandmarkForceIndex
private

Definition at line 348 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
FEMIndexType itk::fem::RobustSolver< VDimension >::m_LandmarkStiffnessMatrixIndex
private

Definition at line 352 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
FEMIndexType itk::fem::RobustSolver< VDimension >::m_MeshStiffnessMatrixIndex
private

Definition at line 351 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
unsigned int itk::fem::RobustSolver< VDimension >::m_OutlierRejectionSteps
private

The number of outlier rejection. Note that outlier rejection is performed from approximation to interpolation

Definition at line 334 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
FEMIndexType itk::fem::RobustSolver< VDimension >::m_SolutionIndex
private

Definition at line 350 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
FEMIndexType itk::fem::RobustSolver< VDimension >::m_StiffnessMatrixIndex
private

Definition at line 353 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
double itk::fem::RobustSolver< VDimension >::m_ToleranceToLargestDisplacement
private

Definition at line 357 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
double itk::fem::RobustSolver< VDimension >::m_TradeOffImageMeshEnergy
private

Definition at line 355 of file itkFEMRobustSolver.h.

template<unsigned int VDimension = 3>
bool itk::fem::RobustSolver< VDimension >::m_UseInterpolationGrid
private

Use interpolation grid to initialize the landmarks or not. If use the grid, make sure the landmark is the grid point. The landmarks (feature points) are usually the grid points if these landmarks come from a feature point detection algorithm applied on an image.

Definition at line 367 of file itkFEMRobustSolver.h.


The documentation for this class was generated from the following file: