Newer
Older
CasicBioRecNew / device / face / FaceDetectRecogProcess.h
#ifndef FACEDETECTRECOGPROCESS_H
#define FACEDETECTRECOGPROCESS_H

#include <QObject>
#include <QThread>
#include "opencv2/opencv.hpp"

#include "dao/RecognitionRecordDao.h"

#include "utils/easyloggingpp/easylogging++.h"
#include "utils/ImageUtil.h"
#include "utils/SettingConfig.h"
#include "utils/ByteUtil.h"

#include "CasicFaceRecState.h"
#include "casic/ProMemory.h"
#include "casic/face/CasicFaceInterface.h"

class FaceDetectRecogProcess : public QThread
{
    Q_OBJECT
public:
    explicit FaceDetectRecogProcess(QObject *parent = nullptr);
    ~FaceDetectRecogProcess();

    void setWorking(bool working);
    void exitThread();
    void startThread();

    void addOneTryCount();
    void addOneNoFaceCount();

protected:
    //QThread的虚函数
    //线程处理函数
    //不能直接调用, 通过start()间接调用
    void run();
    void compareFaceInCollection();
    void afterRecogAction(QString personId);

    volatile bool working;
    volatile bool exit;

signals:
    void matchSuccess(QString personId); // 匹配成功
    void matchFailure(); // 匹配失败

};

#endif // FACEDETECTRECOGPROCESS_H