| | |
| | | RuleText string // 文字版规则组 |
| | | } |
| | | type LittleRuleResult struct { |
| | | SdkName string //记录下此结果是哪个sdk的结果 |
| | | SdkName string // 记录下此结果是哪个sdk的结果 |
| | | Result string // 已包含了前置连接符 |
| | | Sort int32 |
| | | } |
| | |
| | | sdkName := "" |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | for _, sdkData := range args.Sdkdata { |
| | | if groupRule.Rules[j].SdkId == sdkData.SdkId && sdkData.IsYolo { // 只记录yolo符合规则的sdk |
| | | if groupRule.Rules[j].SdkId == sdkData.SdkId && sdkData.IsYolo && !strings.Contains(sdkName,sdkData.SdkName) { // 只记录yolo符合规则的sdk 同时要避免重复拼接 |
| | | sdkName = sdkName + "," + sdkData.SdkName |
| | | } |
| | | } |
| | | } |
| | | // 过完规则后打个标签,告诉调用者本帧数据针对哪个任务哪组规则报警了 后加:可能还不够,还需要区分触发报警的对象,后面往es数据库插数据时要用 |
| | | args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText}) |
| | | log.Println("-------------------结果标签",args.RuleResult["yolo"].([]Result)) |
| | | log.Println("-------------------yolo结果标签",args.RuleResult["yolo"].([]Result)) |
| | | log.Println("-------------------face结果标签",args.RuleResult["faces"].([]Arg)) |
| | | return true |
| | | } else { |
| | | return false |
| | |
| | | //rook := gocv.IMRead("/home/user/workspace/ruleprocess/util/105.jpg",gocv.IMReadColor) |
| | | defer rook.Close() |
| | | |
| | | green := color.RGBA{0, 255, 0, 0} |
| | | red := color.RGBA{255, 0, 0, 0} |
| | | //points := [][]image.Point{ |
| | | // { |
| | | // image.Pt(100., 100), |
| | |
| | | points := ruleserver.Json2points(polygon.Polygon) |
| | | for index := 0; index < len(points); index++ { |
| | | if index == len(points)-1 { // 闭合图形 |
| | | gocv.Line(&rook, image.Pt(int(points[index].X), int(points[index].Y)), image.Pt(int(points[0].X), int(points[0].Y)), green, 2) |
| | | gocv.Line(&rook, image.Pt(int(points[index].X), int(points[index].Y)), image.Pt(int(points[0].X), int(points[0].Y)), red, 2) |
| | | } else { |
| | | gocv.Line(&rook, image.Pt(int(points[index].X), int(points[index].Y)), image.Pt(int(points[index+1].X), int(points[index+1].Y)), green, 2) |
| | | gocv.Line(&rook, image.Pt(int(points[index].X), int(points[index].Y)), image.Pt(int(points[index+1].X), int(points[index+1].Y)), red, 2) |
| | | } |
| | | |
| | | } |