Loading...
Searching...
No Matches
elastix::FullSearch< TElastix > Class Template Reference
Components » Optimizers

`#include <elxFullSearchOptimizer.h>`

## Detailed Description

template<class TElastix>
class elastix::FullSearch< TElastix >

An optimizer based on the itk::FullSearchOptimizer.

Optimizer that scans a subspace of the parameter space and searches for the best parameters.

The results are written to the output-directory as an image OptimizationSurface.<elastixlevel>.R<resolution>.mhd", which is an N-dimensional float image, where N is the dimension of the search space.

The parameters used in this class are:

Parameters

  Optimizer: Select this optimizer as follows:
  (Optimizer "FullSearch")

  FullSearchSpace<r>: Defines for resolution r a range of parameters to scan.
  Full syntax: (FullSearchSpace<r> <parameter_name> <parameter_nr> <min> <max> <stepsize> [...] )
  example: (FullSearchSpace0 "translation_x" 2 -4.0 3.0 1.0 "rotation_y" 3 -1.0 1.0 0.5)
  This varies the second transform parameter in the range [-4.0 3.0] with steps of 1.0 and the third parameter in the range [-1.0 1.0] with steps of 0.5. The names are used as column headers in the screen output.

See also
  FullSearchOptimizer

Definition at line 57 of file elxFullSearchOptimizer.h.

Inheritance diagram for elastix::FullSearch< TElastix >:
[legend]

## Public Types

using | ConstPointer = itk::SmartPointer<const Self>
using | DimensionNameMapType = std::map<unsigned int, std::string>
using | ITKBaseType = typename Superclass2::ITKBaseType
using | NameIteratorType = typename DimensionNameMapType::const_iterator
using | NDImagePointer = typename NDImageType::Pointer
using | NDImageType = itk::NDImageBase<float>
using | ParameterValueType
using | Pointer = itk::SmartPointer<Self>
using | RangeType
using | RangeValueType
using | SearchSpaceIndexType
using | SearchSpaceIteratorType
using | SearchSpacePointer
using | SearchSpacePointType
using | SearchSpaceSizeType
using | SearchSpaceType
using | Self = FullSearch
using | Superclass1 = itk::FullSearchOptimizer
using | Superclass2 = OptimizerBase<TElastix>
Public Types inherited from itk::FullSearchOptimizer
using | ConstPointer = SmartPointer<const Self>
using | ParameterValueType = ParametersType::ValueType
using | Pointer = SmartPointer<Self>
using | RangeType = FixedArray<RangeValueType, 3>
using | RangeValueType = ParameterValueType
using | SearchSpaceIndexType = Array<IndexValueType>
using | SearchSpaceIteratorType = SearchSpaceType::ConstIterator
using | SearchSpacePointer = SearchSpaceType::Pointer
using | SearchSpacePointType = Array<ParameterValueType>
using | SearchSpaceSizeType = Array<SizeValueType>
using | SearchSpaceType = MapContainer<unsigned int, RangeType>
using | Self = FullSearchOptimizer
enum | StopConditionType { FullRangeSearched , MetricError }
using | Superclass = SingleValuedNonLinearOptimizer
Public Types inherited from elastix::OptimizerBase< TElastix >
using | ElastixType
using | ITKBaseType = itk::Optimizer
using | ParametersType = typename ITKBaseType::ParametersType
using | RegistrationType
using | Self = OptimizerBase
using | Superclass = BaseComponentSE<TElastix>
Public Types inherited from elastix::BaseComponentSE< TElastix >
using | ElastixType = TElastix
using | RegistrationType = typename ElastixType::RegistrationBaseType
using | Self = BaseComponentSE
using | Superclass = BaseComponent

## Public Member Functions

