Orfeo Toolbox
3.16
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
OTB
Utilities
ITK
Code
Numerics
itkLevenbergMarquardtOptimizer.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Insight Segmentation & Registration Toolkit
4
Module: $RCSfile: itkLevenbergMarquardtOptimizer.h,v $
5
Language: C++
6
Date: $Date: 2009-06-24 12:02:52 $
7
Version: $Revision: 1.24 $
8
9
Copyright (c) Insight Software Consortium. All rights reserved.
10
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11
12
This software is distributed WITHOUT ANY WARRANTY; without even
13
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14
PURPOSE. See the above copyright notices for more information.
15
16
=========================================================================*/
17
#ifndef __itkLevenbergMarquardtOptimizer_h
18
#define __itkLevenbergMarquardtOptimizer_h
19
20
#include "
itkMultipleValuedNonLinearVnlOptimizer.h
"
21
#include "vnl/algo/vnl_levenberg_marquardt.h"
22
23
namespace
itk
24
{
25
31
class
ITK_EXPORT
LevenbergMarquardtOptimizer
:
32
public
MultipleValuedNonLinearVnlOptimizer
33
{
34
public
:
36
typedef
LevenbergMarquardtOptimizer
Self
;
37
typedef
MultipleValuedNonLinearVnlOptimizer
Superclass
;
38
typedef
SmartPointer<Self>
Pointer
;
39
typedef
SmartPointer<const Self>
ConstPointer
;
40
42
itkNewMacro(
Self
);
43
45
itkTypeMacro(
LevenbergMarquardtOptimizer
,
MultipleValuedNonLinearVnlOptimizer
);
46
48
typedef
vnl_vector<double>
InternalParametersType
;
49
51
typedef
vnl_levenberg_marquardt
InternalOptimizerType
;
52
54
vnl_levenberg_marquardt * GetOptimizer(
void
)
const
;
55
57
void
StartOptimization(
void
);
58
60
virtual
void
SetCostFunction(
MultipleValuedCostFunction
* costFunction );
61
62
void
SetNumberOfIterations(
unsigned
int
iterations);
63
void
SetValueTolerance(
double
tol);
64
void
SetGradientTolerance(
double
tol);
65
void
SetEpsilonFunction(
double
epsilon);
66
68
MeasureType
GetValue()
const
;
69
70
const
std::string GetStopConditionDescription()
const
;
71
72
protected
:
73
LevenbergMarquardtOptimizer
();
74
virtual
~
LevenbergMarquardtOptimizer
();
75
76
typedef
Superclass::CostFunctionAdaptorType
CostFunctionAdaptorType
;
77
78
private
:
79
LevenbergMarquardtOptimizer
(
const
Self
&);
//purposely not implemented
80
void
operator=(
const
Self
&);
//purposely not implemented
81
82
bool
m_OptimizerInitialized
;
83
InternalOptimizerType
*
m_VnlOptimizer
;
84
unsigned
int
m_NumberOfIterations
;
85
double
m_ValueTolerance
;
86
double
m_GradientTolerance
;
87
double
m_EpsilonFunction
;
88
89
};
90
91
}
// end namespace itk
92
93
94
#endif
Generated at Sat Feb 2 2013 23:51:03 for
Orfeo Toolbox
with
doxygen 1.8.1.1