From 687078116c5103ccd8bc668c0f0e84f9dd6af20c Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期三, 19 十二月 2018 18:55:08 +0800
Subject: [PATCH] save code wait test wait init param

---
 QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h
index a220dcd..8b950b4 100644
--- a/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h
+++ b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h
@@ -11,11 +11,13 @@
 #include <sys/time.h>
 #include <time.h>
 #include <list>
+#include <basic/debug/Debug.h>
 
 #include <opencv2/opencv.hpp>
 #include <FiStdDefEx.h>
 
 #include <THFaceTracking_i.h>
+#include <FaceDetectServer/rpc/FaceServer.h>
 
 #include "FaceDefine.h"
 
@@ -52,5 +54,30 @@
 //    std::map<int, ObjectList> m_objListCache;
 };
 
+static FaceTrackingWrapper g_faceTrackingWrapper;
+static std::map<std::string, int> g_channelCache;
+
+static ::FaceDetect::Faces faceTrackingFunc(int channel, cv::Mat &image) {
+    FaceDetect::Faces faces;
+    BasicFace::FaceImage faceImage{image.cols, image.rows, image.step, image.data};
+
+    THFT_FaceInfo facePos[MAX_DETECT_FACE];
+    int faceNum = THFT_FaceTracking(channel, image.data, facePos);
+
+    if (faceNum > 0) {
+        for (int i = 0; i < faceNum; i++) {
+            FaceDetect::FacePos face;
+            auto &pos = facePos[i];
+            memcpy(&face, &pos, sizeof(pos) - sizeof(pos.pFacialData) - sizeof(pos.nFaceID));
+            face.pFacialData.resize(sizeof(pos.pFacialData));
+            memcpy(face.pFacialData.data(), pos.pFacialData, sizeof(pos.pFacialData));
+            face.pfaceId = pos.nFaceID;
+//                DBG(face.fAngle.confidence);
+            faces.push_back(face);
+        }
+    } else {
+        DBG("Face num is 0");
+    }
+}
 
 #endif //TESTCODE_FACETRACKINGWRAPPER_H

--
Gitblit v1.8.0