From 93fcc2eb2db5038ca1944acde9f4c8b751aca930 Mon Sep 17 00:00:00 2001 From: xuxiuxi <554325746@qq.com> Date: 星期一, 04 三月 2019 16:27:14 +0800 Subject: [PATCH] add models, daos and controllers for tables. --- QiaoJiaSystem/StructureApp/FaceRpcElement.cpp | 36 ++++++++++++++++++++++++++++++------ 1 files changed, 30 insertions(+), 6 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp index 1e5553a..9ab6f01 100644 --- a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp +++ b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp @@ -38,7 +38,9 @@ // rpcClient("faceServer","",10002,"tcp"), sharedMemory(nullptr), trackingTrigger(nullptr), - m_sdkRule(rule) + m_sdkRule(rule), + m_bIsMask(true), + m_bSetWH(false) { sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str())); if (!sharedMemory->create(4608 * 2592 * 4)) { @@ -67,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() { @@ -80,6 +82,7 @@ } void FaceRpcElement::threadFunc() { + INFO("MYH Run Here"); // ClockTimer ct("FaceRpcElement::threadFunc"); // { // @@ -87,7 +90,10 @@ // cv::imwrite(string1, image); // } if(!isInWeek(m_sdkRule.weekRuleVec)) + { + ERR("In Week"); return; + } triggerMats.clear(); triggerFaces.clear(); triggerScoredRects.clear(); @@ -106,8 +112,9 @@ int h = face.rcFace.bottom - face.rcFace.top; QRect re(x,y,w,h); QPoint center = re.center(); - if(!mPolygon.containsPoint(center,Qt::OddEvenFill)) + if(m_bIsMask && !mPolygon.containsPoint(center,Qt::OddEvenFill)) { + ERR("m_bIsMask :"<<m_bIsMask) return; } scoredRect.rect = {x, y, w, h}; @@ -122,14 +129,21 @@ 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()); triggerScoredRects.push_back(trackingTrigger->getLastRect()); } else { + INFO("No Face Find: "<<getProperty("imgKey")); // DBG("trackingTrigger->triggerOnce(scoredRect) is false "); } + } + if(faces.empty()) + { + INFO("No Face Find: "<<getProperty("imgKey")); } trackingTrigger->triggerLine(); // DBG("faces.size " << faces.size()); @@ -176,6 +190,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 { @@ -186,15 +205,20 @@ QJsonArray arrayAreas = getJsonArrayFromQString(QString::fromStdString(mask)); if(arrayAreas.isEmpty()) { + 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); } } -- Gitblit v1.8.0