WIL説明書(C++)  3.0.0
FvBlobData.h
[詳解]
1 // $Revision: 1.5 $
2 /*
3  @file FvBlobData.h
4  @brief CFvBlobData class interface
5  @author FAST Corporation
6 */
7 
8 #ifndef _FVBLOBDATA_H_INCLUDED_
9 #define _FVBLOBDATA_H_INCLUDED_
10 
11 #include "Data/FvDataObject.h"
12 #include "Data/FvPoint.h"
13 #include "Data/FvEllipse.h"
14 #include "Data/FvCircle.h"
15 #include "Data/FvRegion.h"
16 #include "MultiData/FvMultiData.h"
17 
18 #pragma pack(push,_FVCL_PACKING)
19 
20 namespace FVCL
21 {
22 namespace Blob
23 {
24 
26 {
27 private:
28  void _Constructor();
29 
30 public:
31  CFvBlobData();
32  CFvBlobData( const CFvBlobData& src );
33  CFvBlobData( FHANDLE handle, UINT blobno );
34  virtual ~CFvBlobData();
35 
36  enum { DataID = 1100 };
37 
38  virtual INT GetDataID() const;
39  virtual bool GetPointer( INT id, void** val ) const;
40 
41  bool SetHandle( FHANDLE handle );
42  FHANDLE GetHandle() const;
43 
44  bool SetBlobNo( UINT blobno );
45  UINT GetBlobNo() const;
46 
47  bool IsValid() const;
48 
49  FVCL::Data::CFvRegion GetRegion() const;
50  bool GetRegion( FVCL::Data::CFvRegion* region ) const;
51 
52  UINT GetColor() const;
53  bool GetColor( UINT* color ) const;
54 
55  UINT GetArea() const;
56  bool GetArea( UINT* area ) const;
57 
58  UINT GetAreaWithHole() const;
59  bool GetAreaWithHole( UINT* area ) const;
60 
61  UINT GetHoleNum() const;
62  bool GetHoleNum( UINT* holes ) const;
63 
64  UINT GetHoleArea() const;
65  bool GetHoleArea( UINT* area ) const;
66 
67  DOUBLE GetHoleRatio() const;
68  bool GetHoleRatio( DOUBLE* ratio ) const;
69 
70  DOUBLE GetDistanceToChildsMax() const;
71  DOUBLE GetDistanceToChildsMin() const;
72  DOUBLE GetDistanceToChildsAve() const;
73  bool GetDistanceToChilds( DOUBLE* max, DOUBLE* min, DOUBLE* ave ) const;
74 
75  DOUBLE GetDistanceToSiblingsMax() const;
76  DOUBLE GetDistanceToSiblingsMin() const;
77  DOUBLE GetDistanceToSiblingsAve() const;
78  bool GetDistanceToSiblings( DOUBLE* max, DOUBLE* min, DOUBLE* ave ) const;
79 
80  INT GetXmin() const;
81  INT GetYmin() const;
82  INT GetXmax() const;
83  INT GetYmax() const;
84  bool GetXYrange( INT* xmin, INT* ymin, INT* xmax, INT* ymax ) const;
85 
86  INT GetXdiff() const;
87  INT GetYdiff() const;
88  bool GetXYdiff( INT* xdiff, INT* ydiff ) const;
89 
90  INT GetXminAtYmin() const;
91  INT GetXmaxAtYmax() const;
92  INT GetYminAtXmax() const;
93  INT GetYmaxAtXmin() const;
94  bool GetMaxMinPos( INT* xmin_at_ymin, INT* xmax_at_ymax, INT* ymin_at_xmax, INT* ymax_at_xmin ) const;
95 
96  INT64 GetMoment1SumX() const;
97  INT64 GetMoment1SumY() const;
98  bool GetMoment1( INT64* sumx, INT64* sumy ) const;
99 
100  UINT64 GetMoment2SumX() const;
101  UINT64 GetMoment2SumY() const;
102  INT64 GetMoment2SumXY() const;
103  bool GetMoment2( UINT64* sumx, UINT64* sumy, INT64* sumxy ) const;
104 
105  DOUBLE GetCentralMoment2MG20() const;
106  DOUBLE GetCentralMoment2MG02() const;
107  DOUBLE GetCentralMoment2MG11() const;
108  bool GetCentralMoment2( DOUBLE* mg20, DOUBLE* mg02, DOUBLE* mg11 ) const;
109 
110  DOUBLE GetMoment3M30() const;
111  DOUBLE GetMoment3M03() const;
112  DOUBLE GetMoment3M21() const;
113  DOUBLE GetMoment3M12() const;
114  bool GetMoment3( DOUBLE* m30, DOUBLE* m03, DOUBLE* m21, DOUBLE* m12 ) const;
115 
116  DOUBLE GetCentralMoment3MG30() const;
117  DOUBLE GetCentralMoment3MG03() const;
118  DOUBLE GetCentralMoment3MG21() const;
119  DOUBLE GetCentralMoment3MG12() const;
120  bool GetCentralMoment3( DOUBLE* mg30, DOUBLE* mg03, DOUBLE* mg21, DOUBLE* mg12 ) const;
121 
122  DOUBLE GetMoment( INT xn, INT yn ) const;
123  DOUBLE GetCentralMoment( INT xn, INT yn ) const;
124 
125  FVCL::Data::CFvPoint GetCenter() const;
126  bool GetCenter( FVCL::Data::CFvPoint* center ) const;
127 
128  FVCL::Data::CFvEllipse GetEquivalentEllipse() const;
129  bool GetEquivalentEllipse( FVCL::Data::CFvEllipse* ellipse ) const;
130 
131  FVCL::Data::CFvCircle GetEquivalentDisk() const;
132  bool GetEquivalentDisk( FVCL::Data::CFvCircle* disk ) const;
133 
134  FVCL::Data::CFvCircle GetEquivalentCircle() const;
135  bool GetEquivalentCircle( FVCL::Data::CFvCircle* circle ) const;
136 
137  FVCL::Data::CFvRectangle GetRect1() const;
138 
139  UINT GetRect1Area() const;
140  bool GetRect1Area( UINT* area ) const;
141 
142  DOUBLE GetRect1Lratio() const;
143  bool GetRect1Lratio( DOUBLE* ratio ) const;
144 
145  DOUBLE GetRect1Sratio() const;
146  bool GetRect1Sratio( DOUBLE* ratio ) const;
147 
148  FVCL::Data::CFvRectangle GetRect2() const;
149 
150  FVCL::CFvArray<FVCL::Data::CFvPoint> GetRect2Pos() const;
151  bool GetRect2Pos( FVCL::CFvMultiData<FVCL::Data::CFvPoint>* points ) const;
152 
153  DOUBLE GetRect2Lsize() const;
154  DOUBLE GetRect2Wsize() const;
155  bool GetRect2Size( DOUBLE *lsize, DOUBLE *wsize ) const;
156 
157  DOUBLE GetRect2Area() const;
158  bool GetRect2Area( DOUBLE* area ) const;
159 
160  DOUBLE GetRect2Lratio() const;
161  bool GetRect2Lratio( DOUBLE* ratio ) const;
162 
163  DOUBLE GetRect2Sratio() const;
164  bool GetRect2Sratio( DOUBLE* ratio ) const;
165 
166  DOUBLE GetFeretDiameter( DOUBLE theta, INT mode ) const;
167  bool GetFeretDiameter( DOUBLE theta, INT mode, DOUBLE* diameter ) const;
168 
169  DOUBLE GetFeretDiameterMax() const;
170  DOUBLE GetFeretDiameterMaxTheta() const;
171  DOUBLE GetFeretDiameterMin() const;
172  DOUBLE GetFeretDiameterMinTheta() const;
173  bool GetFeretDiameterMaxMin( DOUBLE* feretmax, DOUBLE* fmax_theta, DOUBLE* feretmin, DOUBLE* fmin_theta ) const;
174 
175  DOUBLE GetPerimeter() const;
176  bool GetPerimeter( DOUBLE* perimeter ) const;
177 
178  DOUBLE GetPPS() const;
179  bool GetPPS( DOUBLE* pps ) const;
180 
183  bool GetConvex2d( FVCL::CFvBuffer<PNT_T>* points ) const;
184 
185  DOUBLE GetConvexArea() const;
186  DOUBLE GetConvexPerim() const;
187  bool GetConvexFeature( DOUBLE* convex_area, DOUBLE* convex_perim ) const;
188 
189  DOUBLE GetConvexAreaRatio() const;
190  DOUBLE GetConvexPerimRatio() const;
191  bool GetConvexRatio( DOUBLE* convex_area_ratio, DOUBLE* convex_perim_ratio ) const;
192 
193  FVCL::Data::CFvCircle GetCircmCircle() const;
194  bool GetCircmCircle( FVCL::Data::CFvCircle* circle ) const;
195 
198  bool GetBoundary( FVCL::CFvBuffer<PNT_T>* points ) const;
199  bool GetBoundaryEx( INT connection, FVCL::CFvBuffer<PNT_T>* points_ext, FVCL::CFvBuffer<PNT_T>* points_int, bool contain_stopper = true ) const;
200 
201  FVCL::CFvArray<FVCL::Data::CFvPoint> GetBoundaryInternal() const;
202  bool GetBoundaryInternal( FVCL::CFvMultiData<FVCL::Data::CFvPoint>* points ) const;
203 
204  DOUBLE GetDistanceToBoundaryMax() const;
205  DOUBLE GetDistanceToBoundaryMin() const;
206  DOUBLE GetDistanceToBoundaryAve() const;
207  DOUBLE GetDistanceToBoundarySigma() const;
208  bool GetDistanceToBoundary( DOUBLE* max, DOUBLE* min, DOUBLE* ave, DOUBLE* sigma ) const;
209 
210  DOUBLE GetCircularity1() const;
211  bool GetCircularity1( DOUBLE* circularity ) const;
212 
213  DOUBLE GetCircularity2() const;
214  bool GetCircularity2( DOUBLE* circularity ) const;
215 
216  DOUBLE GetCircularity3() const;
217  bool GetCircularity3( DOUBLE* circularity ) const;
218 
219  virtual CFvBlobData& operator = ( const CFvBlobData& src );
220  virtual bool operator == ( const CFvBlobData& src ) const;
221  virtual bool operator != ( const CFvBlobData& src ) const;
222 
223 private:
224  FHANDLE m_Handle;
225  UINT m_BlobNo;
226 };
227 
228 } // Blob
229 
230 } // FVCL
231 
232 #pragma pack(pop)
233 
234 #endif // _FVBLOBDATA_H_INCLUDED_
#define FVCL_API
DLLエクスポートマクロ
Definition: FvMacros.h:61
uint64_t UINT64
整数型(64ビット)[符号なし]
Definition: FvDefs.h:42
リージョンオブジェクトのインターフェース
楕円構造クラス
Definition: FvEllipse.h:24
FVCL_API INT GetConvex2d(const FVCL::Blob::CFvBlobData &blob, FVCL::CFvBuffer< PNT_T > *points)
凸包の取得
点構造クラス
Definition: FvPoint.h:38
FVCLのネームスペース
Definition: EVCbasicDeclare.txt:9
int INT
整数型(32ビット)
Definition: FvDefs.h:36
楕円構造クラスのインターフェース
配列テンプレートクラスの基本クラス
データオブジェクトの基本クラス
Definition: FvDataObject.h:20
矩形構造クラス
Definition: FvRectangle.h:37
円構造クラスのインターフェース
double DOUBLE
倍精度浮動小数点型(64ビット)
Definition: FvDefs.h:62
int64_t INT64
整数型(64ビット)
Definition: FvDefs.h:41
点構造クラスのインターフェース
FVCL_API INT GetBoundary(const FVCL::Blob::CFvBlobData &blob, FVCL::CFvBuffer< PNT_T > *points)
周囲座標の取得
FVCL_API INT GetBoundaryEx(const FVCL::Blob::CFvBlobData &blob, INT connection, FVCL::CFvBuffer< PNT_T > *points_ext, FVCL::CFvBuffer< PNT_T > *points_int)
周囲座標の取得
unsigned int UINT
整数型(32ビット)[符号なし]
Definition: FvDefs.h:37
円構造クラス
Definition: FvCircle.h:33
void * FHANDLE
FIEオブジェクトハンドル
Definition: FvDefs.h:63
2値ブローブ解析データ構造クラス
Definition: FvBlobData.h:25
データオブジェクトの基本クラスのインターフェース
リージョンオブジェクト
Definition: FvRegion.h:28

Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2023年11月02日(木) 10時12分53秒 for WIL説明書(C++) by doxygen 1.8.11