| | |
| | | "str_longitude" : "39.994827", |
| | | "str_name" : "大åæåæº2", |
| | | "str_password" : "123456", |
| | | "str_reserved" : "", |
| | | "str_reserved" : "group2/M00/02/7F/wKgBnFw1whWAT5DbAALrl1a_A04988.jpg", //宿¶æµæªå¾ |
| | | // "str_sdks" : "1,2", |
| | | "str_username" : "admin" |
| | | }, |
| | |
| | | "str_longitude" : "39.994833", |
| | | "str_name" : "大åæåæº3", |
| | | "str_password" : "123433", |
| | | "str_reserved" : "", |
| | | "str_reserved" : "group2/M00/02/7F/wKgBnFw1whWAT5DbAALrl1a_A04988.jpg",//宿¶æµæªå¾ |
| | | //"str_sdks" : "1,2,3", |
| | | "str_username" : "admin" |
| | | } |
| | |
| | | leftJudgment(ruleMap[KeepRightSdk]), |
| | | rightJudgment(ruleMap[KeepRightSdk]), |
| | | bRecordVideoEnable(RecordVideoEnable), |
| | | m_sdkRuleMap(ruleMap) { |
| | | m_sdkRuleMap(ruleMap), |
| | | m_bSetWH(false) |
| | | { |
| | | DBG("camId" << camId); |
| | | init(); |
| | | initPerimeter(); |
| | |
| | | // int max=appPref.getIntData("n_cut_max_duration"); |
| | | // recordInit(40,100); |
| | | videoCaptureElement.registerConnector([&] { |
| | | // mutex.lock(); |
| | | |
| | | |
| | | // std::string tmp="camId="+m_camId+"videoCaptureElement"; |
| | | // ClockTimer cl(tmp); |
| | | cv::Mat imageTemp = videoCaptureElement.getImage(); |
| | | |
| | | if(!m_bSetWH) |
| | | { |
| | | appPref.setIntData(m_camId+"width",imageTemp.cols); |
| | | appPref.setIntData(m_camId+"height",imageTemp.rows); |
| | | m_bSetWH=true; |
| | | } |
| | | |
| | | std::string strNewTime = AppUtil::getTimeUSecString();; |
| | | |
| | | //DBG("m_camId="<<m_camId<<" strNewTime="<<strNewTime); |
| | |
| | | strNewTime = newDt.toString("yyyy-MM-dd hh:mm:ss").toStdString(); |
| | | |
| | | } |
| | | // mutex.unlock(); |
| | | |
| | | // DBG(strNewTime); |
| | | // std::string tmp1="camId="+m_camId+"strNewTime"+strNewTime; |
| | | // ClockTimer cl1(tmp1); |
| | |
| | | yoloRpcElement.submit(); |
| | | } |
| | | |
| | | if (!imageDrawElement.isBusy()) { |
| | | imageDrawElement.setImage(imageTemp); |
| | | imageDrawElement.submit(); |
| | | } |
| | | // if (!imageDrawElement.isBusy()) { |
| | | // imageDrawElement.setImage(imageTemp); |
| | | // imageDrawElement.submit(); |
| | | // } |
| | | |
| | | // if (bRecordVideoEnable) { |
| | | // registerElement(triggerElement); |
| | |
| | | |
| | | |
| | | yoloRpcElement.registerConnector([&] { |
| | | imageDrawElement.setYoloObjects(personElement.getLastScoreRects()); |
| | | // imageDrawElement.setYoloObjects(personElement.getLastScoreRects()); |
| | | if (!personElement.isBusy()) { |
| | | |
| | | personElement.setObjsResults(yoloRpcElement.getLastScoreRects()); |
| | |
| | | }); |
| | | |
| | | faceRpcElement.registerConnector([&] { |
| | | imageDrawElement.setFaces(faceRpcElement.getLastScoreRects()); |
| | | // imageDrawElement.setFaces(faceRpcElement.getLastScoreRects()); |
| | | }); |
| | | |
| | | yoloRpcElement.registerConnector("YoloTrigger", [&] { |
| | |
| | | |
| | | imageDrawElement.registerConnector([&] { |
| | | if (appPref.getIntData("show.image") == 1) { |
| | | ImageShowElement::showImage(to_string(this->m_index), *imageDrawElement.getImage()); |
| | | ImageShowElement::showImage(to_string(this->m_index), *imageDrawElement.getImage()); |
| | | } |
| | | }); |
| | | |
| | |
| | | registerElement(faceRpcElement); |
| | | registerElement(faceExtractElement); |
| | | } |
| | | registerElement(imageDrawElement); |
| | | // registerElement(imageDrawElement); |
| | | // registerElement(newRecordVideoElement); |
| | | videoCaptureElement.setOutPutInterval(3); |
| | | faceExtractElement.setProperty("index", to_string(m_index)); |
| | |
| | | std::string m_localIp; |
| | | std::string getFullFileName(); |
| | | std::mutex mutex; |
| | | bool m_bSetWH; |
| | | }; |
| | | |
| | | #endif // APPPIPECONTROLLER_H |
| | |
| | | sharedMemory(nullptr), |
| | | trackingTrigger(nullptr), |
| | | m_sdkRule(rule), |
| | | m_bIsMask(true) |
| | | m_bIsMask(true), |
| | | m_bSetWH(false) |
| | | { |
| | | sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str())); |
| | | if (!sharedMemory->create(4608 * 2592 * 4)) { |
| | |
| | | t_score = t_score / 100; |
| | | |
| | | trackingTrigger = new TrackingTrigger(t_score); |
| | | setMask(m_sdkRule.strAreas.toStdString()); |
| | | // setMask(m_sdkRule.strAreas.toStdString()); |
| | | } |
| | | |
| | | FaceRpcElement::~FaceRpcElement() { |
| | |
| | | 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 FaceRpcElement::getTriggerState() const { |
| | |
| | | m_bIsMask=false; |
| | | return;//do not detect |
| | | } |
| | | 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); |
| | | |
| | | } |
| | | } |
| | |
| | | TriggerElement m_triggerElement; |
| | | SdkRule m_sdkRule; |
| | | bool m_bIsMask; |
| | | bool m_bSetWH; |
| | | }; |
| | | |
| | | #endif // FACERPCELEMENT_H |
| | |
| | | m_triggerElement(0, 0), |
| | | m_sdkRule(rule), |
| | | pManagerEsDB(nullptr), |
| | | m_bSetWH(false), |
| | | pointArray(nullptr), |
| | | npts(0) |
| | | { |
| | |
| | | } |
| | | |
| | | } |
| | | bool JudgmentRetrogradeTool::init(QString area, QString line) |
| | | { |
| | | m_area=area; |
| | | m_line=line; |
| | | } |
| | | |
| | | bool JudgmentRetrogradeTool::init(QString area, QString line) { |
| | | bool JudgmentRetrogradeTool::setMask(QString area, QString line) { |
| | | |
| | | //#todo string ->json |
| | | QJsonArray arrayAreas = getJsonArrayFromQString(area); |
| | |
| | | } |
| | | int size=arrayAreas.size(); |
| | | QVector<QPoint> vec; |
| | | 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) { |
| | | pointArray=new cv::Point2i[size]; |
| | | 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; |
| | | pointArray[i]={x,y}; |
| | | int x = obj.value("x").toDouble() *sizeW; |
| | | int y = obj.value("y").toDouble() *sizeH; |
| | | vec.push_back(QPoint(x, y)); |
| | | DBG("width="<<sizeW); |
| | | DBG("height="<<sizeH); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | void JudgmentRetrogradeTool::setImage(const cv::Mat &value) { |
| | | value.copyTo(image); |
| | | if(!m_bSetWH) |
| | | { |
| | | setMask(m_area,m_line); |
| | | m_bSetWH=true; |
| | | } |
| | | } |
| | |
| | | // |
| | | // |
| | | // Created by basic on 18-8-24. |
| | | // |
| | | |
| | |
| | | void setImage(const cv::Mat &value); |
| | | |
| | | private: |
| | | bool setMask(QString area, QString line); |
| | | |
| | | void setPerPoint(const long &, cv::Point2f); |
| | | |
| | | void setPerRect(const long &, cv::Rect rect); |
| | |
| | | cv::Point2i* pointArray; |
| | | |
| | | int npts; |
| | | QString m_area; |
| | | QString m_line; |
| | | bool m_bSetWH; |
| | | }; |
| | | |
| | | |
| | |
| | | m_triggerElement(0,0), |
| | | m_lTime(AppUtil::getCurrentUs()), |
| | | pManagerEsDB(nullptr), |
| | | m_bIsMask(true) |
| | | m_bIsMask(true), |
| | | m_bSetWH(false) |
| | | { |
| | | pManagerEsDB=new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); |
| | | |
| | |
| | | |
| | | void PerStaticElement::threadInitial() |
| | | { |
| | | setMask(m_sdkRule.strAreas.toStdString()); |
| | | // setMask(m_sdkRule.strAreas.toStdString()); |
| | | } |
| | | |
| | | |
| | |
| | | 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) |
| | |
| | | { |
| | | |
| | | value.copyTo(image); |
| | | if(!m_bSetWH) |
| | | { |
| | | setMask(m_sdkRule.strAreas.toStdString()); |
| | | m_bSetWH=true; |
| | | } |
| | | } |
| | |
| | | unsigned long long m_lTime; |
| | | EsDBTool* pManagerEsDB; |
| | | bool m_bIsMask; |
| | | bool m_bSetWH; |
| | | cv::Point2i* pointArray; |
| | | int npts; |
| | | }; |
| | |
| | | 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()); |
| | | } |
| | | |
| | | |
| | |
| | | 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) { |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | switch (m_sdkRule.nSdkType) { |
| | | case PerimeterSdk: |
| | | //state = num > 0 ; |
| | |
| | | if (m_triggerElement.getTriggerState() ) |
| | | { |
| | | if(num > 0) { |
| | | |
| | | |
| | | |
| | | if(pointArray!=nullptr) |
| | | { |
| | | const cv::Point2i* ppt[1] = { pointArray }; |
| | |
| | | } |
| | | 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 { |
| | |
| | | |
| | | bool m_bIsMask; |
| | | std::vector<Point> poly1; |
| | | bool m_bSetWH; |
| | | cv::Point2i* pointArray; |
| | | |
| | | }; |