From 58a1be12775f0177225596f300397e456371327c Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期一, 28 十月 2019 10:17:25 +0800 Subject: [PATCH] --- --- util/simpleCV.go | 39 +++++++++++++++++++++++++++++++++++---- 1 files changed, 35 insertions(+), 4 deletions(-) diff --git a/util/simpleCV.go b/util/simpleCV.go index 6ce97a2..0cad7de 100644 --- a/util/simpleCV.go +++ b/util/simpleCV.go @@ -9,8 +9,9 @@ "image/color" "os" "ruleprocess/cache" - "ruleprocess/logger" + "basic.com/valib/logger.git" "ruleprocess/ruleserver" + "ruleprocess/structure" "strings" ) @@ -155,7 +156,7 @@ } } -func DrawPolygonOnImage(cameraId string, img protomsg.Image, results []ruleserver.Result,url string) (maps map[string]interface{}, err0 error) { +func DrawPolygonOnImageForYolo(cameraId string, img protomsg.Image, results []structure.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) @@ -168,9 +169,10 @@ for _,result := range results { polygonIds := strings.Split(result.AlarmPolygon,",") logger.Info("-----------------------鐪嬬湅鎶ヨ鍖哄煙id锛�",polygonIds) - for i := 0; i < len(polygonIds)-1; i++ { + for i := 0; i < len(polygonIds); i++ { polygon := getPolygonById(polygonIds[i],cameraId) - if polygon.Polygon != "[]" { + if polygon.Polygon != "[]" && polygon.Polygon != ""{ + logger.Debug("鎵�鐢诲尯鍩燂細",polygon.Polygon) DrawAPolygon(&rook,polygon.Polygon,yellow) } } @@ -179,6 +181,32 @@ 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)), red, 1) + } + } + //return nil,nil + maps,err0 = UploadFromMat(url,rook) + return +} + +func DrawPolygonOnImageForFace(cameraId string, img protomsg.Image, results []structure.FaceResult,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} + + // 鍒嗗壊鍖哄煙id闆嗗悎骞舵牴鎹甶d鏌ヨ鍖哄煙鐒跺悗鐢绘 + for _,result := range results { + polygonIds := strings.Split(result.AlarmPolygon,",") + logger.Info("-----------------------鐪嬬湅鎶ヨ鍖哄煙id锛�",polygonIds) + for i := 0; i < len(polygonIds); i++ { + polygon := getPolygonById(polygonIds[i],cameraId) + logger.Info("----鏌ュ埌鐨勬姤璀︽锛�",polygon) + if polygon.Polygon != "[]" && polygon.Polygon != ""{ + logger.Debug("鎵�鐢诲尯鍩燂細",polygon.Polygon) + DrawAPolygon(&rook,polygon.Polygon,yellow) + } } } //return nil,nil @@ -213,8 +241,11 @@ // 鏌ュ埌鎽勫儚鏈烘墍鏈夌殑鍖哄煙骞剁敾妗� var cameraPolygons []protomsg.CameraPolygon cameraPolygons = cache.GetPolygonsByCameraId(cameraId) + logger.Info("鏍规嵁id鏌ュ埌鐨勬姤璀︽锛�",cameraPolygons) for _, polygon := range cameraPolygons { + logger.Info("鏌ュ埌鐨勫尯鍩焛d锛�",polygon.Id,"--瑕佸尮閰嶇殑鏁版嵁id锛�",polygonId) if polygon.Id == polygonId { + logger.Info("杩涙潵鍗崇浉绛�") return polygon } } -- Gitblit v1.8.0