From 291dbcd9331cd0df41addef74defa4654ee034fb Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期一, 22 四月 2019 15:59:20 +0800
Subject: [PATCH] 增加人员异常的参数处理

---
 QiaoJiaSystem/StructureApp/YoloRpcElement.cpp |  118 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 55 insertions(+), 63 deletions(-)

diff --git a/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp b/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp
index b16012d..a5a914f 100644
--- a/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp
+++ b/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp
@@ -10,9 +10,8 @@
     rpcClient(appPref.getStringData("yolo.proxy"), appPref.getStringData("yolo.ip"),
               appPref.getIntData("yolo.port"), "tcp"),
     sharedMemory(nullptr),
-    trackingTrigger(nullptr)
-{
-     trackingTrigger = new TrackingTrigger(0.5);
+    trackingTrigger(nullptr) {
+    trackingTrigger = new TrackingTrigger(0.5);
     sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str()));
 //    DBG(shareMemoryName);
     //1520 x 2688   1080 x 1920 //2560 * 1440 * 4
@@ -33,90 +32,83 @@
     if (sharedMemory) {
         delete sharedMemory;
     }
-    if(trackingTrigger)
-    {
+    if (trackingTrigger) {
         delete trackingTrigger;
-        trackingTrigger=nullptr;
+        trackingTrigger = nullptr;
     }
 }
-void YoloRpcElement::setImage(const cv::Mat &value)
-{
-    if (value.size != image.size)
-    {
+
+void YoloRpcElement::setImage(const cv::Mat &value) {
+    if (value.size != image.size) {
         image = cv::Mat(value.rows, value.cols, CV_8UC3, sharedMemory->data());
     }
     value.copyTo(image);
 }
-::YoloDetect::ObjInfos YoloRpcElement::getObjects() const
-{
+
+::YoloDetect::ObjInfos YoloRpcElement::getObjects() const {
     return objs;
 }
 
 
 std::vector<ScoredRect> YoloRpcElement::getLastScoreRects() const {
-    return triggerScoredRects;
+    return trackingTrigger->getLastScoreRects();
 }
 
- cv::Mat YoloRpcElement::getImage() const
-{
+cv::Mat YoloRpcElement::getImage() const {
     return image;
 }
 
-void YoloRpcElement::threadFunc()
-{
-        triggerScoredRects.clear();
+void YoloRpcElement::threadFunc() {
+    //  ClockTimer ct("YoloRpcElement::threadFunc");
+    triggerScoredRects.clear();
     try {
-            auto server = rpcClient.getServer();
-            if (!server)
-            {
-                ERR("server is null");
-                return;
-            }
-            objs = server->YoloDetect(image.cols, image.rows, sharedMemory->key().toStdString());//TODO
-        }
-        catch (std::exception &e)
-        {
-            ERR(e.what())
-        }
-        int size=objs.size();
-        if(size>30)
-        {
-
-//              cv::imshow("image", image);
-
-//               cv::waitKey();
-
-            DBG("size="<<size);
+        auto server = rpcClient.getServer();
+        if (!server) {
+            ERR("server is null");
             return;
         }
+        objs = server->YoloDetect(image.cols, image.rows, sharedMemory->key().toStdString());//TODO
+    }
+    catch (std::exception &e) {
+        ERR(e.what())
+    }
+//        int size=objs.size();
+//        if(size>30)
+//        {
 
-        for (auto &obj: objs)
-        {
-            if (obj.type != 0)
-                continue;
+//            DBG("size="<<size);
+//            return;
+//        }
 
-            ScoredRect scoredRect;
+    for (auto &obj: objs) {
+        if (obj.type != 0)
+            continue;
 
-            int x = obj.rcObj.left * image.cols;
-            int y = obj.rcObj.top * image.rows;
-            int w = (obj.rcObj.right - obj.rcObj.left) * image.cols;
-            int h = (obj.rcObj.bottom - obj.rcObj.top) * image.rows;
-            scoredRect.rect = cv::Rect(x, y, w, h);
-            scoredRect.score = scoredRect.rect.area() > 0 ? obj.prob : 0;
-            if (trackingTrigger->triggerOnce(scoredRect))
-            {
-                trackingTrigger->getLastRect().properties["id"] = to_string(scoredRect.id);
-                trackingTrigger->getLastRect().properties["type"] = cocoData[obj.type];
-                trackingTrigger->getLastRect().properties["time"] = getProperty("time");
-                triggerScoredRects.push_back(trackingTrigger->getLastRect());
-            }
+        ScoredRect scoredRect;
+
+        int x = obj.rcObj.left * image.cols;
+        int y = obj.rcObj.top * image.rows;
+        int w = (obj.rcObj.right - obj.rcObj.left) * image.cols;
+        int h = (obj.rcObj.bottom - obj.rcObj.top) * image.rows;
+        scoredRect.rect = cv::Rect(x, y, w, h);
+        scoredRect.score = scoredRect.rect.area() > 0 ? obj.prob : 0;
+        scoredRect.properties["time"] = getProperty("time");
+        scoredRect.properties["imgKey"] = getProperty("imgKey");
+        if (trackingTrigger->triggerOnce(scoredRect)) {
+            trackingTrigger->getLastRect().properties["id"] = to_string(scoredRect.id);
+            trackingTrigger->getLastRect().properties["type"] = cocoData[obj.type];
+            trackingTrigger->getLastRect().properties["time"] = getProperty("time");
+            trackingTrigger->getLastRect().properties["imgKey"] = getProperty("imgKey");
+            //  DBG("time)"<<getProperty("time"));
+            triggerScoredRects.push_back(trackingTrigger->getLastRect());
         }
-        trackingTrigger->triggerLine();
-        if(trackingTrigger->getLastScoreRects().size()>20)
-        {
-            DBG("");
-        }
-        fireConnectors();
+    }
+    trackingTrigger->triggerLine();
+//        if(trackingTrigger->getLastScoreRects().size()>20)
+//        {
+//            DBG("");
+//        }
+    fireConnectors();
 }
 
 

--
Gitblit v1.8.0