From 779b80d18f41fb855bc91eb6e5470d26665e6683 Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期四, 11 四月 2019 15:36:32 +0800 Subject: [PATCH] 添加VptElement --- QiaoJiaSystem/StructureApp/YoloRpcElement.cpp | 97 ++++++++++++++++++++++-------------------------- 1 files changed, 44 insertions(+), 53 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp b/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp index e3ccd11..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,22 +32,20 @@ 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; } @@ -57,28 +54,24 @@ return trackingTrigger->getLastScoreRects(); } - cv::Mat YoloRpcElement::getImage() const -{ +cv::Mat YoloRpcElement::getImage() const { return image; } -void YoloRpcElement::threadFunc() -{ - // ClockTimer ct("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 + auto server = rpcClient.getServer(); + if (!server) { + ERR("server is null"); + return; } - catch (std::exception &e) - { - ERR(e.what()) - } + 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) // { @@ -87,37 +80,35 @@ // return; // } - for (auto &obj: objs) - { - if (obj.type != 0) - continue; + for (auto &obj: objs) { + if (obj.type != 0) + continue; - ScoredRect scoredRect; + 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()); - } + 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(); + } + trackingTrigger->triggerLine(); // if(trackingTrigger->getLastScoreRects().size()>20) // { // DBG(""); // } - fireConnectors(); + fireConnectors(); } -- Gitblit v1.8.0