From 96024c860270477fe9cf387ba855632a3ead08ee Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期二, 18 十二月 2018 18:08:24 +0800 Subject: [PATCH] add Face tracking demo code --- QiaoJiaSystem/testCodeMod/main.cpp | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 0 deletions(-) diff --git a/QiaoJiaSystem/testCodeMod/main.cpp b/QiaoJiaSystem/testCodeMod/main.cpp index 7bd3451..11f3fd1 100644 --- a/QiaoJiaSystem/testCodeMod/main.cpp +++ b/QiaoJiaSystem/testCodeMod/main.cpp @@ -3,10 +3,95 @@ // #include <Debug.h> +#include "FaceTrackingWrapper.h" + +using namespace cv; + +//get current system time +double msecond() { + struct timeval tv; + gettimeofday(&tv, 0); + return (tv.tv_sec * 1.0e3 + tv.tv_usec * 1.0e-3); +} int main(int argc, char **argv) { ENABLEGLOG("./log/"); + FaceTrackingWrapper faceTrackingWrapper; + + bool bOpen; + VideoCapture vc; +// rtsp stream address + bOpen = vc.open("rtsp://admin:a1234567@192.168.1.188:554/h264/ch1/main/av_stream"); + //camera +// if (1) { +// bool bSet1 = vc.set(CV_CAP_PROP_FRAME_WIDTH, w); +// bool bSet2 = vc.set(CV_CAP_PROP_FRAME_HEIGHT, h); +// bOpen = vc.open(devID); +// +// } +// //video file +// else { +// bOpen = vc.open("test.avi"); +// +// } + if (!bOpen) { + printf("Open video source faild."); + return 0; + } + + int nWidth = vc.get(CV_CAP_PROP_FRAME_WIDTH); + int nHeight = vc.get(CV_CAP_PROP_FRAME_HEIGHT); + + printf("FRAME_WIDTH=%d,FRAME_HEIGHT=%d\n", nWidth, nHeight); + + + BasicFace::InitParam initParam; + initParam.nDeviceID = 0; + initParam.nImageWidth = nWidth; + initParam.nImageHeight = nHeight; + initParam.nMaxFaceNum = 50; + initParam.nSampleSize = nWidth / 2; + initParam.nDetectionIntervalFrame = 12; + + faceTrackingWrapper.setChannelParam(0, initParam); + faceTrackingWrapper.setChannelParam(1, initParam); + faceTrackingWrapper.setChannelParam(2, initParam); + + faceTrackingWrapper.initHandle(); + Mat frame; + + while (1) { + + vc >> frame; + if (frame.empty()) { + waitKey(30); + continue; + } + + int nNum = 0; + THFT_FaceInfo *pFaceInfos = new THFT_FaceInfo[50]; + double t1, t2; + t1 = msecond(); +// nNum = THFT_FaceTracking(2, frame.data, pFaceInfos); + + BasicFace::FaceImage faceImage2{frame.cols, frame.rows, frame.step, frame.data}; + auto t_lists = faceTrackingWrapper.trackingFace(2, faceImage2); + t2 = msecond(); + delete[] pFaceInfos; + printf("face tracking time=%fms faceNun is %d\n", t2 - t1, (int) t_lists.size()); + + imshow("Face Tracking", frame); + waitKey(30); + } + destroyWindow("Face Tracking"); + + vc.release(); + THFT_Release(); + + getchar(); + return 0; + INFO("test"); -- Gitblit v1.8.0