From 0ffd95f2278e860736e46f8b73f357470f5a3d91 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 15 一月 2020 17:56:18 +0800
Subject: [PATCH] debug

---
 csrc/buz/face/tracker.cpp |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 deletions(-)

diff --git a/csrc/buz/face/tracker.cpp b/csrc/buz/face/tracker.cpp
new file mode 100644
index 0000000..cb2744a
--- /dev/null
+++ b/csrc/buz/face/tracker.cpp
@@ -0,0 +1,89 @@
+#include "tracker.h"
+
+#include <stdio.h>
+#include "THFaceTracking_i.h"
+
+namespace csdk_wrap{
+    static THFT_Param param;
+    int init_face_tracker(const int tm, const int gi,const int w, const int h,
+                    const int maxFaces, const int detinterval,  const int sampleSize,
+                              VecFunc &vec){
+        param.nDeviceID = gi;
+        param.nImageWidth = w;
+        param.nImageHeight = h;
+        param.nMaxFaceNum = maxFaces;
+        param.nSampleSize = sampleSize > 0 ? sampleSize : w/2;
+        param.nDetectionIntervalFrame = detinterval;
+printf("threads %d gi: %d size: %dx%d maxface: %d, sample: %d, interval: %d\n",
+            tm, gi, w, h, maxFaces, sampleSize, detinterval);
+        auto nNum = THFT_Create(tm, &param);
+        if(nNum != tm){
+            printf("create face detector failed!\n");
+        }else{
+            vec.emplace_back([]{THFT_Release();});
+        }
+        return nNum;
+    }
+
+    cRECT* face_track_only(int *faceCount, const cIMAGE *img, const int chan){
+
+        *faceCount = 0;
+
+        cRECT *pFaces = (cRECT*)malloc(param.nMaxFaceNum * sizeof(cRECT));
+        auto nNum = THFT_FaceOnly(chan, img->data, img->width, img->height, (tagRECT*)pFaces, param.nMaxFaceNum, param.nSampleSize);
+        if (nNum > 0)
+        {
+            *faceCount = nNum;
+        }else{
+            free(pFaces);
+            pFaces = NULL;
+        }
+        return pFaces;
+    }
+
+    cFaceInfo* face_track_detect(int *faceCount, const cIMAGE *img, const int chan){
+        *faceCount = 0;
+
+        cFaceInfo* pFaceInfos = (cFaceInfo*)malloc(param.nMaxFaceNum * sizeof(cFaceInfo));
+        auto nNum = THFT_FaceDetect(chan, img->data, img->width, img->height, (THFT_FaceInfo*)pFaceInfos, param.nMaxFaceNum, param.nSampleSize);
+        if (nNum > 0){
+            *faceCount = nNum;
+        }else{
+            free(pFaceInfos);
+            pFaceInfos = NULL;
+        }
+        return pFaceInfos;
+    }
+
+    cFaceInfo* face_track(int *faceCount, const cIMAGE *img, const int chan){
+        *faceCount = 0;
+
+        cFaceInfo* pFaceInfos = (cFaceInfo*)malloc(param.nMaxFaceNum * sizeof(cFaceInfo));
+        auto nNum = THFT_FaceTracking(chan, img->data, (THFT_FaceInfo*)pFaceInfos);
+        if (nNum > 0){
+            *faceCount = nNum;
+        }else{
+            free(pFaceInfos);
+            pFaceInfos = NULL;
+        }
+        return pFaceInfos;
+    }
+
+    //THFACETRACKING_API int	THFT_Reset(short nChannelID, THFT_Param* pParam);
+    int face_track_resize(const int chan, const int w, const int h){
+        THFT_Param tmpParam;
+        tmpParam.nDeviceID = param.nDeviceID;
+        tmpParam.nImageWidth = w;
+        tmpParam.nImageHeight = h;
+        tmpParam.nMaxFaceNum = param.nMaxFaceNum;
+        tmpParam.nSampleSize = param.nSampleSize;
+        tmpParam.nDetectionIntervalFrame = param.nDetectionIntervalFrame;
+
+        printf("chan %d size: %dx%d", chan, w, h);
+
+        auto flag = THFT_Reset(chan, &tmpParam);
+
+        return flag;
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.8.0