go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkFullSearchOptimizer.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 
19 #ifndef __itkFullSearchOptimizer_h
20 #define __itkFullSearchOptimizer_h
21 
22 #include "itkSingleValuedNonLinearOptimizer.h"
23 #include "itkMapContainer.h"
24 #include "itkImage.h"
25 #include "itkArray.h"
26 #include "itkFixedArray.h"
27 
28 namespace itk
29 {
30 
47 {
48 public:
49 
54  typedef SmartPointer< const Self > ConstPointer;
55 
57  itkNewMacro( Self );
58 
61 
63  typedef enum {
67 
68  /* Typedefs inherited from superclass */
69  typedef Superclass::ParametersType ParametersType;
70  typedef Superclass::CostFunctionType CostFunctionType;
71  typedef Superclass::CostFunctionPointer CostFunctionPointer;
72  typedef Superclass::MeasureType MeasureType;
73 
74  typedef ParametersType::ValueType ParameterValueType; // = double
76  typedef FixedArray< RangeValueType, 3 > RangeType;
77  typedef MapContainer< unsigned int, RangeType > SearchSpaceType;
78  typedef SearchSpaceType::Pointer SearchSpacePointer;
79  typedef SearchSpaceType::ConstIterator SearchSpaceIteratorType;
80 
83  typedef Array< ParameterValueType > SearchSpacePointType;
84 
87  typedef Array< IndexValueType > SearchSpaceIndexType;
88 
90  typedef Array< SizeValueType > SearchSpaceSizeType;
91 
95  itkGetConstMacro( Maximize, bool );
96  itkSetMacro( Maximize, bool );
97  itkBooleanMacro( Maximize );
98  bool GetMinimize() const
99  { return !m_Maximize; }
100  void SetMinimize( bool v )
101  { this->SetMaximize( !v ); }
102  void MinimizeOn()
103  { this->MaximizeOff(); }
104  void MinimizeOff()
105  { this->MaximizeOn(); }
106 
121  virtual void UpdateCurrentPosition( void );
122 
126  virtual void StartOptimization( void );
127 
131  virtual void ResumeOptimization( void );
132 
136  virtual void StopOptimization( void );
137 
148  itkSetObjectMacro( SearchSpace, SearchSpaceType );
149  itkGetObjectMacro( SearchSpace, SearchSpaceType );
150 
152  virtual void AddSearchDimension( unsigned int param_nr,
153  RangeValueType minimum, RangeValueType maximum, RangeValueType step );
154 
155  virtual void RemoveSearchDimension( unsigned int param_nr );
156 
158  virtual unsigned long GetNumberOfIterations( void );
159 
161  virtual unsigned int GetNumberOfSearchSpaceDimensions( void );
162 
164  virtual const SearchSpaceSizeType & GetSearchSpaceSize( void );
165 
168 
170 
173 
175  itkGetConstMacro( CurrentIteration, unsigned long );
176 
178  itkGetConstReferenceMacro( CurrentPointInSearchSpace, SearchSpacePointType );
179  itkGetConstReferenceMacro( CurrentIndexInSearchSpace, SearchSpaceIndexType );
180 
182  itkGetConstReferenceMacro( BestPointInSearchSpace, SearchSpacePointType );
183  itkGetConstReferenceMacro( BestIndexInSearchSpace, SearchSpaceIndexType );
184 
186  itkGetConstMacro( Value, double );
187 
189  itkGetConstMacro( BestValue, double );
190 
192  itkGetConstMacro( StopCondition, StopConditionType );
193 
194 protected:
195 
197  virtual ~FullSearchOptimizer() {}
198 
199  //void PrintSelf(std::ostream& os, Indent indent) const;
200 
202  bool m_Stop;
203  double m_Value;
204  double m_BestValue;
206 
214 
216  virtual void ProcessSearchSpaceChanges( void );
217 
218 private:
219 
220  FullSearchOptimizer( const Self & ); // purposely not implemented
221  void operator=( const Self & ); // purposely not implemented
222 
223  unsigned long m_CurrentIteration;
224 
225 };
226 
227 } // end namespace itk
228 
229 #endif
itk::FullSearchOptimizer::m_SearchSpace
SearchSpacePointer m_SearchSpace
Definition: itkFullSearchOptimizer.h:207
itk::FullSearchOptimizer::ProcessSearchSpaceChanges
virtual void ProcessSearchSpaceChanges(void)
itk::FullSearchOptimizer::RangeValueType
ParameterValueType RangeValueType
Definition: itkFullSearchOptimizer.h:75
itk::FullSearchOptimizer::m_CurrentPointInSearchSpace
SearchSpacePointType m_CurrentPointInSearchSpace
Definition: itkFullSearchOptimizer.h:208
itk::FullSearchOptimizer::FullSearchOptimizer
FullSearchOptimizer()
SmartPointer< Self >
SingleValuedNonLinearOptimizer
itk::FullSearchOptimizer::m_Stop
bool m_Stop
Definition: itkFullSearchOptimizer.h:202
itk::FullSearchOptimizer::Pointer
SmartPointer< Self > Pointer
Definition: itkFullSearchOptimizer.h:53
itk::FullSearchOptimizer::m_StopCondition
StopConditionType m_StopCondition
Definition: itkFullSearchOptimizer.h:205
itk::FullSearchOptimizer::MeasureType
Superclass::MeasureType MeasureType
Definition: itkFullSearchOptimizer.h:72
itk::FullSearchOptimizer::IndexToPosition
virtual ParametersType IndexToPosition(const SearchSpaceIndexType &index)
itk::FullSearchOptimizer::SearchSpacePointType
Array< ParameterValueType > SearchSpacePointType
Definition: itkFullSearchOptimizer.h:83
itk::FullSearchOptimizer::UpdateCurrentPosition
virtual void UpdateCurrentPosition(void)
itk::FullSearchOptimizer::m_CurrentIteration
unsigned long m_CurrentIteration
Definition: itkFullSearchOptimizer.h:223
itk::FullSearchOptimizer::m_NumberOfSearchSpaceDimensions
unsigned int m_NumberOfSearchSpaceDimensions
Definition: itkFullSearchOptimizer.h:213
itk::FullSearchOptimizer::m_BestValue
double m_BestValue
Definition: itkFullSearchOptimizer.h:204
itk::FullSearchOptimizer::m_BestIndexInSearchSpace
SearchSpaceIndexType m_BestIndexInSearchSpace
Definition: itkFullSearchOptimizer.h:211
itk::FullSearchOptimizer::ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkFullSearchOptimizer.h:54
itk::FullSearchOptimizer::SetMaximize
virtual void SetMaximize(bool _arg)
itk::FullSearchOptimizer::PointToPosition
virtual ParametersType PointToPosition(const SearchSpacePointType &point)
itk::FullSearchOptimizer
An optimizer based on full search.
Definition: itkFullSearchOptimizer.h:47
itk::FullSearchOptimizer::MinimizeOff
void MinimizeOff()
Definition: itkFullSearchOptimizer.h:104
itk::FullSearchOptimizer::m_CurrentIndexInSearchSpace
SearchSpaceIndexType m_CurrentIndexInSearchSpace
Definition: itkFullSearchOptimizer.h:209
itk::FullSearchOptimizer::GetNumberOfIterations
virtual unsigned long GetNumberOfIterations(void)
itk::FullSearchOptimizer::ParameterValueType
ParametersType::ValueType ParameterValueType
Definition: itkFullSearchOptimizer.h:74
itk::FullSearchOptimizer::RemoveSearchDimension
virtual void RemoveSearchDimension(unsigned int param_nr)
itk::FullSearchOptimizer::IndexToPoint
virtual SearchSpacePointType IndexToPoint(const SearchSpaceIndexType &index)
itk::FullSearchOptimizer::CostFunctionType
Superclass::CostFunctionType CostFunctionType
Definition: itkFullSearchOptimizer.h:70
itk::FullSearchOptimizer::SearchSpaceIteratorType
SearchSpaceType::ConstIterator SearchSpaceIteratorType
Definition: itkFullSearchOptimizer.h:79
itk::FullSearchOptimizer::GetSearchSpaceSize
virtual const SearchSpaceSizeType & GetSearchSpaceSize(void)
itk::FullSearchOptimizer::FullRangeSearched
@ FullRangeSearched
Definition: itkFullSearchOptimizer.h:64
itk::FullSearchOptimizer::~FullSearchOptimizer
virtual ~FullSearchOptimizer()
Definition: itkFullSearchOptimizer.h:197
itk::FullSearchOptimizer::SearchSpacePointer
SearchSpaceType::Pointer SearchSpacePointer
Definition: itkFullSearchOptimizer.h:78
itk::FullSearchOptimizer::GetMinimize
bool GetMinimize() const
Definition: itkFullSearchOptimizer.h:98
itk::FullSearchOptimizer::SearchSpaceIndexType
Array< IndexValueType > SearchSpaceIndexType
Definition: itkFullSearchOptimizer.h:87
itk::FullSearchOptimizer::SearchSpaceSizeType
Array< SizeValueType > SearchSpaceSizeType
Definition: itkFullSearchOptimizer.h:90
itk::FullSearchOptimizer::m_Value
double m_Value
Definition: itkFullSearchOptimizer.h:203
itk::FullSearchOptimizer::m_LastSearchSpaceChanges
unsigned long m_LastSearchSpaceChanges
Definition: itkFullSearchOptimizer.h:215
itk::FullSearchOptimizer::StopConditionType
StopConditionType
Definition: itkFullSearchOptimizer.h:63
itk::FullSearchOptimizer::AddSearchDimension
virtual void AddSearchDimension(unsigned int param_nr, RangeValueType minimum, RangeValueType maximum, RangeValueType step)
itk::FullSearchOptimizer::ResumeOptimization
virtual void ResumeOptimization(void)
itk::FullSearchOptimizer::MetricError
@ MetricError
Definition: itkFullSearchOptimizer.h:65
itk::FullSearchOptimizer::m_BestPointInSearchSpace
SearchSpacePointType m_BestPointInSearchSpace
Definition: itkFullSearchOptimizer.h:210
itk::FullSearchOptimizer::m_SearchSpaceSize
SearchSpaceSizeType m_SearchSpaceSize
Definition: itkFullSearchOptimizer.h:212
itk::FullSearchOptimizer::GetNumberOfSearchSpaceDimensions
virtual unsigned int GetNumberOfSearchSpaceDimensions(void)
itk::FullSearchOptimizer::m_Maximize
bool m_Maximize
Definition: itkFullSearchOptimizer.h:201
itk::FullSearchOptimizer::StopOptimization
virtual void StopOptimization(void)
itk::FullSearchOptimizer::MinimizeOn
void MinimizeOn()
Definition: itkFullSearchOptimizer.h:102
itk::FullSearchOptimizer::MaximizeOn
virtual void MaximizeOn()
itk
Definition: itkAdvancedImageToImageMetric.h:40
itk::FullSearchOptimizer::StartOptimization
virtual void StartOptimization(void)
itk::FullSearchOptimizer::operator=
void operator=(const Self &)
itk::FullSearchOptimizer::SetMinimize
void SetMinimize(bool v)
Definition: itkFullSearchOptimizer.h:100
itk::FullSearchOptimizer::SearchSpaceType
MapContainer< unsigned int, RangeType > SearchSpaceType
Definition: itkFullSearchOptimizer.h:77
itk::FullSearchOptimizer::ParametersType
Superclass::ParametersType ParametersType
Definition: itkFullSearchOptimizer.h:69
itk::FullSearchOptimizer::FullSearchOptimizer
FullSearchOptimizer(const Self &)
itk::FullSearchOptimizer::Self
FullSearchOptimizer Self
Definition: itkFullSearchOptimizer.h:51
itk::FullSearchOptimizer::Superclass
SingleValuedNonLinearOptimizer Superclass
Definition: itkFullSearchOptimizer.h:52
itk::FullSearchOptimizer::MaximizeOff
virtual void MaximizeOff()
itk::FullSearchOptimizer::CostFunctionPointer
Superclass::CostFunctionPointer CostFunctionPointer
Definition: itkFullSearchOptimizer.h:71
itk::FullSearchOptimizer::RangeType
FixedArray< RangeValueType, 3 > RangeType
Definition: itkFullSearchOptimizer.h:76


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo