IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Circle2dCostFunction.h
1 // Circle2dCostFunction.h:
3 // -----------------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_CIRCLE2DCOSTFUNCTION_H__
16 #define __IPSDKGEOMETRY_CIRCLE2DCOSTFUNCTION_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::geom::Circle2dCostFunction::_dataSet' : class 'std::vector<ipsdk::math::DataType,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'ipsdk::geom::Circle2dCostFunction'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
25 #include <IPSDKMath/Optimization/BaseCostFunction.h>
26 
27 namespace ipsdk {
28 namespace geom {
29 
32 
34 {
35 // predefined public types
36 public:
39 
41  (eEP_CenterX)
42 
44  (eEP_CenterY)
45 
47  (eEP_Radius)
48  )
49 
50 
51  static const ipUInt32 g_parameterSize = eEstimParams::size;
52 
55 
57  (eDT_X)
58 
60  (eDT_Y)
61  )
62 
64  static const ipUInt32 g_dataSize = eDataType::size;
65 
66 public:
72 
73 // methods
74 public:
78  void init(const math::DataSet& dataSet);
79 
80 protected:
82  BoolResult processEquations(const math::Vector& parameters,
83  math::Vector& equations) const;
84 
87  BoolResult processJacobian(const math::Vector& parameters,
88  math::Matrix& jacobian) const;
89 
91  void clearDerived();
92 
93 // attributes
94 protected:
96  math::DataSet _dataSet;
97 };
98 
101 
102 } // end of namespace geom
103 } // end of namespace ipsdk
104 
105 #pragma warning (pop)
106 
107 #endif // __IPSDKGEOMETRY_CIRCLE2DCOSTFUNCTION_H__
boost::numeric::ublas::matrix< ipReal64 > Matrix
matrix type associated to library
Definition: LinearAlgebraTypes.h:48
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eDataType
Definition: Circle2dCostFunction.h:56
Predefined types for estimation 2d management.
std::vector< DataType > DataSet
collection of data associated to estimation
Definition: EstimationTypes.h:67
Base class for cost functions used during optimization process.
Definition: BaseCostFunction.h:33
eEstimParams
Definition: Circle2dCostFunction.h:40
boost::numeric::ublas::vector< ipReal64 > Vector
vector type associated to library
Definition: LinearAlgebraTypes.h:36
Definition of import/export macro for library.
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
Cost function for circle 2d parameters non linear optimization.
Definition: Circle2dCostFunction.h:33
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53