From 788358c03d90f6371fa7a7d238850e2cb114a95f Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期一, 19 八月 2019 16:41:18 +0800 Subject: [PATCH] 对于或规则的一些改进 --- util/simpleCV.go | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/util/simpleCV.go b/util/simpleCV.go index 7f07bff..6ce97a2 100644 --- a/util/simpleCV.go +++ b/util/simpleCV.go @@ -9,6 +9,7 @@ "image/color" "os" "ruleprocess/cache" + "ruleprocess/logger" "ruleprocess/ruleserver" "strings" ) @@ -154,33 +155,34 @@ } } -func DrawPolygonOnImage(cameraId string, img protomsg.Image, results []ruleserver.Result) (maps map[string]interface{}, err0 error) { +func DrawPolygonOnImage(cameraId string, img protomsg.Image, results []ruleserver.Result,url string) (maps map[string]interface{}, err0 error) { rook, _ := gocv.NewMatFromBytes(int(img.Height), int(img.Width), gocv.MatTypeCV8UC3, img.Data) //rook := gocv.IMRead("/home/user/workspace/ruleprocess/util/105.jpg",gocv.IMReadColor) defer rook.Close() + yellow := color.RGBA{255, 255, 0, 0} red := color.RGBA{255, 0, 0, 0} - green := color.RGBA{0, 255, 0, 0} // 鍒嗗壊鍖哄煙id闆嗗悎骞舵牴鎹甶d鏌ヨ鍖哄煙鐒跺悗鐢绘 for _,result := range results { - polygonIds := strings.Split(result.AlarmPolygon,"") + polygonIds := strings.Split(result.AlarmPolygon,",") + logger.Info("-----------------------鐪嬬湅鎶ヨ鍖哄煙id锛�",polygonIds) for i := 0; i < len(polygonIds)-1; i++ { polygon := getPolygonById(polygonIds[i],cameraId) - if polygon.Polygon != "" { - DrawAPolygon(&rook,polygon.Polygon,red) + if polygon.Polygon != "[]" { + DrawAPolygon(&rook,polygon.Polygon,yellow) } } } // 鎶婄洰鏍囨鍑烘潵 for _,result := range results { for _,rect := range result.Location { - gocv.Rectangle(&rook, image.Rect(int(rect.X), int(rect.Y), int(rect.X+rect.Width), int(rect.Y+rect.Height)), green, 1) + gocv.Rectangle(&rook, image.Rect(int(rect.X), int(rect.Y), int(rect.X+rect.Width), int(rect.Y+rect.Height)), red, 1) } } //return nil,nil - maps,err0 = UploadFromMat(rook) + maps,err0 = UploadFromMat(url,rook) return } @@ -223,9 +225,9 @@ points := ruleserver.Json2points(polygonString) 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)), color, 2) + gocv.Line(rook, image.Pt(int(points[index].X*1.33), int(points[index].Y*1.33)), image.Pt(int(points[0].X*1.33), int(points[0].Y*1.33)), color, 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)), color, 2) + gocv.Line(rook, image.Pt(int(points[index].X*1.33), int(points[index].Y*1.33)), image.Pt(int(points[index+1].X*1.33), int(points[index+1].Y*1.33)), color, 2) } } } -- Gitblit v1.8.0