派生自 development/c++

miyanhui
2019-02-13 e4c9b5bfb1d9000c08d84f2f044cd0c3605a2945
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>
@@ -11,19 +9,21 @@
#include <QJsonArray>
#include <RapidStructureApp/TriggerElement.h>
#include <basic/util/fastdfs/FastFds.hpp>
class PerimeterElement : public basic::PipeElement {
#include "DBStruct.h"
#include <basic/db/Elasticsearch/EsDBTool.h>
#include "IntAreaCalcUtil.h"
class PerimeterElement : public basic::PipeElement
{
public:
    PerimeterElement(int alarm_people_num = 1);
    PerimeterElement(){}
    PerimeterElement(const SdkRule& rule);
public:
    ~PerimeterElement();
    //是否有矩形
    bool hasRects();
    //设置ROI区域
    void setMask(std::string mask);
    void setImage(const cv::Mat &value);
@@ -49,36 +49,47 @@
    void setFdfs(FastFdsWithLock *p_fdfsClient) {
        fdfsClient = p_fdfsClient;
    }
    void setImage(const cv::Mat &value) const;
private:
    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;
};
#endif // PAELEMENT_H