void | AfterEachIteration () override
void | AfterEachResolution () override
void | AfterRegistration () override
void | BeforeEachResolution () override
void | BeforeRegistration () override
| elxClassNameMacro ("FullSearch")
virtual const char * | GetClassName () const
| ITK_DISALLOW_COPY_AND_MOVE (FullSearch)
| itkGetModifiableObjectMacro (OptimizationSurface, NDImageType)
Public Member Functions inherited from itk::FullSearchOptimizer
virtual void | AddSearchDimension (unsigned int param_nr, RangeValueType minimum, RangeValueType maximum, RangeValueType step)
virtual const SearchSpaceIndexType & | GetBestIndexInSearchSpace ()
virtual const SearchSpacePointType & | GetBestPointInSearchSpace ()
virtual double | GetBestValue () const
virtual const SearchSpaceIndexType & | GetCurrentIndexInSearchSpace ()
virtual unsigned long | GetCurrentIteration () const
virtual const SearchSpacePointType & | GetCurrentPointInSearchSpace ()
virtual bool | GetMaximize () const
bool | GetMinimize () const
virtual unsigned long | GetNumberOfIterations ()
virtual unsigned int | GetNumberOfSearchSpaceDimensions ()
virtual const SearchSpaceSizeType & | GetSearchSpaceSize ()
virtual StopConditionType | GetStopCondition () const
virtual double | GetValue () const
virtual SearchSpacePointType | IndexToPoint (const SearchSpaceIndexType &index)
virtual ParametersType | IndexToPosition (const SearchSpaceIndexType &index)
| ITK_DISALLOW_COPY_AND_MOVE (FullSearchOptimizer)
| itkGetModifiableObjectMacro (SearchSpace, SearchSpaceType)
virtual void | MaximizeOff ()
virtual void | MaximizeOn ()
void | MinimizeOff ()
void | MinimizeOn ()
virtual ParametersType | PointToPosition (const SearchSpacePointType &point)
virtual void | RemoveSearchDimension (unsigned int param_nr)
virtual void | ResumeOptimization ()
virtual void | SetMaximize (bool _arg)
void | SetMinimize (bool v)
virtual void | SetSearchSpace (SearchSpaceType *_arg)
void | StartOptimization () override
virtual void | StopOptimization ()
virtual void | UpdateCurrentPosition ()
Public Member Functions inherited from elastix::OptimizerBase< TElastix >
void | AfterRegistrationBase () override
void | BeforeEachResolutionBase () override
ITKBaseType * | GetAsITKBaseType ()
const ITKBaseType * | GetAsITKBaseType () const
| ITK_DISALLOW_COPY_AND_MOVE (OptimizerBase)
virtual void | SetCurrentPositionPublic (const ParametersType &param)
virtual void | SetSinusScales (double amplitude, double frequency, unsigned long numberOfParameters)
Public Member Functions inherited from elastix::BaseComponentSE< TElastix >
void | AddTargetCellToIterationInfo (const char *const name)
const Configuration * | GetConfiguration () const
ElastixType * | GetElastix () const
auto & | GetIterationInfoAt (const char *const name)
RegistrationType * | GetRegistration () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE)
void | RemoveTargetCellFromIterationInfo (const char *const name)
void | SetConfiguration (const Configuration *_arg)
void | SetElastix (ElastixType *_arg)
Public Member Functions inherited from elastix::BaseComponent
virtual void | AfterEachIterationBase ()
virtual void | AfterEachResolutionBase ()
virtual int | BeforeAll ()
virtual int | BeforeAllBase ()
virtual void | BeforeRegistrationBase ()
virtual const char * | elxGetClassName () const
const char * | GetComponentLabel () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponent)
| itkTypeMacroNoParent (BaseComponent)
void | SetComponentLabel (const char *label, unsigned int idx)

## Static Public Member Functions

static Pointer | New ()
Static Public Member Functions inherited from itk::FullSearchOptimizer
static Pointer | New ()
Static Public Member Functions inherited from elastix::BaseComponent
template<typename TBaseComponent>
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType())
static void | InitializeElastixExecutable ()
static bool | IsElastixLibrary ()

## Protected Member Functions

virtual bool | CheckSearchSpaceRangeDefinition (const std::string &fullFieldName, const bool found, const unsigned int entry_nr) const
| FullSearch ()
| ~FullSearch () override=default
Protected Member Functions inherited from itk::FullSearchOptimizer
| FullSearchOptimizer ()
virtual void | ProcessSearchSpaceChanges ()
| ~FullSearchOptimizer () override=default
Protected Member Functions inherited from elastix::OptimizerBase< TElastix >
virtual bool | GetNewSamplesEveryIteration () const
| OptimizerBase ()=default
virtual void | SelectNewSamples ()
| ~OptimizerBase () override=default
Protected Member Functions inherited from elastix::BaseComponentSE< TElastix >
| BaseComponentSE ()=default
| ~BaseComponentSE () override=default
Protected Member Functions inherited from elastix::BaseComponent
| BaseComponent ()=default
virtual | ~BaseComponent ()=default

