From 8bfd4cc90f25f1800eb5e61d50d4fa74854e0f2a Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期一, 28 一月 2019 16:41:30 +0800 Subject: [PATCH] 布控上传修改 --- QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 94 ++++++++++++++++++++-------------------------- 1 files changed, 41 insertions(+), 53 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp index b605b07..ca48b0f 100644 --- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp +++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp @@ -14,15 +14,15 @@ #include <jsoncpp/json/json.h> #define ALARM_PERCENT (10) //10% + PerimeterElement::PerimeterElement(const SdkRule &rule) : m_sdkRule(rule), PipeElement(true), trackingTrigger(nullptr), mRealNum(0), - m_triggerElement(rule.nTriggerDelay*8,0), + m_triggerElement(rule.nTriggerDelay * 8, 0), pManagerEsDB(nullptr), - m_bIsMask(true) -{ + m_bIsMask(true) { pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); } @@ -64,37 +64,32 @@ // DBG("picDate="<<picDate); } - if (m_sdkRule.nSdkType == PerimeterSdk) - { + if (m_sdkRule.nSdkType == PerimeterSdk) { - if(m_bIsMask) - { - std::vector<Point> poly2; - std::vector<Point> interPoly; - poly2.push_back(Point(rect.x(),rect.y())); - poly2.push_back(Point(rect.x()+rect.width(),rect.y())); - poly2.push_back(Point(rect.x()+rect.width(),rect.y()+rect.height())); - poly2.push_back(Point(rect.x(),rect.y()+rect.height())); - IntAreaCalcUtil::PolygonClip(poly1,poly2,interPoly); - float inter = IntAreaCalcUtil::intAreaCalc(interPoly); - float total1 =IntAreaCalcUtil::intAreaCalc(poly1); - float total2 = IntAreaCalcUtil::intAreaCalc(poly2); - int per1 = (int)(inter / total1 * 100); - int per2 = (int)(inter / total2 * 100); - int per=std::max(per1,per2); + if (m_bIsMask) { + std::vector<Point> poly2; + std::vector<Point> interPoly; + poly2.push_back(Point(rect.x(), rect.y())); + poly2.push_back(Point(rect.x() + rect.width(), rect.y())); + poly2.push_back(Point(rect.x() + rect.width(), rect.y() + rect.height())); + poly2.push_back(Point(rect.x(), rect.y() + rect.height())); + IntAreaCalcUtil::PolygonClip(poly1, poly2, interPoly); + float inter = IntAreaCalcUtil::intAreaCalc(interPoly); + float total1 = IntAreaCalcUtil::intAreaCalc(poly1); + float total2 = IntAreaCalcUtil::intAreaCalc(poly2); + int per1 = (int) (inter / total1 * 100); + int per2 = (int) (inter / total2 * 100); + int per = std::max(per1, per2); - if(ALARM_PERCENT <= per) - { - //DBG("per 1="<<per1<<" per2="<<per2<<" per="<<per); - m_recVec.push_back(obj.rect); - num++; - } + if (ALARM_PERCENT <= per) { + //DBG("per 1="<<per1<<" per2="<<per2<<" per="<<per); + m_recVec.push_back(obj.rect); + num++; + } } - } - else if (mPolygon.containsPoint(center, Qt::OddEvenFill) || !m_bIsMask) - { + } else if (mPolygon.containsPoint(center, Qt::OddEvenFill) || !m_bIsMask) { m_recVec.push_back(obj.rect); @@ -102,23 +97,22 @@ } - } switch (m_sdkRule.nSdkType) { case PerimeterSdk: //state = num > 0 ; - state =( num !=mRealNum); - // DBG("num="<<num<< "time="<< picDate); + state = (num != mRealNum); + // DBG("num="<<num<< "time="<< picDate); break; case CrowdSdk: - state = num > m_sdkRule.nAlarmNumLowerLimit && num !=mRealNum; + state = num > m_sdkRule.nAlarmNumLowerLimit && num != mRealNum; break; case PerHubSdk: - state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num !=mRealNum; + state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num != mRealNum; // if(m_sdkRule.nAlarmNumLowerLimit>=0) @@ -154,12 +148,10 @@ m_triggerElement.setState(state); m_triggerElement.triggerOnce(); - if (m_triggerElement.getTriggerState() ) - { - if(num > 0) { + if (m_triggerElement.getTriggerState()) { + if (num > 0) { cv::Mat t_image = image(CutMask()).clone(); - if(t_image.empty()) - { + if (t_image.empty()) { DBG("t_image empty"); return; } @@ -230,7 +222,7 @@ void PerimeterElement::setMask(std::string mask) { QJsonArray arrayAreas = getJsonArrayFromQString(QString::fromStdString(mask)); if (arrayAreas.isEmpty() && m_sdkRule.nSdkType != PerimeterSdk) { - m_bIsMask=false; + m_bIsMask = false; return;//do not detect } int size = arrayAreas.size(); @@ -241,15 +233,11 @@ QJsonObject obj = jsonValue.toObject(); int x = obj.value("x").toDouble() * 4; int y = obj.value("y").toDouble() * 4; - if(m_sdkRule.nSdkType == PerimeterSdk) - { - poly1.push_back(Point(x,y)); + if (m_sdkRule.nSdkType == PerimeterSdk) { + poly1.push_back(Point(x, y)); + } else { + mPolygon << (QPoint(x, y)); } - else - { - mPolygon << (QPoint(x, y)); - } - } @@ -284,7 +272,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); @@ -318,13 +306,13 @@ t_json["ChannlId"] = getProperty("ch_id"); // 閫氶亾id t_json["likeDate"] = AppUtil::getTimeSecString(); // 姣斿鏃堕棿 t_json["picAddress"] = m_sdkRule.strAddr.toStdString();// 鎶撴媿鍦板潃 - DBG("picAddress="<<m_sdkRule.strAddr.toStdString()); + DBG("picAddress=" << m_sdkRule.strAddr.toStdString()); t_json["picMaxUrl"] = "wait todo"; // 澶у浘璺緞 // t_json["Age"] ="wait todo"; t_json["picDate"] = time; // 鎶撴媿鏃堕棿锛屽繀椤绘湁 - DBG("picDate="<<time); + DBG("picDate=" << time); t_json["picLocalUrl"] = "wait todo"; // 鏈湴璺緞 t_json["isDelete"] = "1";//榛樿1 ,0鏃犳晥 1鏈夋晥 @@ -416,7 +404,7 @@ // DBG("RECT x="<<rect.x<<"y"<<rect.y<<"w"<<rect.width<<"h"<<rect.height); return rect; } -bool PerimeterElement::isAnd() -{ + +bool PerimeterElement::isAnd() { } -- Gitblit v1.8.0