#ifndef FACERPCELEMENT_H #define FACERPCELEMENT_H #include #include #include #include #include #include "TrackingTrigger.h" #include "DBStruct.h" #include #include class QSharedMemory; class FaceRpcElement : public basic::PipeElement { public: FaceRpcElement(string,const SdkRule& rule); ~FaceRpcElement(); // PipeElement interface void setImage(const cv::Mat &value); ::FaceDetect::Faces getFaces() const; std::vector getTriggerMats(); std::vector getTriggerScoreRects() const; std::vector getLastScoreRects() const; ::FaceDetect::Faces getTriggerFaces() const; bool getTriggerState() const; cv::Mat getImage() const; private: virtual void threadFunc() override; void setMask(std::string mask); QJsonArray getJsonArrayFromQString(const QString& strJson); bool isInWeek(const std::vector& ruleWeek); private: IceRpcClient rpcClient; cv::Mat image; QSharedMemory *sharedMemory; ::FaceDetect::Faces faces; TrackingTrigger *trackingTrigger; ::FaceDetect::Faces triggerFaces; std::vector triggerMats; std::vector triggerScoredRects; QPolygon mPolygon; TriggerElement m_triggerElement; SdkRule m_sdkRule; bool m_bIsMask; bool m_bSetWH; }; #endif // FACERPCELEMENT_H