From 0d08415bcbc5d1b260861365f26b0532771da2c5 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期日, 29 九月 2019 14:10:41 +0800
Subject: [PATCH] 人脸也画规则框

---
 util/simpleCV.go             |   27 ++++++++++++++++++++++++++-
 insertdata/insertDataToEs.go |    6 +++---
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index e153444..26bb24b 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -191,7 +191,7 @@
 				err = proto.Unmarshal(bdata, &i)
 				if imgMaxUrl == "" {
 					bigPhotoUrl := make(map[string]interface{})
-					bigPhotoUrl, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String())
+					bigPhotoUrl, err = util.DrawPolygonOnImageForFace(msg.Cid, i, msg.RuleResult["face"].([]ruleserver.FaceResult), weedfsUrl)
 					logger.Debug("========澶у浘璺緞锛�", bigPhotoUrl)
 					imgMaxUrl = bigPhotoUrl["fileUrl"].(string)
 					picTime = i.Timestamp
@@ -367,7 +367,7 @@
 							}
 							i := protomsg.Image{}
 							err = proto.Unmarshal(bdata, &i)
-							resp1, err1 := util.DrawPolygonOnImage(msg1.Cid, i, msg1.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
+							resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
 							if err1 != nil {
 								logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
 							} else {
@@ -410,7 +410,7 @@
 			if len(alarmRules) > 0 {
 				isAlarm = 1
 				//resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String())
-				resp, err = util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
+				resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
 				if err != nil {
 					logger.Error("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
 					return
diff --git a/util/simpleCV.go b/util/simpleCV.go
index 5c074c3..f3f5b6d 100644
--- a/util/simpleCV.go
+++ b/util/simpleCV.go
@@ -155,7 +155,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 []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)
@@ -187,6 +187,31 @@
 	return
 }
 
+func DrawPolygonOnImageForFace(cameraId string, img protomsg.Image, results []ruleserver.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)-1; i++ {
+			polygon := getPolygonById(polygonIds[i],cameraId)
+			if polygon.Polygon != "[]" && polygon.Polygon != ""{
+				logger.Debug("鎵�鐢诲尯鍩燂細",polygon.Polygon)
+				DrawAPolygon(&rook,polygon.Polygon,yellow)
+			}
+		}
+	}
+	//return nil,nil
+	maps,err0 = UploadFromMat(url,rook)
+	return
+}
+
 // 鎶婂浘鐗囪浆鎴愪簩杩涘埗娴�
 func RetrieveROM(filename string) ([]byte, error) {
 	file, err := os.Open(filename)

--
Gitblit v1.8.0