派生自 development/c++

miyanhui
2019-02-13 e4c9b5bfb1d9000c08d84f2f044cd0c3605a2945
QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
@@ -39,7 +39,8 @@
    sharedMemory(nullptr),
    trackingTrigger(nullptr),
    m_sdkRule(rule),
    m_bIsMask(true)
    m_bIsMask(true),
    m_bSetWH(false)
{
    sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str()));
    if (!sharedMemory->create(4608 * 2592 * 4)) {
@@ -68,7 +69,7 @@
    t_score = t_score / 100;
    trackingTrigger = new TrackingTrigger(t_score);
    setMask(m_sdkRule.strAreas.toStdString());
//    setMask(m_sdkRule.strAreas.toStdString());
}
FaceRpcElement::~FaceRpcElement() {
@@ -123,7 +124,9 @@
                trackingTrigger->getLastRect().properties["smile"] = to_string(property.smile_level);
                trackingTrigger->getLastRect().properties["race"] = to_string(property.race);
                trackingTrigger->getLastRect().properties["time"] = getProperty("time");
                trackingTrigger->getLastRect().properties["detectscore"] = scoredRect.score;
                trackingTrigger->getLastRect().properties["imgKey"] = getProperty("imgKey");
                INFO("FaceRpcElement SaveToES: "<<getProperty("imgKey"));
                triggerFaces.push_back(face);
                triggerMats.push_back(image(
                    CvUtil::zoomRectEqual(scoredRect.rect, 1.5, 1.5) & cv::Rect(0, 0, image.cols, image.rows)).clone());
@@ -177,6 +180,11 @@
        image = cv::Mat(value.rows, value.cols, CV_8UC3, sharedMemory->data());
    }
    value.copyTo(image);
    if(!m_bSetWH)
    {
        setMask(m_sdkRule.strAreas.toStdString());
        m_bSetWH=true;
    }
}
bool FaceRpcElement::getTriggerState() const {
@@ -190,13 +198,17 @@
        m_bIsMask=false;
        return;//do not detect
    }
    float sizeW=(float)appPref.getIntData(m_sdkRule.strCamId.toStdString()+"width")/480;
    float sizeH=(float)appPref.getIntData(m_sdkRule.strCamId.toStdString()+"height")/270;
    for(int i = 0;i < arrayAreas.size();++i)
    {
        QJsonValue jsonValue = arrayAreas[i];
        QJsonObject obj = jsonValue.toObject();
        int x = obj.value("x").toDouble()*4;
        int y = obj.value("y").toDouble()*4;
        int x = obj.value("x").toDouble() *sizeW ;
        int y = obj.value("y").toDouble() *sizeH;
        mPolygon<<(QPoint(x,y));
        DBG("width="<<sizeW);
        DBG("height="<<sizeH);
    }
}