| | |
| | | mRealNum(0), |
| | | m_triggerElement(rule.nTriggerDelay*8,0), |
| | | pManagerEsDB(nullptr), |
| | | npts(0) { |
| | | m_bIsMask(true) |
| | | { |
| | | |
| | | pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); |
| | | } |
| | |
| | | |
| | | 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"]; |
| | |
| | | num++; |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | | // DBG("id="<< obj.properties["id"]<<" no containts x="<<rect.center().x()<<" y="<<rect.center().y()); |
| | | } |
| | | |
| | | |
| | |
| | | // 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()); |
| | | //DBG("mRealNum=" << mRealNum <<"m_triggerElement.getTriggerState()="<<m_triggerElement.getTriggerState()); |
| | | |
| | | |
| | | if(!state) |
| | | { |
| | | mRealNum = num; |
| | | } |
| | | |
| | | |
| | | // DBG("m_sdkRule.nSdkType="<<m_sdkRule.nSdkType<<" num="<<num); |
| | |
| | | |
| | | 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(); |
| | |
| | | // DBG("RECT x="<<rect.x<<"y"<<rect.y<<"w"<<rect.width<<"h"<<rect.height); |
| | | return rect; |
| | | } |
| | | bool PerimeterElement::isAnd() |
| | | { |
| | | |
| | | } |