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