From abd9036f024a77d22b47a108bc88b27b9732e3c5 Mon Sep 17 00:00:00 2001 From: zhangjixing <775834166@qq.com> Date: 星期二, 15 一月 2019 17:27:27 +0800 Subject: [PATCH] --- QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 39 +++++++++++++++++++++++++++++++-------- 1 files changed, 31 insertions(+), 8 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp index 35ff6e8..5e480ee 100644 --- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp +++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp @@ -20,7 +20,8 @@ mRealNum(0), m_triggerElement(rule.nTriggerDelay*8,0), pManagerEsDB(nullptr), - npts(0) { + m_bIsMask(true) +{ pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); } @@ -56,7 +57,7 @@ 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) { m_recVec.push_back(obj.rect); if (picDate.empty()) { picDate = obj.properties["time"]; @@ -67,6 +68,10 @@ num++; + } + else + { + // DBG("id="<< obj.properties["id"]<<" no containts x="<<rect.center().x()<<" y="<<rect.center().y()); } @@ -120,17 +125,30 @@ // DBG("imgUrl="<<imgUrl); if (m_triggerElement.getTriggerState() && num!=mRealNum) { - auto t_image = image(CutMask()).clone(); + + cv::Mat t_image = image(CutMask()).clone(); + if(t_image.empty()) + { + if(image.empty()) + { + DBG("image empty"); + } + DBG("t_image empty"); + return; + } std::string imgUrl = uploadImgToFdfs(t_image); saveInfoToEs(imgUrl, picDate); DBG("num=" << num << " lastnum=" << mRealNum); - + mRealNum = num; } - //if(state) - // DBG("num=" << num <<"m_triggerElement.getTriggerState()="<<m_triggerElement.getTriggerState()); +// if(state) +//DBG("mRealNum=" << mRealNum <<"m_triggerElement.getTriggerState()="<<m_triggerElement.getTriggerState()); - mRealNum = num; + if(!state) + { + mRealNum = num; + } // DBG("m_sdkRule.nSdkType="<<m_sdkRule.nSdkType<<" num="<<num); @@ -169,7 +187,8 @@ void PerimeterElement::setMask(std::string mask) { QJsonArray arrayAreas = getJsonArrayFromQString(QString::fromStdString(mask)); - if (arrayAreas.isEmpty()) { + if (arrayAreas.isEmpty() && m_sdkRule.nSdkType != PerimeterSdk) { + m_bIsMask=false; return;//do not detect } int size = arrayAreas.size(); @@ -347,3 +366,7 @@ // DBG("RECT x="<<rect.x<<"y"<<rect.y<<"w"<<rect.width<<"h"<<rect.height); return rect; } +bool PerimeterElement::isAnd() +{ + +} -- Gitblit v1.8.0