From 168cad8214b2229130485fdbf3f64d85ac458402 Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 11 四月 2019 17:35:36 +0800
Subject: [PATCH] 添加宏定义屏蔽VptRpcElement并替换为VptRpcElement
---
QiaoJiaSystem/StructureApp/PerStaticElement.cpp | 160 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 99 insertions(+), 61 deletions(-)
diff --git a/QiaoJiaSystem/StructureApp/PerStaticElement.cpp b/QiaoJiaSystem/StructureApp/PerStaticElement.cpp
index 4dbcf92..4d9f1d3 100644
--- a/QiaoJiaSystem/StructureApp/PerStaticElement.cpp
+++ b/QiaoJiaSystem/StructureApp/PerStaticElement.cpp
@@ -16,7 +16,8 @@
m_sdkRule(rule),
m_triggerElement(0,0),
m_lTime(AppUtil::getCurrentUs()),
-pManagerEsDB(nullptr)
+pManagerEsDB(nullptr),
+m_bIsMask(true)
{
pManagerEsDB=new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
@@ -35,7 +36,7 @@
void PerStaticElement::threadInitial()
{
- setMask(m_sdkRule.strAreas.toStdString());
+// setMask(m_sdkRule.strAreas.toStdString());
}
@@ -45,22 +46,42 @@
if(!isInWeek(m_sdkRule.weekRuleVec))
return;
int num=0;
-
-
- for(auto obj:mObjs)
+ bool state=false;
+ time_t now= AppUtil::getCurrentUs();
+ for(auto& obj:mObjs)
{
if(obj.score < m_sdkRule.fSensitivity)continue;
QRect rect(obj.rect.x,obj.rect.y,obj.rect.width,obj.rect.height);
QPoint center = rect.center();
- if(mPolygon.containsPoint(center,Qt::OddEvenFill))
+ if(mPolygon.containsPoint(center,Qt::OddEvenFill) || !m_bIsMask)
{
- for(auto score:m_lastScoreRect)
+ for(auto ele:m_lastScoreRect)
{
- if(obj.id == score.id)
+ if(obj.id == ele.id && (obj.rect&ele.rect).area()>ele.rect.area()*m_sdkRule.fSensitivity)
{
- obj.isMove = score.isMove;
+ if(obj.times ==0)
+ {
+ obj.times=AppUtil::getCurrentUs();
+ }
+ else if( (now-obj.times)>m_sdkRule.nTriggerDelay*60*1000*1000)
+ {
+ DBG("now-obj.times="<<now-obj.times);
+ if(pointArray!=nullptr)
+ {
+ const cv::Point2i* ppt[1] = { pointArray };
+
+ int npt[]={npts};
+
+ cv::polylines(image, ppt,npt, 1, true,cv::Scalar(255,255,0));
+ }
+ cv::rectangle(image, obj.rect, cv::Scalar(0, 0, 255), 2);
+ auto t_image = image(CvUtil::zoomRectEqual(obj.rect, 1.2, 1.2) & cv::Rect(0, 0, image.cols, image.rows)).clone();
+ std::string imgUrl=uploadImgToFdfs(t_image);
+ saveInfoToEs(imgUrl,obj);
+ obj.times=0;
+ }
//DBG("moving? "<<_TrackingInfo.m_bMoveState)
break;
}
@@ -70,43 +91,47 @@
}
}
- if((AppUtil::getCurrentUs()-m_lTime)>(m_sdkRule.nTriggerDelay*60*1000*1000))
- {
- for(auto& obj: mObjs){
-
- //compare with last temp memery and clear temp memery
- for(auto ele:m_lastScoreRect)
- {
- if(ele.id==obj.id)
- {
- if((obj.rect&ele.rect).area()>ele.rect.area()*0.8)
- {
- //not moving
- obj.isMove = true;
-
- auto t_image = image(CvUtil::zoomRectEqual(obj.rect, 1.2, 1.2) & cv::Rect(0, 0, image.cols, image.rows)).clone();
- std::string imgUrl=uploadImgToFdfs(t_image);
- saveInfoToEs(imgUrl,obj);
- m_triggerElement.setState(true);
- //DBG("not moving")
- }
- else
- {
- obj.isMove = false;
- m_triggerElement.setState(false);
- //DBG("moving")
- }
- break;
- }
- }
- //do temp memery
-
- }
- m_lastScoreRect = mObjs;
- m_lTime =AppUtil::getCurrentUs();
- }
m_lastScoreRect=mObjs;
- m_triggerElement.triggerOnce();
+// if((AppUtil::getCurrentUs()-m_lTime)>(m_sdkRule.nTriggerDelay*60*1000*1000))
+// {
+// for(auto& obj: mObjs){
+
+// //compare with last temp memery and clear temp memery
+// for(auto ele:m_lastScoreRect)
+// {
+// if(ele.id==obj.id)
+// {
+// if((obj.rect&ele.rect).area()>ele.rect.area()*m_sdkRule.fSensitivity)
+// {
+// //not moving
+// obj.isMove = true;
+
+// auto t_image = image(CvUtil::zoomRectEqual(obj.rect, 1.2, 1.2) & cv::Rect(0, 0, image.cols, image.rows)).clone();
+// std::string imgUrl=uploadImgToFdfs(t_image);
+// saveInfoToEs(imgUrl,obj);
+// m_triggerElement.setState(true);
+// //DBG("not moving")
+// }
+// else
+// {
+// obj.isMove = false;
+// m_triggerElement.setState(false);
+// //DBG("moving")
+// }
+// break;
+// }
+// }
+// //do temp memery
+
+// }
+// // m_lastScoreRect = mObjs;
+// m_lTime =AppUtil::getCurrentUs();
+// }
+
+// m_lastScoreRect=mObjs;
+
+ m_triggerElement.setState(true);
+ m_triggerElement.triggerOnce();
fireConnectors();
@@ -144,16 +169,23 @@
QJsonArray arrayAreas = getJsonArrayFromQString(QString::fromStdString(mask));
if(arrayAreas.isEmpty())
{
+ m_bIsMask=false;
return;//do not detect
}
+ int size=arrayAreas.size();
+ npts=size;
+ pointArray=new cv::Point2i[size];
+ 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);
}
}
QJsonArray PerStaticElement::getJsonArrayFromQString(const QString& strJson)
@@ -180,7 +212,7 @@
CvUtil::cvMat2Buffer(image, buffer);
std::string strImgUrlTmp = "";
fdfsClient->fastFds->uploadFile(buffer, strImgUrlTmp, "jpg");
- strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
+ //strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
strImgUrl.clear();
strImgUrl = strImgUrlTmp;
// strImgUrl.append("/").append(strImgUrlTmp);
@@ -208,36 +240,37 @@
t_json["sdkType"] =to_string(m_sdkRule.nSdkType);
// t_json["Gender"] = obj.score;
- t_json["picName"] = "wait todo";// 鎶撴媿鐓х墖鍚嶇О
- t_json["content"] = "wait todo";// 鍐呭鎻忚堪
+ t_json["picName"] = "";// 鎶撴媿鐓х墖鍚嶇О
+ t_json["content"] = "";// 鍐呭鎻忚堪
t_json["personPicUrl"] = "";// 浜哄憳 鍦板簱鍥剧墖
t_json["ChannlId"] = getProperty("ch_id"); // 閫氶亾id
t_json["likeDate"] =AppUtil::getTimeSecString(); // 姣斿鏃堕棿
- t_json["picAddress"] =getProperty("str_addr");// 鎶撴媿鍦板潃
- t_json["picMaxUrl"] = "wait todo"; // 澶у浘璺緞
+ t_json["picAddress"] =m_sdkRule.strAddr.toStdString();// 鎶撴媿鍦板潃
+ t_json["picMaxUrl"] = ""; // 澶у浘璺緞
- // t_json["Age"] ="wait todo";
+ // t_json["Age"] ="";
t_json["picDate"] = obj.properties["time"]; // 鎶撴媿鏃堕棿锛屽繀椤绘湁
- t_json["picLocalUrl"] = "wait todo"; // 鏈湴璺緞
+ t_json["picLocalUrl"] = ""; // 鏈湴璺緞
t_json["isDelete"] = "1";//榛樿1 ,0鏃犳晥 1鏈夋晥
- t_json["likePer"] = obj.score; // 鐩镐技鍊�
+ t_json["likePer"] = 1.0; // 鐩镐技鍊�
- t_json["BaseName"] = "wait todo";// 鍦板簱鍚嶇О
+ t_json["BaseName"] = "";// 鍦板簱鍚嶇О
t_json["videoNum"] = m_sdkRule.strCamId.toStdString();//Video璁惧缂栧彿
t_json["picSmUrl"] = imgUrl; // 鎶撴媿鍥剧墖
t_json["indeviceid"] = appPref.getStringData("fxDevID");;// 璁惧id
- t_json["idcard"] = "wait todo";
- t_json["personId"] = "wait todo";
+ t_json["idcard"] = "";
+ t_json["personId"] = "";
t_json["indevicename"] = appPref.getStringData("fxDevNAME");// 璁惧鍚嶇О
t_json["FaceFeature"] = "base64";
t_json["personIsHub"] = m_triggerElement.getTriggerState()?"1":"4"; //1: 鎶ヨ 2: 鍙枒 3: 瀹夊叏 4: 鏈煡
t_json["videoIp"] = m_sdkRule.strAddr.toStdString(); // 璁惧ip
t_json["ack_alarm"]=m_triggerElement.getTriggerState()?"0":""; // que ren shi fou bao jing
- t_json["cluster_id"]="wait todo"; // ji qun id
-
+ t_json["cluster_id"]=appPref.getStringData("clusterID");; // ji qun id
+ t_json["imgKey"] = obj.properties["imgKey"];
+ INFO("SaveImgKeyToES: "<<obj.properties["imgKey"]);
bool retface = false;
if(pManagerEsDB)
retface = pManagerEsDB->insertData("personaction", "perVideoAction", t_json.toStyledString(), str_uuid);
@@ -271,4 +304,9 @@
{
value.copyTo(image);
+ if(!m_bSetWH)
+ {
+ setMask(m_sdkRule.strAreas.toStdString());
+ m_bSetWH=true;
+ }
}
--
Gitblit v1.8.0