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