## Protected Attributes

NDImagePointer | m_OptimizationSurface
DimensionNameMapType | m_SearchSpaceDimensionNames
Protected Attributes inherited from itk::FullSearchOptimizer
SearchSpaceIndexType | m_BestIndexInSearchSpace {}
SearchSpacePointType | m_BestPointInSearchSpace {}
double | m_BestValue { 0.0 }
SearchSpaceIndexType | m_CurrentIndexInSearchSpace {}
SearchSpacePointType | m_CurrentPointInSearchSpace {}
unsigned long | m_LastSearchSpaceChanges { 0 }
bool | m_Maximize { false }
unsigned int | m_NumberOfSearchSpaceDimensions { 0 }
SearchSpacePointer | m_SearchSpace { nullptr }
SearchSpaceSizeType | m_SearchSpaceSize {}
bool | m_Stop { false }
StopConditionType | m_StopCondition { FullRangeSearched }
double | m_Value { 0.0 }
Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
Configuration::ConstPointer | m_Configuration {}
itk::WeakPointer< TElastix > | m_Elastix {}
RegistrationType * | m_Registration {}

## Private Attributes

| elxOverrideGetSelfMacro

## Additional Inherited Members

Protected Types inherited from elastix::OptimizerBase< TElastix >
using | SettingsVectorType = typename std::vector<SettingsType>
Static Protected Member Functions inherited from elastix::OptimizerBase< TElastix >
static void | PrintSettingsVector (const SettingsVectorType &settings)

## Member Typedef Documentation

## ConstPointer

template<class TElastix>

using elastix::FullSearch< TElastix >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 69 of file elxFullSearchOptimizer.h.

## DimensionNameMapType

template<class TElastix>

using elastix::FullSearch< TElastix >::DimensionNameMapType = std::map<unsigned int, std::string>

To store the names of the search space dimensions

Definition at line 108 of file elxFullSearchOptimizer.h.

## ITKBaseType

template<class TElastix>

using elastix::FullSearch< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType

Definition at line 101 of file elxFullSearchOptimizer.h.

## NameIteratorType

template<class TElastix>

using elastix::FullSearch< TElastix >::NameIteratorType = typename DimensionNameMapType::const_iterator

Definition at line 109 of file elxFullSearchOptimizer.h.

## NDImagePointer

template<class TElastix>

using elastix::FullSearch< TElastix >::NDImagePointer = typename NDImageType::Pointer

Definition at line 105 of file elxFullSearchOptimizer.h.

## NDImageType

template<class TElastix>

using elastix::FullSearch< TElastix >::NDImageType = itk::NDImageBase<float>

To store the results of the full search

Definition at line 104 of file elxFullSearchOptimizer.h.

## ParameterValueType

template<class TElastix>

using itk::FullSearchOptimizer::ParameterValueType

Definition at line 76 of file itkFullSearchOptimizer.h.

## Pointer

template<class TElastix>

using elastix::FullSearch< TElastix >::Pointer = itk::SmartPointer<Self>

Definition at line 68 of file elxFullSearchOptimizer.h.

## RangeType

template<class TElastix>

using itk::FullSearchOptimizer::RangeType

Definition at line 78 of file itkFullSearchOptimizer.h.

## RangeValueType

template<class TElastix>

using itk::FullSearchOptimizer::RangeValueType

Definition at line 77 of file itkFullSearchOptimizer.h.

## SearchSpaceIndexType

template<class TElastix>

using itk::FullSearchOptimizer::SearchSpaceIndexType

The same values, but transformed to integer indices. These can be used to create an image visualizing the search space.

Definition at line 89 of file itkFullSearchOptimizer.h.

## SearchSpaceIteratorType

template<class TElastix>

using itk::FullSearchOptimizer::SearchSpaceIteratorType

Definition at line 81 of file itkFullSearchOptimizer.h.

## SearchSpacePointer

template<class TElastix>

using itk::FullSearchOptimizer::SearchSpacePointer

Definition at line 80 of file itkFullSearchOptimizer.h.

## SearchSpacePointType

template<class TElastix>

using itk::FullSearchOptimizer::SearchSpacePointType

Type that stores the parameter values of the parameters to be optimized. Updated every iteration.

Definition at line 85 of file itkFullSearchOptimizer.h.

## SearchSpaceSizeType

template<class TElastix>

using itk::FullSearchOptimizer::SearchSpaceSizeType

The size of each dimension to be searched ((max-min)/step))

Definition at line 92 of file itkFullSearchOptimizer.h.

## SearchSpaceType

template<class TElastix>

using itk::FullSearchOptimizer::SearchSpaceType

Definition at line 79 of file itkFullSearchOptimizer.h.

## Self

template<class TElastix>

using elastix::FullSearch< TElastix >::Self = FullSearch

Standard ITK.

Definition at line 65 of file elxFullSearchOptimizer.h.

## Superclass1

template<class TElastix>

using elastix::FullSearch< TElastix >::Superclass1 = itk::FullSearchOptimizer

Definition at line 66 of file elxFullSearchOptimizer.h.

## Superclass2

template<class TElastix>

using elastix::FullSearch< TElastix >::Superclass2 = OptimizerBase<TElastix>

Definition at line 67 of file elxFullSearchOptimizer.h.

## Constructor & Destructor Documentation

## FullSearch()

template<class TElastix>

elastix::FullSearch< TElastix >::FullSearch | ( |  | ) |

protected

## ~FullSearch()

template<class TElastix>

elastix::FullSearch< TElastix >::~FullSearch | ( |  | ) |

override protected default

## Member Function Documentation

## AfterEachIteration()

template<class TElastix>

void elastix::FullSearch< TElastix >::AfterEachIteration | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## AfterEachResolution()

template<class TElastix>

void elastix::FullSearch< TElastix >::AfterEachResolution | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## AfterRegistration()

template<class TElastix>

void elastix::FullSearch< TElastix >::AfterRegistration | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## BeforeEachResolution()

template<class TElastix>

void elastix::FullSearch< TElastix >::BeforeEachResolution | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## BeforeRegistration()

template<class TElastix>

void elastix::FullSearch< TElastix >::BeforeRegistration | ( |  | ) |

override virtual

Methods that have to be present everywhere.

Reimplemented from elastix::BaseComponent.

## CheckSearchSpaceRangeDefinition()

template<class TElastix>

virtual bool elastix::FullSearch< TElastix >::CheckSearchSpaceRangeDefinition | ( | const std::string & | fullFieldName,
|  | const bool | found,
|  | const unsigned int | entry_nr ) const

protected virtual

Checks if an error generated while reading the search space ranges from the parameter file is a real error. Prints some error message if so.

## elxClassNameMacro()

template<class TElastix>

elastix::FullSearch< TElastix >::elxClassNameMacro | ( | "FullSearch< TElastix >" |  | ) |

Name of this class. Use this name in the parameter file to select this specific optimizer.
example: (Optimizer "FullSearch")

## GetClassName()

template<class TElastix>

virtual const char * elastix::FullSearch< TElastix >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::FullSearchOptimizer.

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TElastix>

elastix::FullSearch< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | FullSearch< TElastix > |  | ) |

## itkGetModifiableObjectMacro()

template<class TElastix>

elastix::FullSearch< TElastix >::itkGetModifiableObjectMacro | ( | OptimizationSurface | ,
|  | NDImageType | )

Todo
  BeforeAll, checking parameters.

Get a pointer to the image containing the optimization surface.

## New()

template<class TElastix>

Pointer elastix::FullSearch< TElastix >::New | ( |  | ) |

static

Method for creation through the object factory.

## Field Documentation

## elxOverrideGetSelfMacro

template<class TElastix>

elastix::FullSearch< TElastix >::elxOverrideGetSelfMacro

private

Definition at line 152 of file elxFullSearchOptimizer.h.

## m_OptimizationSurface

template<class TElastix>

NDImagePointer elastix::FullSearch< TElastix >::m_OptimizationSurface

protected

Definition at line 136 of file elxFullSearchOptimizer.h.

## m_SearchSpaceDimensionNames

template<class TElastix>

DimensionNameMapType elastix::FullSearch< TElastix >::m_SearchSpaceDimensionNames

protected

Definition at line 138 of file elxFullSearchOptimizer.h.

Generated on 1768596610 for elastix by 1.15.0 |