From 87baff1f74bc17dc7a664b3176288a235bd024f6 Mon Sep 17 00:00:00 2001
From: miyanhui <dennismi1024@gmail.com>
Date: 星期二, 19 二月 2019 17:02:59 +0800
Subject: [PATCH] 录像失败不直接返回
---
QiaoJiaSystem/StructureApp/FaceRpcElement.cpp | 35 +++++++++++++++++++++++++++++------
1 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
index d717f97..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};
@@ -123,14 +130,20 @@
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());
@@ -177,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 {
@@ -187,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