From e53067a47f921cc1f09d160dc6dba8596aba5df4 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 15 一月 2020 12:42:01 +0800
Subject: [PATCH] debug

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

diff --git a/csrc/buz/face/detector.cpp b/csrc/buz/face/detector.cpp
new file mode 100644
index 0000000..e191ea8
--- /dev/null
+++ b/csrc/buz/face/detector.cpp
@@ -0,0 +1,60 @@
+#include "detector.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "THFaceImage_i.h"
+
+#include "csdk_struct.h"
+
+namespace csdk_wrap
+{
+    int init_face_detector(const int tm, const int gi, const int minFaces, const int rollAngle,
+                            VecFunc &vec){
+        int ret = 0;
+          if (gi < 0) {
+              THFI_Param *param = new THFI_Param[tm];
+              ret = THFI_Create(tm, param);
+              delete[] param;
+          } else {
+              THFI_Param_Ex *param = new THFI_Param_Ex[tm];
+              THFI_Param detParam;
+              detParam.nMinFaceSize = minFaces;
+              detParam.nRollAngle = rollAngle;
+              for (int i = 0; i < tm; i++) {
+                  param[i].tp = detParam;
+                  param[i].nDeviceID = gi;
+              }
+              ret = THFI_Create_Ex(tm, param);
+              delete[] param;
+          }
+          if(ret != tm){
+              printf("create face detector failed!\n");
+          }else{
+              vec.emplace_back([]{THFI_Release();});
+          }
+          
+          return ret;
+    }
+
+    cFacePos* face_detect(int *faceCount, const cIMAGE *img, const int channel){
+        if(channel < 0 || !img){
+            return NULL;
+        }
+        cFacePos *fpos = NULL;
+        ::THFI_FacePos facesPos[30];
+        int faceNum = THFI_DetectFace(channel, (BYTE*)(img->data), 24, img->width, img->height, facesPos, 30);
+
+        if (faceNum > 0) {
+            fpos =  (cFacePos*)malloc(faceNum * sizeof(cFacePos));
+            *faceCount = faceNum;
+            memcpy(fpos, facesPos, sizeof(THFI_FacePos) * faceNum);
+            
+        }else{
+            // printf ("no face detected\n");
+        }
+        return fpos;
+    }
+    
+} // csdk_wrap

--
Gitblit v1.8.0