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