From 5a25fb6bbd594374f9cdc9587b8f2ec5ea5df238 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 19 十一月 2019 10:12:43 +0800
Subject: [PATCH] ---
---
util/simpleCV.go | 47 +++++++++++++++++++++++++++++++++++------------
1 files changed, 35 insertions(+), 12 deletions(-)
diff --git a/util/simpleCV.go b/util/simpleCV.go
index a3ca1c3..32bcdef 100644
--- a/util/simpleCV.go
+++ b/util/simpleCV.go
@@ -155,7 +155,6 @@
}
}
}
-
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)
@@ -169,19 +168,18 @@
// 鍒嗗壊鍖哄煙id闆嗗悎骞舵牴鎹甶d鏌ヨ鍖哄煙鐒跺悗鐢绘
for _,result := range results {
polygonIds := strings.Split(result.AlarmPolygon,",")
- logger.Info("-----------------------鐪嬬湅鎶ヨ鍖哄煙id锛�",polygonIds)
+ logger.Info("鍖哄煙ID锛�",result.AlarmPolygon,polygonIds)
for i := 0; i < len(polygonIds); i++ {
polygon := getPolygonById(polygonIds[i],cameraId)
if polygon.Polygon != "[]" && polygon.Polygon != ""{
- logger.Debug("鎵�鐢诲尯鍩燂細",polygon.Polygon)
DrawAPolygon(&rook,polygon.Polygon,yellow,scale)
}
}
}
// 鎶婄洰鏍囨鍑烘潵
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)
+ for _,rect := range result.AlarmObj {
+ gocv.Rectangle(&rook, image.Rect(int(rect.Location.X), int(rect.Location.Y), int(rect.Location.X+rect.Location.Width), int(rect.Location.Y+rect.Location.Height)), red, 1)
}
}
//return nil,nil
@@ -189,7 +187,38 @@
return
}
-func DrawPolygonOnImageForFace(cameraId string, img protomsg.Image, results []structure.FaceResult,url string) (maps map[string]interface{}, err0 error) {
+func DrawPolygonOnImageForTarget(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)
+ defer rook.Close()
+
+ yellow := color.RGBA{255, 255, 0, 0}
+ red := color.RGBA{255, 0, 0, 0}
+ scale := float64(img.Width) / 960 // 鐢诲浘姣斾緥
+ logger.Info("width:",img.Width,"--鐢诲浘姣斾緥锛�",scale)
+ // 鍒嗗壊鍖哄煙id闆嗗悎骞舵牴鎹甶d鏌ヨ鍖哄煙鐒跺悗鐢绘
+ for _,result := range results {
+ polygonIds := strings.Split(result.AlarmPolygon,",")
+ logger.Info("鍖哄煙ID锛�",result.AlarmPolygon,polygonIds)
+ for i := 0; i < len(polygonIds); i++ {
+ polygon := getPolygonById(polygonIds[i],cameraId)
+ if polygon.Polygon != "[]" && polygon.Polygon != ""{
+ DrawAPolygon(&rook,polygon.Polygon,yellow,scale)
+ }
+ }
+ }
+ // 鎶婄洰鏍囨鍑烘潵
+ for _,result := range results {
+ for _,rect := range result.AlarmObj {
+ gocv.Rectangle(&rook, image.Rect(int(rect.Location.X), int(rect.Location.Y), int(rect.Location.X+rect.Location.Width), int(rect.Location.Y+rect.Location.Height)), red, 1)
+ }
+ }
+ //return nil,nil
+ maps,err0 = UploadFromMat(url,rook)
+ return
+}
+func DrawPolygonOnImageForFace(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)
@@ -200,12 +229,9 @@
// 鍒嗗壊鍖哄煙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,scale)
}
}
@@ -242,11 +268,8 @@
// 鏌ュ埌鎽勫儚鏈烘墍鏈夌殑鍖哄煙骞剁敾妗�
var cameraPolygons []protomsg.CameraPolygon
cameraPolygons = cache.GetPolygonsByCameraId(cameraId)
- logger.Info("鏍规嵁id鏌ュ埌鐨勬姤璀︽锛�",cameraPolygons)
for _, polygon := range cameraPolygons {
- logger.Info("鏌ュ埌鐨勫尯鍩焛d锛�",polygon.Id,"--瑕佸尮閰嶇殑鏁版嵁id锛�",polygonId,"---鏄惁鐩哥瓑锛�",strings.Contains(polygonId,polygon.Id))
if strings.Contains(polygonId,polygon.Id) {
- logger.Info("杩涙潵鍗崇浉绛�")
return polygon
}
}
--
Gitblit v1.8.0