ITK  4.4.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 | List of all members
itk::fem::RobustSolver< VDimension > Class Template Reference

#include <itkFEMRobustSolver.h>

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

Detailed Description

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

Definition at line 84 of file itkFEMRobustSolver.h.

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 SmartPointer< const SelfConstPointer
 
typedef DataObject::Pointer DataObjectPointer
 
typedef Element::ArrayType ElementArray
 
typedef FEMObjectType::ConstPointer FEMObjectConstPointer
 
typedef FEMObjectType::Pointer FEMObjectPointer
 
typedef itk::fem::FEMObject
< VDimension > 
FEMObjectType
 
typedef Element::Float Float
 
typedef
InterpolationGridType::DirectionType 
InterpolationGridDirectionType
 
typedef
InterpolationGridType::IndexType 
InterpolationGridIndexType
 
typedef
InterpolationGridType::Pointer 
InterpolationGridPointerType
 
typedef
InterpolationGridType::PointType 
InterpolationGridPointType
 
typedef
InterpolationGridType::RegionType 
InterpolationGridRegionType
 
typedef
InterpolationGridType::SizeType 
InterpolationGridSizeType
 
typedef
InterpolationGridType::SpacingType 
InterpolationGridSpacingType
 
typedef itk::Image
< Element::ConstPointer,
VDimension > 
InterpolationGridType
 
typedef Load::ArrayType LoadArray
 
typedef Material::ArrayType MaterialArray
 
typedef Element::Node::ArrayType NodeArray
 
typedef SmartPointer< SelfPointer
 
typedef Solver Self
 
typedef ProcessObject Superclass
 
typedef Element::VectorType VectorType
 
typedef
ProcessObject::DataObjectPointerArraySizeType 
DataObjectPointerArraySizeType
 
- Public Types inherited from itk::ProcessObject
typedef SmartPointer< const SelfConstPointer
 
typedef
DataObject::DataObjectIdentifierType 
DataObjectIdentifierType
 
typedef DataObject::Pointer DataObjectPointer
 
typedef std::vector
< DataObjectPointer
DataObjectPointerArray
 
typedef
DataObjectPointerArray::size_type 
DataObjectPointerArraySizeType
 
typedef std::vector
< DataObjectIdentifierType
NameArray
 
typedef SmartPointer< SelfPointer
 
typedef ProcessObject Self
 
typedef Object Superclass
 
- Public Types inherited from itk::Object
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef Object Self
 
typedef LightObject Superclass
 
- Public Types inherited from itk::LightObject
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef LightObject Self
 

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 >
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
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 ModifiedTimeType 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 Member Functions inherited from itk::fem::Solver< VDimension >
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 FEMDimension = 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 ()
 
- Protected Member Functions inherited from itk::fem::Solver< VDimension >
 Solver ()
 
virtual ~Solver ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
void GenerateData ()
 
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)
 

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

- Protected Types inherited from itk::LightObject
typedef int InternalReferenceCountType
 
- Protected Attributes inherited from itk::fem::Solver< VDimension >
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
TimeStamp m_OutputInformationMTime
 
bool m_Updating
 

Member Typedef Documentation

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

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

Definition at line 113 of file itkFEMRobustSolver.h.

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

Definition at line 101 of file itkFEMRobustSolver.h.

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

Definition at line 109 of file itkFEMRobustSolver.h.

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

Definition at line 108 of file itkFEMRobustSolver.h.

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

Definition at line 103 of file itkFEMRobustSolver.h.

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

Definition at line 106 of file itkFEMRobustSolver.h.

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

Definition at line 105 of file itkFEMRobustSolver.h.

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

Definition at line 104 of file itkFEMRobustSolver.h.

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

Definition at line 107 of file itkFEMRobustSolver.h.

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

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

Definition at line 90 of file itkFEMRobustSolver.h.

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

Standard class typedefs.

Definition at line 88 of file itkFEMRobustSolver.h.

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

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.

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::Object.

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::ProcessObject.

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.

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
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

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: