go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Loading...
Searching...
No Matches
elastix::FullSearch< TElastix > Class Template Reference

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

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 ( )
overrideprotecteddefault

Member Function Documentation

◆ AfterEachIteration()

template<class TElastix>
void elastix::FullSearch< TElastix >::AfterEachIteration ( )
overridevirtual

Reimplemented from elastix::BaseComponent.

◆ AfterEachResolution()

template<class TElastix>
void elastix::FullSearch< TElastix >::AfterEachResolution ( )
overridevirtual

Reimplemented from elastix::BaseComponent.

◆ AfterRegistration()

template<class TElastix>
void elastix::FullSearch< TElastix >::AfterRegistration ( )
overridevirtual

Reimplemented from elastix::BaseComponent.

◆ BeforeEachResolution()

template<class TElastix>
void elastix::FullSearch< TElastix >::BeforeEachResolution ( )
overridevirtual

Reimplemented from elastix::BaseComponent.

◆ BeforeRegistration()

template<class TElastix>
void elastix::FullSearch< TElastix >::BeforeRegistration ( )
overridevirtual

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
protectedvirtual

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 doxygen 1.15.0 elastix logo