Newer
Older
CasicBioRecNew / device / face / CasicFaceRecState.cpp
tanyue on 1 Feb 2023 1 KB 20230201 更新日志組件庫
#include "CasicFaceRecState.h"

CasicFaceRecState::CasicFaceRecState()
{
    this->recoginzeId = "0";
    this->timeStamp = -1;

    this->state = FaceRecStateName::REC_NOT_START;
}

void CasicFaceRecState::initRecognize()
{
    QDateTime now = QDateTime::currentDateTime();
    this->recoginzeId = now.toString("yyyyMMddHHmmsszzz").toStdString();
    this->timeStamp = now.toMSecsSinceEpoch();
    this->tryCount = 0;
    this->noFaceCount = 0;

//    LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString();
    LOG_DEBUG(QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString());

    // 开始识别
    this->state = FaceRecStateName::REC_DETECT;
}

QString CasicFaceRecState::toString()
{
    return QString(QJsonDocument(toJSON()).toJson(QJsonDocument::Compact));
}

QJsonObject CasicFaceRecState::toJSON()
{
    QJsonObject obj;

    obj.insert("recoginzeId", QString::fromLocal8Bit(recoginzeId.data()));
    obj.insert("timestamp", timeStamp);
    obj.insert("timestampSucc", timeStampSucc);
    obj.insert("state", state);
    obj.insert("tryCount", tryCount);
    obj.insert("noFaceCount", noFaceCount);
    obj.insert("recogTimeLast", recogTimeLast);

    QJsonObject faceInfoObj;
    faceInfoObj.insert("hasFace", faceInfo->hasFace);
    faceInfoObj.insert("reality", faceInfo->antiReality);
    faceInfoObj.insert("clarity", faceInfo->antiClarity);
    faceInfoObj.insert("sim", faceInfo->sim);
    QJsonArray rectArray;
    rectArray.append(faceInfo->face.pos.x);
    rectArray.append(faceInfo->face.pos.y);
    rectArray.append(faceInfo->face.pos.width);
    rectArray.append(faceInfo->face.pos.height);
    faceInfoObj.insert("faceRect", rectArray);

    obj.insert("faceInfo", faceInfoObj);

    return obj;
}