#ifndef FACEEXTRACTELEMENT_H #define FACEEXTRACTELEMENT_H #include #include #include #include #include "TrackingTrigger.h" #include #include #include #include #include #include #define VECTOR_MAX 50 class QSharedMemory; struct FaceToExtract { string uuid; string time; cv::Mat image; FaceDetect::Faces facesPos; std::vector scoredRects; std::vector faceImages; }; class FaceExtractElement : public TimerElement { public: FaceExtractElement(std::string shareMemoryName); ~FaceExtractElement(); void setFdfs(FastFdsWithLock *p_fdfsClient) { fdfsClient = p_fdfsClient; } void submitFaceExtract(FaceToExtract faceToExtract); // AlarmServerInterface::TableNames getTableNames() const; std::vector<::FaceDetect::Data> getFeatures() const; private: virtual void timerFunc() override; IceRpcClient faceExtractRpcClient; IceRpcClient faceSearchRpcClient; FastFdsWithLock *fdfsClient; std::vector faceExtractQueue; std::mutex imageQueueMutex; QSharedMemory *sharedMemory; // AlarmServerInterface::TableNames tableNames; std::vector<::FaceDetect::Data> features; Base64 base64; }; #endif // FACEEXTRACTELEMENT_H