| | |
| | | package util |
| | | |
| | | import ( |
| | | "basic.com/pubsub/protomsg.git" |
| | | "bufio" |
| | | "bytes" |
| | | "encoding/json" |
| | | "errors" |
| | | "fmt" |
| | | "gocv.io/x/gocv" |
| | | "image" |
| | | "image/color" |
| | | "io" |
| | |
| | | "net/http" |
| | | "os" |
| | | "time" |
| | | |
| | | "gocv.io/x/gocv" |
| | | ) |
| | | |
| | | func CvRTSP() { |
| | |
| | | } |
| | | } |
| | | |
| | | 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{} |