From f5ad66e7cfcc014859ef6bcb3573a41fa2cb689c Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期三, 19 十二月 2018 18:10:24 +0800
Subject: [PATCH] save code

---
 QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp |   75 ++++++------
 QiaoJiaSystem/StructureApp/FaceDefine.h               |    0 
 QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h      |    6 
 QiaoJiaSystem/StructureApp/TrackingTrigger.h          |   63 ++++++++--
 QiaoJiaSystem/StructureApp/FaceRpcElement.cpp         |   25 +++-
 QiaoJiaSystem/build/DataWebServer                     |    0 
 QiaoJiaSystem/StructureApp/FaceRpcElement.h           |    7 +
 /dev/null                                             |   98 ----------------
 QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp  |    1 
 QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp    |   38 +++++
 QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt        |    1 
 QiaoJiaSystem/build/VideoAnalysFromHC                 |    0 
 QiaoJiaSystem/StructureApp/CMakeLists.txt             |    6 -
 QiaoJiaSystem/build/StructureApp                      |    0 
 14 files changed, 151 insertions(+), 169 deletions(-)

diff --git a/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp b/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp
index 7e2236d..0f0ec1a 100644
--- a/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp
+++ b/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp
@@ -56,6 +56,7 @@
                 memcpy(&face, &pos, sizeof(pos) - sizeof(pos.pFacialData));
                 face.pFacialData.resize(sizeof(pos.pFacialData));
                 memcpy(face.pFacialData.data(), pos.pFacialData, sizeof(pos.pFacialData));
+                face.pfaceId = -1;
 //                DBG(face.fAngle.confidence);
                 faces.push_back(face);
             }
diff --git a/QiaoJiaSystem/StructureApp/CMakeLists.txt b/QiaoJiaSystem/StructureApp/CMakeLists.txt
index 663a782..af6e988 100644
--- a/QiaoJiaSystem/StructureApp/CMakeLists.txt
+++ b/QiaoJiaSystem/StructureApp/CMakeLists.txt
@@ -118,9 +118,3 @@
     ${LIBS}
     )
 
-#add_executable(AppPipeControllerTest
-#    AppPipeControllerTest.cpp
-#    ${SOURCES})
-#target_link_libraries(AppPipeControllerTest
-#    ${LIBS}
-#    )
diff --git a/QiaoJiaSystem/testCodeMod/FaceDefine.h b/QiaoJiaSystem/StructureApp/FaceDefine.h
similarity index 100%
rename from QiaoJiaSystem/testCodeMod/FaceDefine.h
rename to QiaoJiaSystem/StructureApp/FaceDefine.h
diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
index ccee428..87f282f 100644
--- a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
@@ -4,6 +4,7 @@
 #include <QtCore/QString>
 #include <basic/timer_counter/Clocktimer.h>
 #include <basic/util/opencv/CvUtil.h>
+#include "FaceTrackingWrapper.h"
 
 #define GETSCORE(IDENT) appPref.getFloatData(IDENT) == -1 ? 95 : appPref.getFloatData(IDENT);
 
@@ -37,15 +38,18 @@
     sharedMemory(nullptr), trackingTrigger(nullptr) {
     sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str()));
     if (!sharedMemory->create(4608 * 2592 * 4)) {
-        sharedMemory->attach();
+        sharedMemory->
+
+            attach();
         DBG("size is " << sharedMemory->size());
     }
 
 //    string t_camIdex = getProperty("dev_id");
-    //#todo
+//#todo
     string t_camIdex;
     if (shareMemoryName.find("/")) {
-        string_replace(shareMemoryName, "//", "/");
+        string_replace(shareMemoryName,
+                       "//", "/");
         auto dev_pos = shareMemoryName.find("/cut/") + 5;
         auto ch_pos = shareMemoryName.find("/", dev_pos) + 1;
         auto str_device_id = shareMemoryName.substr(dev_pos, ch_pos - dev_pos - 1);
@@ -62,6 +66,7 @@
     t_score = t_score / 100;
 
     trackingTrigger = new TrackingTrigger(t_score);
+    m_trackingRet = appPref.getIntData("FaceTrackingRet");
 }
 
 FaceRpcElement::~FaceRpcElement() {
@@ -86,9 +91,15 @@
     try {
         auto server = rpcClient.getServer();
         if (!server) ERR("server is null");
-        faces = server->faceDetect(image.cols, image.rows, sharedMemory->key().toStdString());
+
+        if (m_trackingRet) {
+//            #todo xxxx.detectFace
+            faces = faceTrackingFunc(m_channel, image);
+        } else {
+            faces = server->faceDetect(image.cols, image.rows, sharedMemory->key().toStdString());
+        }
 //        DBG("faces.size  " << faces.size());
-        for (auto face: faces) {
+        for (auto &face: faces) {
             ::FaceDetect::RECT &rect = face.rcFace;
             ScoredRect scoredRect;
             int x = face.rcFace.left;
@@ -98,7 +109,9 @@
             scoredRect.rect = {x, y, w, h};
             scoredRect.score = (float) face.fAngle.confidence;
 
-            if (trackingTrigger->triggerOnce(scoredRect)) {
+            bool newFaceRet = m_trackingRet ? trackingTrigger->triggerOnce(scoredRect, face.pfaceId)
+                                            : trackingTrigger->triggerOnce(scoredRect);
+            if (newFaceRet) {
                 auto property = server->faceProperty(image.cols, image.rows, face, sharedMemory->key().toStdString());
                 trackingTrigger->getLastRect().properties["id"] = to_string(scoredRect.id);
                 trackingTrigger->getLastRect().properties["age"] = to_string(property.age);
diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.h b/QiaoJiaSystem/StructureApp/FaceRpcElement.h
index 4804da4..d1799bd 100644
--- a/QiaoJiaSystem/StructureApp/FaceRpcElement.h
+++ b/QiaoJiaSystem/StructureApp/FaceRpcElement.h
@@ -42,11 +42,18 @@
     QSharedMemory *sharedMemory;
     ::FaceDetect::Faces faces;
     TrackingTrigger *trackingTrigger;
+
+//    褰撳墠甯ф柊澧炰汉鑴� 锛�
     ::FaceDetect::Faces triggerFaces;
+//    褰撳墠甯ф柊澧炰汉鑴稿浘鐗囷紵
     std::vector<cv::Mat> triggerMats;
+//    褰撳墠甯ф柊澧炰汉鑴镐綅缃紵
     std::vector<ScoredRect> triggerScoredRects;
 
+    //褰曞儚瑙﹀彂
     TriggerElement m_triggerElement;
+//    鏄惁浣跨敤sdk璺熻釜
+    bool m_trackingRet;
 };
 
 #endif // FACERPCELEMENT_H
diff --git a/QiaoJiaSystem/testCodeMod/FaceTrackingWrapper.cpp b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp
similarity index 70%
rename from QiaoJiaSystem/testCodeMod/FaceTrackingWrapper.cpp
rename to QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp
index bd334b6..90d75ab 100644
--- a/QiaoJiaSystem/testCodeMod/FaceTrackingWrapper.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp
@@ -5,6 +5,37 @@
 #include "FaceTrackingWrapper.h"
 #include "Debug.h"
 
+#include <FaceDetectServer/rpc/FaceServer.h>
+#include <opencv2/opencv.hpp>
+
+static FaceTrackingWrapper g_faceTrackingWrapper;
+static std::map<std::string, int> g_channelCache;
+
+static ::FaceDetect::Faces faceTrackingFunc(int channel, cv::Mat &image) {
+    FaceDetect::Faces faces;
+    int channel = 0;
+    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 = facesPos[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");
+    }
+
+}
+
 
 FaceTrackingWrapper::FaceTrackingWrapper() {
 
@@ -45,11 +76,12 @@
  * @param image
  * @return
  */
-std::vector<BasicFace::FaceDetectResult> FaceTrackingWrapper::detectFace(BasicFace::FaceImage image) {
+std::vector<BasicFace::FaceDetectResult> FaceTrackingWrapper::detectFace(const BasicFace::FaceImage &image) {
     return vector<BasicFace::FaceDetectResult>();
 }
 
-std::vector<BasicFace::FaceDetectResult> FaceTrackingWrapper::trackingFace(int channel, BasicFace::FaceImage image) {
+std::vector<BasicFace::FaceDetectResult>
+FaceTrackingWrapper::trackingFace(int channel, const BasicFace::FaceImage &image) {
     vector<BasicFace::FaceDetectResult> results;
     //    ClockTimer ct("CasiaFaceWapper::detectFace");
     if (channel == -1) {
@@ -90,7 +122,7 @@
  * @param image
  * @return
  */
-vector<BasicFace::FaceFeatureResult> FaceTrackingWrapper::extractFace(BasicFace::FaceImage image) {
+vector<BasicFace::FaceFeatureResult> FaceTrackingWrapper::extractFace(const BasicFace::FaceImage &image) {
     return vector<BasicFace::FaceFeatureResult>();
 }
 
diff --git a/QiaoJiaSystem/testCodeMod/FaceTrackingWrapper.h b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h
similarity index 81%
rename from QiaoJiaSystem/testCodeMod/FaceTrackingWrapper.h
rename to QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h
index 83e04f1..a220dcd 100644
--- a/QiaoJiaSystem/testCodeMod/FaceTrackingWrapper.h
+++ b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h
@@ -34,11 +34,11 @@
 
     bool initHandle();
 
-    std::vector<BasicFace::FaceDetectResult> detectFace(BasicFace::FaceImage image);
+    std::vector<BasicFace::FaceDetectResult> detectFace(const BasicFace::FaceImage &image);
 
-    std::vector<BasicFace::FaceDetectResult> trackingFace(int channel, BasicFace::FaceImage image);
+    std::vector<BasicFace::FaceDetectResult> trackingFace(int channel, const BasicFace::FaceImage &image);
 
-    vector<BasicFace::FaceFeatureResult> extractFace(BasicFace::FaceImage image);
+    vector<BasicFace::FaceFeatureResult> extractFace(const BasicFace::FaceImage &image);
 
     static float compareFeature(BasicFace::Feature &feature1, BasicFace::Feature &feature2);
 
diff --git a/QiaoJiaSystem/StructureApp/TrackingTrigger.h b/QiaoJiaSystem/StructureApp/TrackingTrigger.h
index 8fe9509..544dd77 100644
--- a/QiaoJiaSystem/StructureApp/TrackingTrigger.h
+++ b/QiaoJiaSystem/StructureApp/TrackingTrigger.h
@@ -9,7 +9,8 @@
 using namespace std;
 
 struct ScoredRect {
-    ScoredRect() : id(-1) ,isMask(false){}
+    ScoredRect() : id(-1), isMask(false) {}
+
     bool isMask;
     float score;
     cv::Rect rect;
@@ -22,7 +23,50 @@
     TrackingTrigger(float threshold) :
         threshold(threshold), faceTrackingId(0) {}
 
-    bool triggerOnce(ScoredRect &rect) {
+
+    bool triggerOnce(ScoredRect &rect, long faceId = -1) {
+        if (faceId < 0) {
+            return triggerOnce(rect, false);
+        } else {
+            bool found = false;
+            for (auto lastRect: lastScoreRects) {
+                if (lastRect.id >= 0 && lastRect.id == faceId) {
+                    found = true;
+                    rect.id = faceId;
+                    rect.properties = lastRect.properties;
+                    tempScoreRects.push_back(rect);
+                    break;
+                }
+            }
+            if (!found) {
+                if (rect.score < threshold) {
+//                tempScoreRects.push_back(rect);
+                    return false;
+                } else {
+                    rect.id = faceId;
+                    tempScoreRects.push_back(rect);
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
+
+    void triggerLine() {
+        lastScoreRects.swap(tempScoreRects);// = tempScoreRects;
+        tempScoreRects.clear();
+    }
+
+    ScoredRect &getLastRect() {
+        return tempScoreRects[tempScoreRects.size() - 1];
+    }
+
+    std::vector<ScoredRect> getLastScoreRects() const {
+        return lastScoreRects;
+    }
+
+private:
+    bool triggerOnce(ScoredRect &rect, bool) {
         bool found = false;
         for (auto lastRect: lastScoreRects) {
             if (lastRect.id >= 0 && (rect.rect & lastRect.rect).area() > lastRect.rect.area() * 0.4) {
@@ -46,23 +90,12 @@
         return false;
     }
 
-    void triggerLine() {
-        lastScoreRects = tempScoreRects;
-        tempScoreRects.clear();
-    }
-
-    ScoredRect &getLastRect() {
-        return tempScoreRects[tempScoreRects.size() - 1];
-    }
-
-    std::vector<ScoredRect> getLastScoreRects() const {
-        return lastScoreRects;
-    }
-
 private:
     float threshold;
     std::vector<ScoredRect> lastScoreRects;
     std::vector<ScoredRect> tempScoreRects;
+    std::vector<int> lastScoreInts;
+    std::vector<int> tempScoreInts;
     std::atomic<long> faceTrackingId;
 };
 
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt b/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt
index 1d8f81c..1caec38 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt
+++ b/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt
@@ -52,6 +52,7 @@
     ../StructureApp/RecordVideoElement.cpp
     ../StructureApp/JudgmentRetrogradeTool.cpp
     ../StructureApp/PerimeterElement.cpp
+    ../StructureApp/FaceTrackingWrapper.cpp
 
     ../StructureApp/NewRecordVideoElement.cpp
 
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
index b96f6bd..db732c6 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
+++ b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
@@ -68,6 +68,7 @@
 }
 
 void RtspAnalysElement::init() {
+    appPref.setIntData("FaceTrackingRet", 1);
     auto lst = m_lDBTool->searchCamDevTableAll();
     auto lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
 
@@ -106,7 +107,7 @@
             vector<int> sdkDetCoVec = chnString2Vec(en_sdk.str_det_thr.toStdString());
             vector<int> sdkComCoVec = chnString2Vec(en_sdk.str_cmp_thr.toStdString());
 
-            int camId=item.str_cam_dev_id.toInt();
+            int camId = item.str_cam_dev_id.toInt();
             int t_size = sdkVec.size();
             for (int i = 0; i < t_size; i++) {
                 switch (sdkVec[i]) {
@@ -116,6 +117,7 @@
                         SETSCORE(sdkDetCoVec, i, t_camIdex + "face.det");
                         SETSCORE(sdkComCoVec, i, t_camIdex + "face.cmp");
                         DBG(" TESTCODE " << sdkDetCoVec[i] << " " << sdkComCoVec[i]);
+//                        #todo add param
 
                         break;
                     }
@@ -137,15 +139,15 @@
                         json["perimeter.enable"] = "1";
                         SETSCORE(sdkDetCoVec, i, t_camIdex + "perimeter.det");
                         SETSCORE(sdkComCoVec, i, t_camIdex + "perimeter.cmp");
-                        setDataByType(4,json,camId);
+                        setDataByType(4, json, camId);
                         break;
-                      }
+                    }
                     case 5: {
 
                         json["crowd.enable"] = "1";
                         SETSCORE(sdkDetCoVec, i, t_camIdex + "crowd.det");
                         SETSCORE(sdkComCoVec, i, t_camIdex + "crowd.cmp");
-                        setDataByType(5,json,camId);
+                        setDataByType(5, json, camId);
                         break;
                     }
                     case 6: {
@@ -153,7 +155,7 @@
                         json["keepRight.enable"] = "1";
                         SETSCORE(sdkDetCoVec, i, t_camIdex + "keepRight.det");
                         SETSCORE(sdkComCoVec, i, t_camIdex + "keepRight.cmp");
-                        setDataByType(6,json,camId);
+                        setDataByType(6, json, camId);
                         break;
                     }
                 }
@@ -266,39 +268,36 @@
     }
     return result;
 }
-void RtspAnalysElement::setDataByType(int type,Json::Value& json,int camId)
-{
+
+void RtspAnalysElement::setDataByType(int type, Json::Value &json, int camId) {
     switch (type) {
-    case 4:
-    {
-        auto rule=m_lDBTool->searchPerimeterRuleByCamId(camId);
-        json["perimeter.area"]=rule.strAreas.toStdString();
-        json["perimeter.num"]=rule.nAlarmPeopleNum;
-        json["perimeter.delay"]=rule.nTriggerDelay;
-        json["perimeter.tolerance"]=rule.nTriggertolerance;
-        break;
-    }
-    case 5:
-    {
-        auto rule=m_lDBTool->searchCrowdRuleByCamId(camId);
-        json["crowd.area"]=rule.strAreas.toStdString();
-        json["crowd.num"]=rule.nAlarmPeopleNum;
-        json["crowd.delay"]=rule.nTriggerDelay;
-        json["crowd.tolerance"]=rule.nTriggertolerance;
-        break;
-    }
-    case 6:
-    {
-         auto rule=m_lDBTool->searchActRuleByCamId(camId);
-         json["keepRight.leftArea"]=rule.strAreas.toStdString();
-         json["keepRight.leftLine"]=rule.strLine.toStdString();
-         json["keepRight.rightArea"]=rule.strExAreas.toStdString();
-         json["keepRight.rightLine"]=rule.strExLine.toStdString();
-         json["keepRight.delay"]=rule.nTriggerDelay;
-         json["keepRight.tolerance"]=rule.nTriggertolerance;
-        break;
-    }
-    default:
-        break;
+        case 4: {
+            auto rule = m_lDBTool->searchPerimeterRuleByCamId(camId);
+            json["perimeter.area"] = rule.strAreas.toStdString();
+            json["perimeter.num"] = rule.nAlarmPeopleNum;
+            json["perimeter.delay"] = rule.nTriggerDelay;
+            json["perimeter.tolerance"] = rule.nTriggertolerance;
+            break;
+        }
+        case 5: {
+            auto rule = m_lDBTool->searchCrowdRuleByCamId(camId);
+            json["crowd.area"] = rule.strAreas.toStdString();
+            json["crowd.num"] = rule.nAlarmPeopleNum;
+            json["crowd.delay"] = rule.nTriggerDelay;
+            json["crowd.tolerance"] = rule.nTriggertolerance;
+            break;
+        }
+        case 6: {
+            auto rule = m_lDBTool->searchActRuleByCamId(camId);
+            json["keepRight.leftArea"] = rule.strAreas.toStdString();
+            json["keepRight.leftLine"] = rule.strLine.toStdString();
+            json["keepRight.rightArea"] = rule.strExAreas.toStdString();
+            json["keepRight.rightLine"] = rule.strExLine.toStdString();
+            json["keepRight.delay"] = rule.nTriggerDelay;
+            json["keepRight.tolerance"] = rule.nTriggertolerance;
+            break;
+        }
+        default:
+            break;
     }
 }
diff --git a/QiaoJiaSystem/build/DataWebServer b/QiaoJiaSystem/build/DataWebServer
index 47ad9d1..b288461 100644
--- a/QiaoJiaSystem/build/DataWebServer
+++ b/QiaoJiaSystem/build/DataWebServer
Binary files differ
diff --git a/QiaoJiaSystem/build/StructureApp b/QiaoJiaSystem/build/StructureApp
index 45095a3..1dc58b6 100644
--- a/QiaoJiaSystem/build/StructureApp
+++ b/QiaoJiaSystem/build/StructureApp
Binary files differ
diff --git a/QiaoJiaSystem/build/VideoAnalysFromHC b/QiaoJiaSystem/build/VideoAnalysFromHC
index 81df8c6..c2b295f 100644
--- a/QiaoJiaSystem/build/VideoAnalysFromHC
+++ b/QiaoJiaSystem/build/VideoAnalysFromHC
Binary files differ
diff --git a/QiaoJiaSystem/testCodeMod/CMakeLists.txt b/QiaoJiaSystem/testCodeMod/CMakeLists.txt
deleted file mode 100644
index b95da27..0000000
--- a/QiaoJiaSystem/testCodeMod/CMakeLists.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-cmake_minimum_required(VERSION 3.5)
-project(testCode)
-set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../build)
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_BUILD_TYPE debug)
-add_definitions(-DDEBUG_ERR -DDEBUG_INFO)
-add_definitions(-DGLOG)
-add_compile_options(-fPIC)
-
-SET(LIBS
-    glog
-    opencv_world
-    Qt5Core
-    THFaceImage
-    THFaceTracking
-    THFeature
-    THFaceProperty
-    pthread
-    )
-include_directories(
-    ./rpc
-    ../../../BasicPlatForm
-    ../../../BasicPlatForm/basic/debug
-    ../../../BasicPlatForm/libs/opencv/include
-    ../../../BasicPlatForm/libs/ffmpeg/include
-    ../../../BasicPlatForm/wrapper/casia/include
-    ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/include
-    /usr/include/x86_64-linux-gnu/qt5
-    #glog
-    ../../../BasicPlatForm/libs/glog/include
-)
-
-link_directories(
-    #glog
-    ../../../BasicPlatForm/libs/glog/lib
-    /usr/local/cuda/lib64
-    ../../../BasicPlatForm/libs/opencv/lib
-    ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/lib/gpu
-)
-
-add_executable(${PROJECT_NAME}
-    main.cpp
-    FaceTrackingWrapper.cpp FaceTrackingWrapper.h FaceDefine.h)
-target_link_libraries(${PROJECT_NAME}
-    ${LIBS}
-    )
-
-
diff --git a/QiaoJiaSystem/testCodeMod/main.cpp b/QiaoJiaSystem/testCodeMod/main.cpp
deleted file mode 100644
index 11f3fd1..0000000
--- a/QiaoJiaSystem/testCodeMod/main.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// Created by ps on 18-12-18.
-//
-
-#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");
-
-}
\ No newline at end of file

--
Gitblit v1.8.0