IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
HuMoments2dO3.h
1 // HuMoments2dO3.h:
3 // ------------
4 //
13 
14 #ifndef __iPSDKGEOMETRY_MEASURE_HUMOMENTS2DO3_H__
15 #define __iPSDKGEOMETRY_MEASURE_HUMOMENTS2DO3_H__
16 
18 #include <IPSDKUtil/BaseTypes.h>
19 #include <IPSDKGeometry/Entity/2d/Point/Point2dData.h>
20 #include <IPSDKGeometry/Measure/Moments2dO3.h>
21 #include <IPSDKSerialization/Engine/BaseSerializationObject.h>
23 
24 namespace ipsdk {
25 namespace geom {
26 
29 
31 {
32  // declare serial class
34 
35 public:
38  HuMoments2dO3();
39  HuMoments2dO3(const Moments2dO3& m);
40  HuMoments2dO3(const ipReal64 i1, const ipReal64 i2, const ipReal64 i3, const ipReal64 i4,
41  const ipReal64 i5, const ipReal64 i6, const ipReal64 i7, const ipReal64 i8,
42  const ipReal64 m00, const ipReal64 m10, const ipReal64 m01, const ipReal64 m20, const ipReal64 m11,
43  const ipReal64 m02, const ipReal64 m30, const ipReal64 m21, const ipReal64 m12, const ipReal64 m03);
45 
46 // methods
47 public:
49  void computeHuMoments(const Moments2dO3& m);
50 
53  HuMoments2dO3 operator+(const HuMoments2dO3& m) const;
54  HuMoments2dO3 operator+=(const HuMoments2dO3& m);
55  HuMoments2dO3 operator-(const HuMoments2dO3& m) const;
56  HuMoments2dO3 operator-=(const HuMoments2dO3& m);
57  ipBool isEqual(const HuMoments2dO3& m, const ipsdk::ipReal64 tolerance) const;
59 
60 // attributes
61 public:
62  // Hu moments
63  ipReal64 _i1;
64  ipReal64 _i2;
65  ipReal64 _i3;
66  ipReal64 _i4;
67  ipReal64 _i5;
68  ipReal64 _i6;
69  ipReal64 _i7;
70  ipReal64 _i8;
71 
72  // raw moments
73  ipReal64 _m00;
74  ipReal64 _m10;
75  ipReal64 _m01;
76  ipReal64 _m20;
77  ipReal64 _m11;
78  ipReal64 _m02;
79  ipReal64 _m30;
80  ipReal64 _m21;
81  ipReal64 _m12;
82  ipReal64 _m03;
83 };
84 
87 
88 } // end of namespace geom
89 } // end of namespace ipsdk
90 
91 #endif // __iPSDKGEOMETRY_MEASURE_HUMOMENTS2DO3_H__
#define IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:73
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Header part of macros set for class serialization.
Moments of order up to 3 on a 2d shape.
Definition: Moments2dO3.h:24
Definition of import/export macro for library.
Base types for multiplatform compatibility.
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
IPSDK_FORCEINLINE Pack2MaskPackType< PackT >::Type isEqual(const PackT &in1, const PackT &in2)
isEqual function; tests if all the elements of the first operand pack equal the elements of the secon...
Definition: isEqual.h:39
bool ipBool
Base types definition.
Definition: BaseTypes.h:47
Moments of order up to 3 on a 2d shape.
Definition: HuMoments2dO3.h:30
Base class for serializable class.
Definition: BaseSerializationObject.h:33