| | |
| | | m_triggerElement(rule.nTriggerDelay*8,0), |
| | | pManagerEsDB(nullptr), |
| | | m_bIsMask(true), |
| | | m_bSetWH(false), |
| | | pointArray(nullptr) |
| | | { |
| | | |
| | |
| | | |
| | | |
| | | void PerimeterElement::threadInitial() { |
| | | setMask(m_sdkRule.strAreas.toStdString()); |
| | | // setMask(m_sdkRule.strAreas.toStdString()); |
| | | } |
| | | |
| | | |
| | |
| | | return; |
| | | int num = 0; |
| | | std::string picDate; |
| | | std::string imgKey; |
| | | bool state = false; |
| | | |
| | | m_recVec.clear(); |
| | | // DBG("Objs="<<mObjs.size()<<" fSensitivity="<<m_sdkRule.fSensitivity<<" nThreshold"<<m_sdkRule.nThreshold); |
| | | // DBG("Objs="<<mObjs.size()<<" fSensitivity="<<m_sdkRule.fSensitivity<<" nThreshold"<<m_sdkRule.nThreshold); |
| | | |
| | | for (auto obj:mObjs) { |
| | | |
| | |
| | | picDate = obj.properties["time"]; |
| | | // DBG("picDate="<<picDate); |
| | | |
| | | } |
| | | if(imgKey.empty()) |
| | | { |
| | | imgKey =obj.properties["imgKey"]; |
| | | } |
| | | if (m_sdkRule.nSdkType == PerimeterSdk) |
| | | { |
| | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | switch (m_sdkRule.nSdkType) { |
| | | case PerimeterSdk: |
| | |
| | | if (m_triggerElement.getTriggerState() ) |
| | | { |
| | | if(num > 0) { |
| | | |
| | | |
| | | |
| | | if(pointArray!=nullptr) |
| | | { |
| | | const cv::Point2i* ppt[1] = { pointArray }; |
| | |
| | | // return; |
| | | // } |
| | | std::string imgUrl = uploadImgToFdfs(image); |
| | | saveInfoToEs(imgUrl, picDate); |
| | | saveInfoToEs(imgUrl, picDate,imgKey); |
| | | } |
| | | DBG("num=" << num << " lastnum=" << mRealNum); |
| | | mRealNum = num; |
| | |
| | | } |
| | | int size = arrayAreas.size(); |
| | | npts = size; |
| | | // pointArray=new cv::Point2i*[1]; |
| | | // pointArray[0]=new cv::Point2i[size]; |
| | | |
| | | pointArray=new cv::Point2i[npts]; |
| | | |
| | | |
| | | float sizeW=(float)appPref.getIntData(m_sdkRule.strCamId.toStdString()+"width")/480; |
| | | float sizeH=(float)appPref.getIntData(m_sdkRule.strCamId.toStdString()+"height")/270; |
| | | pointArray=new cv::Point2i[npts]; |
| | | for (int i = 0; i < 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; |
| | | pointArray[i]={x,y}; |
| | | |
| | | |
| | | if(m_sdkRule.nSdkType == PerimeterSdk) |
| | | { |
| | | poly1.push_back(Point(x,y)); |
| | |
| | | { |
| | | mPolygon << (QPoint(x, y)); |
| | | } |
| | | |
| | | DBG("width="<<sizeW); |
| | | DBG("height="<<sizeH); |
| | | |
| | | |
| | | } |
| | |
| | | // 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 PerimeterElement::getTriggerState() const { |
| | |
| | | return strImgUrl; |
| | | } |
| | | |
| | | bool PerimeterElement::saveInfoToEs(const std::string &imgUrl, const std::string &time) { |
| | | bool PerimeterElement::saveInfoToEs(const std::string &imgUrl, const std::string &time,const std::string& imgKey) { |
| | | |
| | | string str_uuid; |
| | | uuid_t t_uuid; |
| | |
| | | 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"] = appPref.getStringData("clusterID");; // ji qun id |
| | | |
| | | t_json["imgKey"] = imgKey; |
| | | INFO("SaveImgKeyToES: "<<imgKey); |
| | | bool retface = false; |
| | | if (pManagerEsDB) |
| | | retface = pManagerEsDB->insertData("personaction", "perVideoAction", t_json.toStyledString(), str_uuid); |