panlei
2019-06-29 6d7d0015d9e4fbbbc5235395df67792a4efc2f97
ruleserver/ruleToformula.go
@@ -112,7 +112,7 @@
   IsStatic    bool       // 是否静止
   ImageWidth  int        // 摄像机拍摄的图像宽 像素
   ImageHeight int        // 摄像机拍摄的图像高 像素
   AreaMapList []AreaMap  // 本sdk提取的数据按照区域划分后的数据集合
   AreaMapList []*AreaMap  // 本sdk提取的数据按照区域划分后的数据集合
}
// 从算法模块儿拿来的对一帧图像各个算法提取的数据集合
@@ -168,7 +168,9 @@
      if item.CameraId == cameraId {
         // 需要根据比例把前台画的区域的坐标转化为相应摄像机拍摄的图像的大小   x坐标分别*image.width/页面区域宽  y坐标分别*image.height/页面区域高
         // 前台宽高固定
         cameraPolygons = append(cameraPolygons, &item)
         if item.Type == "rect" {
            cameraPolygons = append(cameraPolygons, &item)
         }
      }
   }
   //log.Println("根据摄像机id查到的区域", cameraPolygons, "--区域数量为:", len(cameraPolygons))
@@ -180,7 +182,8 @@
   // cameraPolygons := GetPolygons(arg.CameraId)
   // list := AreaMapList{}
   for _, polygon := range cameraPolygons {
      areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
      log.Println("++++++在这儿看一下区域啊",polygon)
      areaMap := &AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
      // 为每个摄像机区域填充数据
      areaMap.CountAreaObjs(arg)
      arg.AreaMapList = append(arg.AreaMapList, areaMap)
@@ -234,7 +237,7 @@
            log.Println("入侵的算法数据",sdkData)
         }
         for _, areaMap := range sdkData.AreaMapList {
            ruleResult := filterRule(groupRule.Rules[j], &areaMap)
            ruleResult := filterRule(groupRule.Rules[j], areaMap)
            if ruleResult.Result != "" {
               log.Println("条件规则结果:", ruleResult.Result)
               resultSplice = append(resultSplice, &ruleResult)
@@ -247,7 +250,7 @@
   for _, sdkData := range args.Sdkdata {
      for _, areaMap := range sdkData.AreaMapList {
         for j := 0; j < len(groupRule.Rules); j++ {
            putFaceToResult(groupRule.Rules[j], &areaMap, faces)
            putFaceToResult(groupRule.Rules[j], areaMap, faces)
         }
      }
   }
@@ -256,7 +259,7 @@
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
         for _, areaMap := range sdkData.AreaMapList {
            ruleResult := transferParameters(groupRule.Rules[j], &areaMap)
            ruleResult := transferParameters(groupRule.Rules[j], areaMap)
            if ruleResult.Result != "" {
               log.Println("数量规则结果:", ruleResult.Result)
               resultSplice = append(resultSplice, &ruleResult)
@@ -268,7 +271,7 @@
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
         for _, areaMap := range sdkData.AreaMapList {
            ruleResult := timeRuleResult(groupRule.Rules[j], &areaMap)
            ruleResult := timeRuleResult(groupRule.Rules[j], areaMap)
            if ruleResult.Result != "" {
               log.Println("时间规则结果:", ruleResult.Result)
               resultSplice = append(resultSplice, &ruleResult)
@@ -280,7 +283,7 @@
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
         for _, areaMap := range sdkData.AreaMapList {
            duration(groupRule.Rules[j], &areaMap)
            duration(groupRule.Rules[j], areaMap)
         }
      }
   }
@@ -364,11 +367,13 @@
   // }
   for _, obj := range arg.Photo {
      log.Println("-------------------看看areajson-------------", a.areaJson)
      log.Println("------------------看看sdkData的Photo数据----------------",obj,"----顺便看看占比-----:",PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale))
      if threshold <= obj.Score && size <= float64(obj.Rects.Width*obj.Rects.Height) && intersectionper <= PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale) {
         // 这步要备齐表达式里所需要的所有参数
         a.targetNum++
         arg1 := Arg{obj.Score, PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale), float64(obj.Rects.Width * obj.Rects.Height), obj.IsYolo, obj.Rects, obj.SdkName, obj.ThftRes, obj.Liker}
         //log.Println("放进去的arg:-------", arg1)
         log.Println("放进去的arg:-------", arg1)
         a.args = append(a.args, arg1)
         a.filterData = append(a.filterData, arg1)
      }