From 2b1a3988c9fd35c39e3e43d0382d65a13c45efee Mon Sep 17 00:00:00 2001 From: xuxiuxi <554325746@qq.com> Date: 星期四, 14 三月 2019 10:38:27 +0800 Subject: [PATCH] Merge branch 'yw.1.2.fixbug' of http://192.168.1.226:10010/r/development/c++ into yw.1.2.fixbug --- QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp | 59 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 49 insertions(+), 10 deletions(-) diff --git a/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp b/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp index 974c7cc..60c32ed 100644 --- a/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp +++ b/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp @@ -9,12 +9,13 @@ #include <basic/pipe/PipeController.h> #include <basic/pipe_element/ffmpeg/VideoCaptureElement.h> #include "ImageDrawElement.h" -#include <YoloRpcElement.h> +#include "YoloRpcElement.h" #include <basic/util/app/AppPreference.hpp> +#include <basic/util/opencv/CvUtil.h> class Controllor : public PipeController { public: - Controllor(const int index, const std::string &rtsp) : m_videoCaptureElement(rtsp, 25, 1000, 0), + Controllor(const int index, const std::string &rtsp) : m_videoCaptureElement(rtsp, 25, -1, 0), m_YoloRpcElement(std::to_string(index) + "YoloRpc") { m_index = index; m_rtsp = rtsp; @@ -36,7 +37,7 @@ }); m_imageDrawElement.registerConnector([&] { -// ImageShowElement::showImage(std::to_string(m_index), *m_imageDrawElement.getImage()); + ImageShowElement::showImage(std::to_string(m_index), *m_imageDrawElement.getImage()); }); m_videoCaptureElement.setOutPutInterval(3); @@ -55,24 +56,62 @@ int m_index; }; +void 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, 1.5, + cv::Scalar(255, 255, 0), 2); +} + //using namespace std; int main(int argc, char *argv[]) { SAVE_APP_ARGS - int num = atoi(argv[1]); - std::string path(argv[2]); - int portNum = atoi(argv[3]); +// int num = atoi(argv[1]); +// std::string path(argv[2]); +// int portNum = atoi(argv[3]); //yolo server appPref.setStringData("yolo.proxy", "yoloServer"); //#todo appPref.setStringData("yolo.ip", ""); - appPref.setIntData("yolo.port", portNum); + appPref.setIntData("yolo.port", 10003); // rpcClient(appPref.getStringData("yolo.proxy"), appPref.getStringData("yolo.ip"), appPref.getLongData("yolo.port"),"tcp"), - for (int i = 0; i < num; i++) { - Controllor *_Controllor = new Controllor(i, path); - _Controllor->start(); + Controllor *_Controllor = new Controllor(1, + "/home/pans/work/qiaojia/cut/44120000001325000005/201903/06/2019030617/44120000001325000005$2019-03-06-17-51-53_4747_4946.mp4"); + _Controllor->start(); + + getchar(); + + + YoloRpcElement m_YoloRpcElement("YoloRpc"); + ImageDrawElement m_imageDrawElement; + m_YoloRpcElement.start(); + m_imageDrawElement.start(); + auto img = cv::imread("/home/bsk/Desktop/wubao2.jpg"); + m_YoloRpcElement.setImage(img); + m_YoloRpcElement.submit(); + m_YoloRpcElement.registerConnector([&] { + }); + + sleep(2); + + auto res = m_YoloRpcElement.getLastScoreRects(); + + for (auto yoloObj: res) { + auto rect = CvUtil::zoomRect(yoloObj.rect, 1, 1); + //[{"x":1.5999756,"y":82.533325},{"x":1.5999756,"y":180.53333},{"x":61.599976,"y":175.53333},{"x":63.599976,"y":66.533325}] + //cv::rectangle(image, cv::Rect(4,328,252,480 ), cv::Scalar(0, 0, 255), 2); + cv::rectangle(img, rect, yoloObj.id >= 0 ? cv::Scalar(255, 0, 0) : cv::Scalar(0, 255, 255), 2); + int i = 0; + for (auto &property:yoloObj.properties) { + darwProperty(img, property.first, property.second, rect.x + rect.width, rect.y + 40 * i++); + } } + cv::imwrite("img/test2.jpg", img); + cv::imshow("test", img); +// for (int i = 0; i < num; i++) { +// Controllor *_Controllor = new Controllor(i, path); +// _Controllor->start(); +// } // Controllor _Controllor(0, "/home/bsk/2.mp4"); // _Controllor.start(); -- Gitblit v1.8.0