WIL説明書(C++)  3.0.0
FvRegion.h
[詳解]
1 // $Revision: 1.7 $
2 /*
3  @file FvRegion.h
4  @brief CFvRegion class interface
5  @author FAST Corporation
6 */
7 
8 #ifndef _FVREGION_H_INCLUDED_
9 #define _FVREGION_H_INCLUDED_
10 
11 #include "FvDataObject.h"
12 #include "FvRunLength.h"
13 
14 #include "MultiData/FvMultiData.h"
15 #include "Data/FvCircle.h"
16 #include "Data/FvEllipse.h"
17 #include "Data/FvPolyline.h"
18 #include "Data/FvRectangle.h"
19 #include "Data/FvImage.h"
20 
21 #pragma pack(push,_FVCL_PACKING)
22 
23 namespace FVCL
24 {
25 namespace Data
26 {
27 
29 {
30 private:
31  void _Constructor();
32 
33 public:
34  CFvRegion();
35  CFvRegion( FHANDLE region, bool attach );
36  CFvRegion( const CFvRegion& src );
37  CFvRegion( const FVCL::Data::CFvCircle& circle );
38  CFvRegion( const FVCL::Data::CFvEllipse& ellipse );
39  CFvRegion( const FVCL::Data::CFvPolyline& polyline );
40  CFvRegion( const FVCL::Data::CFvRectangle& rect );
41  CFvRegion( const FVCL::Data::CFvImage& image );
43  virtual ~CFvRegion();
44 
45  enum { DataID = 22 };
46 
47  virtual INT GetDataID() const;
48  virtual bool GetPointer( INT id, void** val ) const;
49 
50  virtual bool Load( LPCTSTR szFileName );
51  virtual bool Save( LPCTSTR szFileName );
52 
53  virtual bool Create( const FVCL::Data::CFvCircle& circle );
54  virtual bool Create( const FVCL::Data::CFvEllipse& ellipse );
55  virtual bool Create( const FVCL::Data::CFvPolyline& polyline );
56  virtual bool Create( const FVCL::Data::CFvRectangle& rect );
57  virtual bool Create( const FVCL::Data::CFvImage& image );
58  virtual bool Create( const FVCL::CFvMultiData<FVCL::Data::CFvRunLength>& runs );
59  virtual void Destroy();
60 
61  virtual bool Attach( FHANDLE region );
62 
63  virtual bool IsCreate() const;
64  virtual void IsAttach(bool value);
65  virtual bool IsAttach() const;
66 
67  virtual void SetHandle( FHANDLE handle );
68  virtual FHANDLE GetHandle() const;
69 
70  static INT CheckValidity( const FVCL::Data::CFvImage& image );
71 
72  bool Draw( FVCL::Data::CFvImage* image, DOUBLE density ) const;
73  bool Draw( FVCL::Data::CFvImage* image, DOUBLE density, ::PNT_T offset ) const;
74  bool Draw( FVCL::Data::CFvImage* image, FVCL::tagRGB32 density, ::PNT_T offset ) const;
75  bool Draw( FVCL::Data::CFvImage* image, const FVCL::CFvMultiData<DOUBLE>& densities, ::PNT_T offset ) const;
76  bool Fill();
77  bool Contains( INT x, INT y ) const;
78 
79  bool SetPosition( const FVCL::Data::CFvPoint& position );
80  FVCL::Data::CFvPoint GetPosition() const;
81 
82  INT GetWidth() const;
83  INT GetHeight() const;
84 
85  UINT GetCount() const;
86  CFvRunLength GetRunLength( UINT index ) const;
87  bool GetRunLength( FVCL::CFvMultiData<FVCL::Data::CFvRunLength>* runs ) const;
88 
89  virtual CFvRegion& operator =( const CFvRegion& src );
90  virtual bool operator ==( const CFvRegion& src ) const;
91  virtual bool operator !=( const CFvRegion& src ) const;
92 
93  // operation
94 
95  virtual CFvRegion operator & ( const CFvRegion& src ) const;
96  virtual CFvRegion& operator &= ( const CFvRegion& src );
97 
98  virtual CFvRegion operator | ( const CFvRegion& src ) const;
99  virtual CFvRegion& operator |= ( const CFvRegion& src );
100 
101  virtual CFvRegion operator ^ ( const CFvRegion& src ) const;
102  virtual CFvRegion& operator ^= ( const CFvRegion& src );
103 
104  // feature
105 
106  void SetConnection( INT value );
107  INT GetConnection() const;
108 
109  UINT GetArea() const;
110  INT GetXmin() const;
111  INT GetYmin() const;
112  INT GetXmax() const;
113  INT GetYmax() const;
114  INT GetXdiff() const;
115  INT GetYdiff() const;
116  INT GetXminAtYmin() const;
117  INT GetXmaxAtYmax() const;
118  INT GetYminAtXmax() const;
119  INT GetYmaxAtXmin() const;
120  INT64 GetMoment1SumX() const;
121  INT64 GetMoment1SumY() const;
122  UINT64 GetMoment2SumX() const;
123  UINT64 GetMoment2SumY() const;
124  INT64 GetMoment2SumXY() const;
125  DOUBLE GetCentralMoment2MG20() const;
126  DOUBLE GetCentralMoment2MG02() const;
127  DOUBLE GetCentralMoment2MG11() const;
128  DOUBLE GetMoment3M30() const;
129  DOUBLE GetMoment3M03() const;
130  DOUBLE GetMoment3M21() const;
131  DOUBLE GetMoment3M12() const;
132  DOUBLE GetCentralMoment3MG30() const;
133  DOUBLE GetCentralMoment3MG03() const;
134  DOUBLE GetCentralMoment3MG21() const;
135  DOUBLE GetCentralMoment3MG12() const;
136  DOUBLE GetMoment( INT xn, INT yn ) const;
137  DOUBLE GetCentralMoment( INT xn, INT yn ) const;
138 
139  FVCL::Data::CFvPoint GetCenter() const;
140  FVCL::Data::CFvEllipse GetEquivalentEllipse() const;
141  FVCL::Data::CFvCircle GetEquivalentDisk() const;
142  FVCL::Data::CFvCircle GetEquivalentCircle() const;
143 
144  FVCL::Data::CFvRectangle GetRect1() const;
145  UINT GetRect1Area() const;
146  DOUBLE GetRect1Lratio() const;
147  DOUBLE GetRect1Sratio() const;
148 
149  FVCL::Data::CFvRectangle GetRect2() const;
150  FVCL::CFvArray<FVCL::Data::CFvPoint> GetRect2Pos() const;
151  void GetRect2Pos( FVCL::CFvMultiData<FVCL::Data::CFvPoint>* points ) const;
152 
153  DOUBLE GetRect2Lsize() const;
154  DOUBLE GetRect2Wsize() const;
155  DOUBLE GetRect2Area() const;
156  DOUBLE GetRect2Lratio() const;
157  DOUBLE GetRect2Sratio() const;
158 
159  DOUBLE GetFeretDiameterMax() const;
160  DOUBLE GetFeretDiameterMaxTheta() const;
161  DOUBLE GetFeretDiameterMin() const;
162  DOUBLE GetFeretDiameterMinTheta() const;
163  DOUBLE GetFeretDiameter( DOUBLE theta, INT mode ) const;
164 
165  DOUBLE GetPerimeter() const;
166 
169  void GetConvex2d( FVCL::CFvBuffer<PNT_T>* points ) const;
170 
171  DOUBLE GetConvexArea() const;
172  DOUBLE GetConvexPerim() const;
173  DOUBLE GetConvexAreaRatio() const;
174  DOUBLE GetConvexPerimRatio() const;
175 
176  FVCL::Data::CFvCircle GetCircmCircle() const;
177 
180  void GetBoundary( FVCL::CFvBuffer<PNT_T>* points, bool contain_stopper = true ) const;
181  void GetBoundaryEx( FVCL::CFvBuffer<PNT_T>* points_ext, FVCL::CFvBuffer<PNT_T>* points_int, bool contain_stopper = true ) const;
182 
183  FVCL::CFvArray<FVCL::Data::CFvPoint> GetBoundaryInternal() const;
184  void GetBoundaryInternal( FVCL::CFvMultiData<FVCL::Data::CFvPoint>* points ) const;
185 
186  DOUBLE GetDistanceToBoundaryMax() const;
187  DOUBLE GetDistanceToBoundaryMin() const;
188  DOUBLE GetDistanceToBoundaryAve() const;
189  DOUBLE GetDistanceToBoundarySigma() const;
190  DOUBLE GetCircularity1() const;
191  DOUBLE GetCircularity2() const;
192  DOUBLE GetCircularity3() const;
193 
194 private:
195  FHANDLE m_Handle;
196  bool m_IsAttach;
197 
198 private:
199  FHANDLE _Create( const FVCL::Data::CFvCircle& circle );
200  FHANDLE _Create( const FVCL::Data::CFvEllipse& ellipse );
201  FHANDLE _Create( const FVCL::Data::CFvPolyline& polyline );
202  FHANDLE _Create( const FVCL::Data::CFvRectangle& rect );
204  FHANDLE _Create( const FVCL::Data::CFvImage& image );
205 };
206 
207 } // Data
208 
209 } // FVCL
210 
211 #pragma pack(pop)
212 
213 #endif // _FVREGION_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
ランレングス構造クラス
Definition: FvRunLength.h:27
LPCSTR LPCTSTR
汎用文字列型(const付き)
Definition: FvDefs.h:57
FVCLのネームスペース
Definition: EVCbasicDeclare.txt:9
32bitカラー画素構造体
Definition: FvDefs.h:81
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)
周囲座標の取得
点列構造クラス
Definition: FvPolyline.h:23
unsigned int UINT
整数型(32ビット)[符号なし]
Definition: FvDefs.h:37
円構造クラス
Definition: FvCircle.h:33
配列テンプレートクラスの基本クラス
Definition: FvMultiData.h:36
ランレングス構造クラスのインターフェース
void * FHANDLE
FIEオブジェクトハンドル
Definition: FvDefs.h:63
画像オブジェクト
Definition: FvImage.h:64
データオブジェクトの基本クラスのインターフェース
リージョンオブジェクト
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