IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
HomographyTransform3dEstimator.h
1 // HomographyTransform3dEstimator.h:
3 // ---------------------------------
4 //
33 
34 #ifndef __IPSDKGEOMETRY_HOMOGRAPHYTRANSFORM3DESTIMATOR_H__
35 #define __IPSDKGEOMETRY_HOMOGRAPHYTRANSFORM3DESTIMATOR_H__
36 
39 #include <IPSDKMath/Estimation/BaseEstimator.h>
40 
41 namespace ipsdk {
42 namespace geom {
43 
46 
48 {
49 // predefined public types
50 public:
53 
54  (eEP_Hxx)
55  (eEP_Hxy)
56  (eEP_Hxz)
57  (eEP_Hxw)
58 
59  (eEP_Hyx)
60  (eEP_Hyy)
61  (eEP_Hyz)
62  (eEP_Hyw)
63 
64  (eEP_Hzx)
65  (eEP_Hzy)
66  (eEP_Hzz)
67  (eEP_Hzw)
68 
69  (eEP_Hwx)
70  (eEP_Hwy)
71  (eEP_Hwz)
72  (eEP_Hww)
73  )
74 
75 
76  static const ipUInt32 g_parameterSize = eEstimParams::size;
77 
80 
82  (eDT_X1)
83 
85  (eDT_Y1)
86 
88  (eDT_Z1)
89 
91  (eDT_X2)
92 
94  (eDT_Y2)
95 
97  (eDT_Z2)
98  )
99 
101  static const ipUInt32 g_dataSize = eDataType::size;
102 
103 public:
109 
110 // methods
111 public:
115  using math::BaseEstimator::computeEstimation;
116 
120  BoolResult computeEstimation(const math::DataSet& dataSet,
121  math::Matrix4d& matH);
122 
129  BoolResult computeResiduals(const math::DataSet& dataSet,
130  const math::Matrix4d& matH,
131  math::ResidualsSet& residualsSet) const;
132 
133 protected:
136  BoolResult processEstimation(const math::DataSet& dataSet,
137  math::ParameterType& estimParams);
138 
141  BoolResult processResiduals(const math::DataSet& dataSet,
142  const math::ParameterType& estimParams,
143  math::ResidualsSet& residualsSet) const;
144 
145 // attributes
146 protected:
147 
148 };
149 
152 
153 } // end of namespace geom
154 } // end of namespace ipsdk
155 
156 #endif // __IPSDKGEOMETRY_HOMOGRAPHYTRANSFORM3DESTIMATOR_H__
Vector ParameterType
parameter type resulting from estimation
Definition: EstimationTypes.h:61
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Base class for parametric estimation from data set.
Definition: BaseEstimator.h:35
eEstimParams
Definition: HomographyTransform3dEstimator.h:54
std::vector< DataType > DataSet
collection of data associated to estimation
Definition: EstimationTypes.h:67
Definition of import/export macro for library.
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
boost::numeric::ublas::bounded_matrix< ipReal64, 4, 4 > Matrix4d
4d matrix (4x4) type associated to library
Definition: LinearAlgebraTypes.h:57
eDataType
Enumerate describing a base type.
Definition: BaseTypes.h:77
Vector ResidualsSet
residuals type resulting from estimation
Definition: EstimationTypes.h:64
IPSDKMATH_API void processEstimation(const EstimationConfig &config, const EstimatorPtr &pEstimator, const DataSet &inputDataSet, EstimationResults &results)
function allowing to launch a robust estimation process
Predefined types for estimation 3d management.
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
Class allowing to estimate a 3d homography transformationWe compute a homography transformation such ...
Definition: HomographyTransform3dEstimator.h:47
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53