liuxiaolong
2019-07-02 548d788436bcad77267e310f4dac9fac48a2ca12
util/simpleCV.go
@@ -1,11 +1,13 @@
package util
import (
   "basic.com/pubsub/protomsg.git"
   "bufio"
   "bytes"
   "encoding/json"
   "errors"
   "fmt"
   "gocv.io/x/gocv"
   "image"
   "image/color"
   "io"
@@ -14,8 +16,6 @@
   "net/http"
   "os"
   "time"
   "gocv.io/x/gocv"
)
func CvRTSP() {
@@ -159,27 +159,34 @@
   }
}
func DrawPolygon()(maps map[string]interface{}, err0 error){
func DrawPolygonOnImage(img protomsg.Image)(maps map[string]interface{}, err0 error){
   // draw the rook
   //rook := gocv.NewMatWithSize(w, w, gocv.MatTypeCV8UC3)
   //imgs := gocv.NewMat()
   ddd, err := RetrieveROM("./l05.jpg")
   if err != nil {
      fmt.Println("解码有误")
   }
   bbb := bytes.NewBuffer(ddd)  // 必须加一个buffer 不然没有read方法就会报错
   rook, _ := gocv.NewMatFromBytes(500, 500, gocv.MatTypeCV8UC3, bbb.Bytes())
   //ddd, err := RetrieveROM("/home/user/workspace/ruleprocess/util/105.jpg")
   //if err != nil {
   //   fmt.Println("解码有误",err)
   //}
   //bbb := bytes.NewBuffer(ddd)  // 必须加一个buffer 不然没有read方法就会报错
   //rook,_ := gocv.IMDecode(bbb.Bytes(),gocv.IMReadColor)
   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()
   green := color.RGBA{0, 255, 0, 0}
   points := [][]image.Point{
      {
         image.Pt(100., 100),
         image.Pt(100., 400),
         image.Pt(400, 400),
         image.Pt(400, 100),
      },
   }
   gocv.FillPoly(&rook, points, green)
   //points := [][]image.Point{
   //   {
   //      image.Pt(100., 100),
   //      image.Pt(100., 400),
   //      image.Pt(400, 400),
   //      image.Pt(400, 100),
   //   },
   //}
   //gocv.FillPoly(&rook, points, green)
   gocv.Line(&rook, image.Pt(100, 100), image.Pt(100, 800), green, 2)
   gocv.Line(&rook, image.Pt(100, 800), image.Pt(800, 800), green, 2)
   gocv.Line(&rook, image.Pt(800, 800), image.Pt(800, 100), green, 2)
   gocv.Line(&rook, image.Pt(800, 100), image.Pt(100, 100), green, 2)
   //return nil,nil
   // 上传
   fdata,_ := gocv.IMEncode(".jpg",rook)
   body := &bytes.Buffer{}