ailia_tracker  1.1.0.0
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
ailiaTracker.AiliaTrackerModel クラス

公開メンバ関数

bool Create (int algorithm, AiliaTracker.AILIATrackerSettings settings, int flags=AiliaTracker.AILIA_TRACKER_FLAG_NONE)
 
List< AiliaTracker.AILIATrackerObjectCompute (List< AiliaDetector.AILIADetectorObject > ailiaDetectorObjectList)
 
void Close ()
 追跡オブジェクトを破棄します。 [詳解]
 
void Dispose ()
 リソースを解放します。 [詳解]
 

限定公開メンバ関数

void Dispose (bool disposing)
 

関数詳解

◆ Close()

void ailiaTracker.AiliaTrackerModel.Close ( )
inline

追跡オブジェクトを破棄します。

戻り値
なし

追跡オブジェクトを破棄します。

108  {
109  if(ailia_tracker!=IntPtr.Zero){
110  AiliaTracker.ailiaTrackerDestroy(ailia_tracker);
111  ailia_tracker=IntPtr.Zero;
112  }
113  }

◆ Compute()

List<AiliaTracker.AILIATrackerObject> ailiaTracker.AiliaTrackerModel.Compute ( List< AiliaDetector.AILIADetectorObject >  ailiaDetectorObjectList)
inline
43  {
44  List<AiliaTracker.AILIATrackerObject> ailiaTrackerObject = new List<AiliaTracker.AILIATrackerObject>();
45 
46  int status = 0;
47 
48  for (int i = 0; i < ailiaDetectorObjectList.Count; i++){
49  AiliaDetector.AILIADetectorObject detectorObj = ailiaDetectorObjectList[i];
50  status = AiliaTracker.ailiaTrackerAddTarget(ailia_tracker, detectorObj, AiliaDetector.AILIA_DETECTOR_OBJECT_VERSION);
51  if (status != Ailia.AILIA_STATUS_SUCCESS) {
52  if(logging){
53  Debug.Log("ailiaTrackerAddTarget failed "+status);
54  }
55  return null;
56  }
57  }
58 
59  status = AiliaTracker.ailiaTrackerCompute(ailia_tracker);
60  if(status != Ailia.AILIA_STATUS_SUCCESS){
61  if(logging){
62  Debug.Log("ailiaTrackerCompute failed"+status);
63  }
64  return null;
65  }
66 
67  uint onlineSize = 0;
68  status = AiliaTracker.ailiaTrackerGetObjectCount(ailia_tracker, ref onlineSize);
69  if(status != Ailia.AILIA_STATUS_SUCCESS){
70  if(logging){
71  Debug.Log("ailiaTrackerGetObjectCount failed"+status);
72  }
73  return null;
74  }
75 
76  for (int i = 0; i < onlineSize; i++){
77  AiliaTracker.AILIATrackerObject obj = new AiliaTracker.AILIATrackerObject();
78  status = AiliaTracker.ailiaTrackerGetObject(ailia_tracker, obj, (uint)i, AiliaTracker.AILIA_TRACKER_OBJECT_VERSION);
79  //Debug.Log("x " + obj.x + " y " + obj.y + " w " + obj.w + " h " + obj.h);
80  if(status != Ailia.AILIA_STATUS_SUCCESS){
81  if(logging){
82  Debug.Log("ailiaTrackerGetObjectfailed"+status);
83  }
84  return null;
85  }
86  ailiaTrackerObject.Add(obj);
87  }
88 
89  return ailiaTrackerObject;
90  }

◆ Create()

bool ailiaTracker.AiliaTrackerModel.Create ( int  algorithm,
AiliaTracker.AILIATrackerSettings  settings,
int  flags = AiliaTracker.AILIA_TRACKER_FLAG_NONE 
)
inline
30  {
31  int status = AiliaTracker.ailiaTrackerCreate(ref ailia_tracker, algorithm, settings, AiliaTracker.AILIA_TRACKER_SETTINGS_VERSION, flags);
32 
33  if(status!=Ailia.AILIA_STATUS_SUCCESS){
34  if(logging){
35  Debug.Log("ailiaTrackerCreate failed "+status);
36  }
37  Close();
38  return false;
39  }
40  return true;
41  }
void Close()
追跡オブジェクトを破棄します。
Definition: AiliaTrackerModel.cs:108

◆ Dispose() [1/2]

void ailiaTracker.AiliaTrackerModel.Dispose ( )
inline

リソースを解放します。

123  {
124  Dispose(true);
125  }
void Dispose()
リソースを解放します。
Definition: AiliaTrackerModel.cs:122

◆ Dispose() [2/2]

void ailiaTracker.AiliaTrackerModel.Dispose ( bool  disposing)
inlineprotected
128  {
129  if (disposing){
130  // release managed resource
131  }
132  Close(); // release unmanaged resource
133  }

このクラス詳解は次のファイルから抽出されました: