#ifndef FACERPCELEMENT_H
|
#define FACERPCELEMENT_H
|
|
#include <FaceServer.h>
|
#include <basic/pipe/PipeElement.h>
|
#include <basic/rpc/IceRpc.hpp>
|
#include <opencv2/opencv.hpp>
|
#include <RapidStructureApp/TriggerElement.h>
|
#include "TrackingTrigger.h"
|
#include "DBStruct.h"
|
#include <QtGui/QPolygon>
|
#include <QJsonArray>
|
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<cv::Mat> getTriggerMats();
|
|
std::vector<ScoredRect> getTriggerScoreRects() const;
|
|
std::vector<ScoredRect> 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<LActRuleWeekRecord>& ruleWeek);
|
private:
|
IceRpcClient<FaceDetect::FaceDetectServerPrx> rpcClient;
|
cv::Mat image;
|
QSharedMemory *sharedMemory;
|
::FaceDetect::Faces faces;
|
TrackingTrigger *trackingTrigger;
|
::FaceDetect::Faces triggerFaces;
|
std::vector<cv::Mat> triggerMats;
|
std::vector<ScoredRect> triggerScoredRects;
|
QPolygon mPolygon;
|
TriggerElement m_triggerElement;
|
SdkRule m_sdkRule;
|
bool m_bIsMask;
|
bool m_bSetWH;
|
};
|
|
#endif // FACERPCELEMENT_H
|