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/StructureApp/PerimeterElement.h | 56 +++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 35 insertions(+), 21 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.h b/QiaoJiaSystem/StructureApp/PerimeterElement.h index 9bf6eb4..7f90643 100644 --- a/QiaoJiaSystem/StructureApp/PerimeterElement.h +++ b/QiaoJiaSystem/StructureApp/PerimeterElement.h @@ -1,8 +1,6 @@ #ifndef PERIMETERELEMENT #define PERIMETERELEMENT - #include <basic/pipe/PipeElement.h> -//#include <basic/event/EventHandler.hpp> #include <opencv2/opencv.hpp> #include <Ice/Ice.h> #include <YoloServer.h> @@ -10,20 +8,24 @@ #include "TrackingTrigger.h" #include <QJsonArray> #include <RapidStructureApp/TriggerElement.h> +#include <basic/util/app/AppPreference.hpp> #include <basic/util/fastdfs/FastFds.hpp> - -class PerimeterElement : public basic::PipeElement { +#include "DBStruct.h" +#include <basic/db/Elasticsearch/EsDBTool.h> +#include "IntAreaCalcUtil.h" +#include "SaveVideoRpc.h" +class PerimeterElement : public basic::PipeElement +{ public: - PerimeterElement(int alarm_people_num = 1); - + PerimeterElement():m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp"){} + PerimeterElement(const SdkRule& rule); public: ~PerimeterElement(); //鏄惁鏈夌煩褰� bool hasRects(); - //璁剧疆ROI鍖哄煙 - void setMask(std::string mask); + void setImage(const cv::Mat &value); @@ -49,36 +51,48 @@ void setFdfs(FastFdsWithLock *p_fdfsClient) { fdfsClient = p_fdfsClient; } - + void setImage(const cv::Mat &value) const; private: + //PerimeterElement(const SdkRule& rule); + virtual void threadInitial()override; - virtual void threadInitial() override; + virtual void threadFunc()override; - virtual void threadFunc() override; + QJsonArray getJsonArrayFromQString(const QString& strJson); - QJsonArray getJsonArrayFromQString(const QString &strJson); + std::string uploadImgToFdfs(cv::Mat& image); - std::string uploadImgToFdfs(cv::Mat &image); - - bool saveInfoToEs(const std::string &imgUrl, const ::YoloDetect::ObjInfo &obj); - - + bool saveInfoToEs(const std::string& imgUrl,const std::string& time,const std::string& imgKey); + void setMask(std::string mask); + bool isInWeek(const std::vector<LActRuleWeekRecord>& ruleWeek); + cv::Rect CutMask(); private: cv::Mat image; - cv::Mat mask; + //cv::Mat mask; //vector<VPT_ObjInfo> vptResults; ::YoloDetect::ObjInfos m_objs; - float sensitivity; QPolygon mPolygon; TrackingTrigger *trackingTrigger; ::YoloDetect::stringData cocoData; int mRealNum; - int m_nAlarmPeopleNum; std::vector<ScoredRect> mObjs; TriggerElement m_triggerElement; - FastFdsWithLock *fdfsClient; + FastFdsWithLock* fdfsClient; + SdkRule m_sdkRule; + EsDBTool* pManagerEsDB; + + + int npts; + std::vector<cv::Rect> m_recVec; + + bool m_bIsMask; + std::vector<Point> poly1; + bool m_bSetWH; + cv::Point2i* pointArray; + SaveVideoRpcClient_t m_rpcClient; + }; #endif // PAELEMENT_H -- Gitblit v1.8.0