From 74597a0351cc2bdf3a61b8a206277c012fdc965e Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期一, 28 十月 2019 13:39:26 +0800
Subject: [PATCH] ---

---
 util/simpleCV.go |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/util/simpleCV.go b/util/simpleCV.go
index fce0cf0..9c69f39 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,9 @@
 	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)
 			}
@@ -180,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
@@ -214,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,"---鏄惁鐩哥瓑锛�",polygonId == polygon.Id)
 		if polygon.Id == polygonId {
+			logger.Info("杩涙潵鍗崇浉绛�")
 			return polygon
 		}
 	}

--
Gitblit v1.8.0