From 52713b8d85e26a984ecaeef926c815e8cf8075b7 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期四, 07 十一月 2019 19:24:17 +0800
Subject: [PATCH] ---

---
 util/simpleCV.go |   25 +++++++++++--------------
 1 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/util/simpleCV.go b/util/simpleCV.go
index 9e48691..b2c2cd7 100644
--- a/util/simpleCV.go
+++ b/util/simpleCV.go
@@ -164,16 +164,15 @@
 
 	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锛�",polygonIds)
-		for i := 0; i < len(polygonIds)-1; i++ {
+		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)
+				DrawAPolygon(&rook,polygon.Polygon,yellow,scale)
 			}
 		}
 	}
@@ -195,16 +194,14 @@
 	defer rook.Close()
 
 	yellow := color.RGBA{255, 255, 0, 0}
-
+	scale := float64(img.Width) / 960 // 鐢诲浘姣斾緥
 	// 鍒嗗壊鍖哄煙id闆嗗悎骞舵牴鎹甶d鏌ヨ鍖哄煙鐒跺悗鐢绘
 	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 != "[]" && polygon.Polygon != ""{
-				logger.Debug("鎵�鐢诲尯鍩燂細",polygon.Polygon)
-				DrawAPolygon(&rook,polygon.Polygon,yellow)
+				DrawAPolygon(&rook,polygon.Polygon,yellow,scale)
 			}
 		}
 	}
@@ -241,20 +238,20 @@
 	var cameraPolygons []protomsg.CameraPolygon
 	cameraPolygons = cache.GetPolygonsByCameraId(cameraId)
 	for _, polygon := range cameraPolygons {
-		if polygon.Id == polygonId {
+		if strings.Contains(polygonId,polygon.Id) {
 			return polygon
 		}
 	}
 	return protomsg.CameraPolygon{}
 }
 // 鍦ㄥ浘涓婄敾涓�涓
-func DrawAPolygon(rook *gocv.Mat,polygonString string, color color.RGBA) {
+func DrawAPolygon(rook *gocv.Mat,polygonString string, color color.RGBA,scale float64) {
 	points := ruleserver.Json2points(polygonString)
 	for index := 0; index < len(points); index++ {
 		if index == len(points)-1 { // 闂悎鍥惧舰
-			gocv.Line(rook, image.Pt(int(points[index].X*1.33), int(points[index].Y*1.33)), image.Pt(int(points[0].X*1.33), int(points[0].Y*1.33)), color, 2)
+			gocv.Line(rook, image.Pt(int(points[index].X * scale), int(points[index].Y * scale)), image.Pt(int(points[0].X * scale), int(points[0].Y * scale)), color, 2)
 		} else {
-			gocv.Line(rook, image.Pt(int(points[index].X*1.33), int(points[index].Y*1.33)), image.Pt(int(points[index+1].X*1.33), int(points[index+1].Y*1.33)), color, 2)
+			gocv.Line(rook, image.Pt(int(points[index].X * scale), int(points[index].Y * scale)), image.Pt(int(points[index+1].X * scale), int(points[index+1].Y * scale)), color, 2)
 		}
 	}
 }

--
Gitblit v1.8.0