From d3b7bbe7102cd089680a828f5d8f6402c8cf6342 Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 07 三月 2019 14:43:28 +0800
Subject: [PATCH] GB28181集成完成,集成推流模块

---
 QiaoJiaSystem/YoloServer/ImageDrawElement.cpp |   55 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/QiaoJiaSystem/YoloServer/ImageDrawElement.cpp b/QiaoJiaSystem/YoloServer/ImageDrawElement.cpp
index 0084b09..88a1460 100644
--- a/QiaoJiaSystem/YoloServer/ImageDrawElement.cpp
+++ b/QiaoJiaSystem/YoloServer/ImageDrawElement.cpp
@@ -1,30 +1,43 @@
 #include "ImageDrawElement.h"
+#include <basic/util/opencv/CvUtil.h>
 
+ImageDrawElement::ImageDrawElement() {
 
-ImageDrawElement::ImageDrawElement()
-{
 }
 
-void ImageDrawElement::setRects(const std::vector<cv::Rect2f> &value)
-{
-    rectsMtx.lock();
-    rectsBuffer = value;
-    rectsUpdated = true;
-    rectsMtx.unlock();
+void ImageDrawElement::darwProperty(cv::Mat &image, string key, string value, int x, int y) {
+    cv::putText(image, key + ": " + value, cv::Point(x, y), cv::HersheyFonts::FONT_HERSHEY_PLAIN, 4,
+                cv::Scalar(200, 120, 200), 3);
 }
 
-void ImageDrawElement::processImage(cv::Mat &image)
-{
-    if(rectsUpdated){
-        rectsMtx.lock();
-        rects = rectsBuffer;
-        rectsUpdated = false;
-        rectsMtx.unlock();
+void ImageDrawElement::processImage(cv::Mat &image) {
+//    auto faceData = faces.getData();
+    auto yoloObjectsData = yoloObjects.getData();
+
+//    for (auto face: faceData) {
+//        auto rect = CvUtil::zoomRect(face.rect, 1.2, 1.2);
+//        cv::rectangle(image, rect, face.id >= 0 ? cv::Scalar(0, 255, 0) : cv::Scalar(0, 255, 255), 2);
+//        int i = 0;
+//        for (auto &property:face.properties) {
+//            darwProperty(image, property.first, property.second, rect.x + rect.width, rect.y + 40 * i++);
+//        }
+//    }
+
+//    DBG("yoloObjectsData size is " << yoloObjectsData.size());
+    for (auto yoloObj: yoloObjectsData) {
+        auto rect = CvUtil::zoomRect(yoloObj.rect, 1, 1);
+        cv::rectangle(image, rect, yoloObj.id >= 0 ? cv::Scalar(255, 0, 0) : cv::Scalar(0, 255, 255), 2);
+        int i = 0;
+        for (auto &property:yoloObj.properties) {
+            darwProperty(image, property.first, property.second, rect.x + rect.width, rect.y + 40 * i++);
+        }
     }
-    for(size_t i = 0;i<rects.size();i++){
-        cv::Rect2f& rectf = rects[i];
-        cv::Rect rect(rectf.x*image.cols,rectf.y*image.rows,rectf.width*image.cols,rectf.height*image.rows);
-        cv::rectangle(image, rect,cv::Scalar(0,0,255),4);
-    }
-    fireConnectors();
+}
+
+//void ImageDrawElement::setFaces(std::vector<ScoredRect> value) {
+//    faces = value;
+//}
+
+void ImageDrawElement::setYoloObjects(std::vector<ScoredRect> value) {
+    yoloObjects = value;
 }

--
Gitblit v1.8.0